1. 13 Dec, 2010 1 commit
  2. 09 Dec, 2010 2 commits
  3. 08 Dec, 2010 3 commits
  4. 07 Dec, 2010 2 commits
    • Anssi Hannula's avatar
      ALSA: hda - Always allow basic audio irrespective of ELD info · 3dc86429
      Anssi Hannula authored
      Commit bbbe3390 added functionality to restrict PCM parameters
      based on ELD info (derived from EDID data) of the audio sink.
      
      However, according to CEA-861-D no SAD is needed for basic audio
      (32/44.1/48kHz stereo 16-bit audio), which is instead indicated with a
      basic audio flag in the CEA EDID Extension.
      
      The flag is not present in ELD. However, as all audio capable sinks are
      required to support basic audio, we can assume it to be always
      available.
      
      Fix allowed audio formats with sinks that have SADs (Short Audio
      Descriptors) which do not completely overlap with the basic audio
      formats (there are no reports of affected devices so far) by always
      assuming that basic audio is supported.
      Reported-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarAnssi Hannula <anssi.hannula@iki.fi>
      Cc: stable@kernel.org
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3dc86429
    • Anssi Hannula's avatar
      ALSA: hda - Do not wrongly restrict min_channels based on ELD · 4b0dbdb1
      Anssi Hannula authored
      Commit bbbe3390 added functionality to restrict PCM parameters
      based on ELD info (derived from EDID data) of the audio sink.
      
      However, it wrongly assumes that the bits 0-2 of the first byte of
      CEA Short Audio Descriptors mean a supported number of channels. In
      reality, they mean the maximum number of channels (as per CEA-861-D
      7.5.2). This means that the channel count can only be used to restrict
      max_channels, not min_channels.
      
      Restricting min_channels causes us to deny opening the device in stereo
      mode if the sink only has SADs that declare larger numbers of channels
      (like Primare SP32 AV Processor does).
      
      Fix that by not restricting min_channels based on ELD information.
      Signed-off-by: default avatarAnssi Hannula <anssi.hannula@iki.fi>
      Reported-by: default avatarJean-Yves Avenard <jyavenard@gmail.com>
      Tested-by: default avatarJean-Yves Avenard <jyavenard@gmail.com>
      Cc: stable@kernel.org
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      4b0dbdb1
  5. 06 Dec, 2010 1 commit
  6. 05 Dec, 2010 1 commit
  7. 04 Dec, 2010 1 commit
  8. 03 Dec, 2010 6 commits
  9. 02 Dec, 2010 1 commit
  10. 30 Nov, 2010 1 commit
  11. 29 Nov, 2010 3 commits
  12. 26 Nov, 2010 1 commit
  13. 25 Nov, 2010 1 commit
  14. 24 Nov, 2010 2 commits
  15. 23 Nov, 2010 10 commits
  16. 22 Nov, 2010 4 commits
    • Jeremy Fitzhardinge's avatar
      Merge branches 'upstream/core', 'upstream/xenfs' and 'upstream/evtchn' into upstream/for-linus · 9b832153
      Jeremy Fitzhardinge authored
      * upstream/core:
        xen/events: Use PIRQ instead of GSI value when unmapping MSI/MSI-X irqs.
        xen: set IO permission early (before early_cpu_init())
        xen: re-enable boot-time ballooning
        xen/balloon: make sure we only include remaining extra ram
        xen/balloon: the balloon_lock is useless
        xen: add extra pages to balloon
        xen/events: use locked set|clear_bit() for cpu_evtchn_mask
        xen/evtchn: clear secondary CPUs' cpu_evtchn_mask[] after restore
        xen: implement XENMEM_machphys_mapping
      
      * upstream/xenfs:
        Revert "xen/privcmd: create address space to allow writable mmaps"
        xen/xenfs: update xenfs_mount for new prototype
        xen: fix header export to userspace
        xen: set vma flag VM_PFNMAP in the privcmd mmap file_op
        xen: xenfs: privcmd: check put_user() return code
      
      * upstream/evtchn:
        xen: make evtchn's name less generic
        xen/evtchn: the evtchn device is non-seekable
        xen/evtchn: add missing static
        xen/evtchn: Fix name of Xen event-channel device
        xen/evtchn: don't do unbind_from_irqhandler under spinlock
        xen/evtchn: remove spurious barrier
        xen/evtchn: ports start enabled
        xen/evtchn: dynamically allocate port_user array
        xen/evtchn: track enabled state for each port
      9b832153
    • Konrad Rzeszutek Wilk's avatar
      xen/events: Use PIRQ instead of GSI value when unmapping MSI/MSI-X irqs. · 12334715
      Konrad Rzeszutek Wilk authored
      When we allocate a vector for MSI/MSI-X we save away the PIRQ, and the
      vector value. When we unmap (de-allocate) the MSI/MSI-X vector(s) we
      need to provide the PIRQ and the vector value. What we did instead
      was to provide the GSI (which was zero) and the vector value, and we
      got these unhappy error messages:
      
      (XEN) irq.c:1575: dom0: pirq 0 not mapped
      [    7.733415] unmap irq failed -22
      
      This patches fixes this and we use the PIRQ value instead of the GSI
      value.
      
      CC: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      12334715
    • Konrad Rzeszutek Wilk's avatar
      xen: set IO permission early (before early_cpu_init()) · ec35a69c
      Konrad Rzeszutek Wilk authored
      This patch is based off "xen dom0: Set up basic IO permissions for dom0."
      by Juan Quintela <quintela@redhat.com>.
      
      On AMD machines when we boot the kernel as Domain 0 we get this nasty:
      
      mapping kernel into physical memory
      Xen: setup ISA identity maps
      about to get started...
      (XEN) traps.c:475:d0 Unhandled general protection fault fault/trap [#13] on VCPU 0 [ec=0000]
      (XEN) domain_crash_sync called from entry.S
      (XEN) Domain 0 (vcpu#0) crashed on cpu#0:
      (XEN) ----[ Xen-4.1-101116  x86_64  debug=y  Not tainted ]----
      (XEN) CPU:    0
      (XEN) RIP:    e033:[<ffffffff8130271b>]
      (XEN) RFLAGS: 0000000000000282   EM: 1   CONTEXT: pv guest
      (XEN) rax: 000000008000c068   rbx: ffffffff8186c680   rcx: 0000000000000068
      (XEN) rdx: 0000000000000cf8   rsi: 000000000000c000   rdi: 0000000000000000
      (XEN) rbp: ffffffff81801e98   rsp: ffffffff81801e50   r8:  ffffffff81801eac
      (XEN) r9:  ffffffff81801ea8   r10: ffffffff81801eb4   r11: 00000000ffffffff
      (XEN) r12: ffffffff8186c694   r13: ffffffff81801f90   r14: ffffffffffffffff
      (XEN) r15: 0000000000000000   cr0: 000000008005003b   cr4: 00000000000006f0
      (XEN) cr3: 0000000221803000   cr2: 0000000000000000
      (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e02b   cs: e033
      (XEN) Guest stack trace from rsp=ffffffff81801e50:
      
      RIP points to read_pci_config() function.
      
      The issue is that we don't set IO permissions for the Linux kernel early enough.
      
      The call sequence used to be:
      
          xen_start_kernel()
      	x86_init.oem.arch_setup = xen_setup_arch;
              setup_arch:
                 - early_cpu_init
                     - early_init_amd
                        - read_pci_config
                 - x86_init.oem.arch_setup [ xen_arch_setup ]
                     - set IO permissions.
      
      We need to set the IO permissions earlier on, which this patch does.
      Acked-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      ec35a69c
    • David Daney's avatar
      of/phylib: Use device tree properties to initialize Marvell PHYs. · cf41a51d
      David Daney authored
      Some aspects of PHY initialization are board dependent, things like
      indicator LED connections and some clocking modes cannot be determined
      by probing.  The dev_flags element of struct phy_device can be used to
      control these things if an appropriate value can be passed from the
      Ethernet driver.  We run into problems however if the PHY connections
      are specified by the device tree.  There is no way for the Ethernet
      driver to know what flags it should pass.
      
      If we are using the device tree, the struct phy_device will be
      populated with the device tree node corresponding to the PHY, and we
      can extract extra configuration information from there.
      
      The next question is what should the format of that information be?
      It is highly device specific, and the device tree representation
      should not be tied to any arbitrary kernel defined constants.  A
      straight forward representation is just to specify the exact bits that
      should be set using the "marvell,reg-init" property:
      
            phy5: ethernet-phy@5 {
              reg = <5>;
              compatible = "marvell,88e1149r";
              marvell,reg-init =
                      /* led[0]:1000, led[1]:100, led[2]:10, led[3]:tx */
                      <3 0x10 0 0x5777>, /* Reg 3,16 <- 0x5777 */
                      /* mix %:0, led[0123]:drive low off hiZ */
                      <3 0x11 0 0x00aa>, /* Reg 3,17 <- 0x00aa */
                      /* default blink periods. */
                      <3 0x12 0 0x4105>, /* Reg 3,18 <- 0x4105 */
                      /* led[4]:rx, led[5]:dplx, led[45]:drive low off hiZ */
                      <3 0x13 0 0x0a60>; /* Reg 3,19 <- 0x0a60 */
            };
      
            phy6: ethernet-phy@6 {
              reg = <6>;
              compatible = "marvell,88e1118";
              marvell,reg-init =
                      /* Fix rx and tx clock transition timing */
                      <2 0x15 0xffcf 0>, /* Reg 2,21 Clear bits 4, 5 */
                      /* Adjust LED drive. */
                      <3 0x11 0 0x442a>, /* Reg 3,17 <- 0442a */
                      /* irq, blink-activity, blink-link */
                      <3 0x10 0 0x0242>; /* Reg 3,16 <- 0x0242 */
            };
      
      The Marvell PHYs have a page select register at register 22 (0x16), we
      can specify any register by its page and register number.  These are
      the first and second word.  The third word contains a mask to be ANDed
      with the existing register value, and the fourth word is ORed with the
      result to yield the new register value.  The new marvell_of_reg_init
      function leaves the page select register unchanged, so a call to it
      can be dropped into the .config_init functions without unduly
      affecting the state of the PHY.
      
      If CONFIG_OF_MDIO is not set, there is no of_node, or no
      "marvell,reg-init" property, the PHY initialization is unchanged.
      Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: Cyril Chemparathy <cyril@ti.com>
      Cc: David Daney <ddaney@caviumnetworks.com>
      Cc: Arnaud Patard <arnaud.patard@rtp-net.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Reviewed-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cf41a51d