Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
a232ee66
Commit
a232ee66
authored
Mar 18, 2009
by
Takashi Iwai
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/hda' into for-linus
parents
6af845e4
c673ba1c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
13 deletions
+26
-13
sound/pci/hda/hda_intel.c
sound/pci/hda/hda_intel.c
+26
-13
No files found.
sound/pci/hda/hda_intel.c
View file @
a232ee66
...
...
@@ -2059,26 +2059,31 @@ static int __devinit check_position_fix(struct azx *chip, int fix)
{
const
struct
snd_pci_quirk
*
q
;
/* Check VIA HD Audio Controller exist */
if
(
chip
->
pci
->
vendor
==
PCI_VENDOR_ID_VIA
&&
chip
->
pci
->
device
==
VIA_HDAC_DEVICE_ID
)
{
switch
(
fix
)
{
case
POS_FIX_LPIB
:
case
POS_FIX_POSBUF
:
return
fix
;
}
/* Check VIA/ATI HD Audio Controller exist */
switch
(
chip
->
driver_type
)
{
case
AZX_DRIVER_VIA
:
case
AZX_DRIVER_ATI
:
chip
->
via_dmapos_patch
=
1
;
/* Use link position directly, avoid any transfer problem. */
return
POS_FIX_LPIB
;
}
chip
->
via_dmapos_patch
=
0
;
if
(
fix
==
POS_FIX_AUTO
)
{
q
=
snd_pci_quirk_lookup
(
chip
->
pci
,
position_fix_list
);
if
(
q
)
{
printk
(
KERN_INFO
"hda_intel: position_fix set to %d "
"for device %04x:%04x
\n
"
,
q
->
value
,
q
->
subvendor
,
q
->
subdevice
);
return
q
->
value
;
}
q
=
snd_pci_quirk_lookup
(
chip
->
pci
,
position_fix_list
);
if
(
q
)
{
printk
(
KERN_INFO
"hda_intel: position_fix set to %d "
"for device %04x:%04x
\n
"
,
q
->
value
,
q
->
subvendor
,
q
->
subdevice
);
return
q
->
value
;
}
return
fix
;
return
POS_FIX_AUTO
;
}
/*
...
...
@@ -2210,9 +2215,17 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
gcap
=
azx_readw
(
chip
,
GCAP
);
snd_printdd
(
"chipset global capabilities = 0x%x
\n
"
,
gcap
);
/* ATI chips seems buggy about 64bit DMA addresses */
if
(
chip
->
driver_type
==
AZX_DRIVER_ATI
)
gcap
&=
~
0x01
;
/* allow 64bit DMA address if supported by H/W */
if
((
gcap
&
0x01
)
&&
!
pci_set_dma_mask
(
pci
,
DMA_64BIT_MASK
))
pci_set_consistent_dma_mask
(
pci
,
DMA_64BIT_MASK
);
else
{
pci_set_dma_mask
(
pci
,
DMA_32BIT_MASK
);
pci_set_consistent_dma_mask
(
pci
,
DMA_32BIT_MASK
);
}
/* read number of streams from GCAP register instead of using
* hardcoded value
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment