diff options
author | Takashi Iwai <tiwai@suse.de> | 2010-06-23 10:07:34 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-06-23 10:07:34 -0400 |
commit | 1240e6b5532358257c52351639a8d2382fe58f84 (patch) | |
tree | 43d374ce976a41c6dcd12a70a51e0289093f8d07 /sound/pci | |
parent | c9ff921abecda352e987a6aae169118a3fc9aa5d (diff) | |
parent | a5c7d797dcce3be5e77cd6ea62cc4920ededc32b (diff) |
Merge branch 'fix/misc' into topic/misc
Diffstat (limited to 'sound/pci')
-rw-r--r-- | sound/pci/asihpi/asihpi.c | 3 | ||||
-rw-r--r-- | sound/pci/asihpi/hpi6205.c | 22 | ||||
-rw-r--r-- | sound/pci/hda/hda_intel.c | 7 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 1 |
4 files changed, 20 insertions, 13 deletions
diff --git a/sound/pci/asihpi/asihpi.c b/sound/pci/asihpi/asihpi.c index f74c7372b3d1..1db586af4f9c 100644 --- a/sound/pci/asihpi/asihpi.c +++ b/sound/pci/asihpi/asihpi.c | |||
@@ -2578,6 +2578,9 @@ static int __devinit snd_card_asihpi_mixer_new(struct snd_card_asihpi *asihpi) | |||
2578 | if (err) | 2578 | if (err) |
2579 | return -err; | 2579 | return -err; |
2580 | 2580 | ||
2581 | memset(&prev_ctl, 0, sizeof(prev_ctl)); | ||
2582 | prev_ctl.control_type = -1; | ||
2583 | |||
2581 | for (idx = 0; idx < 2000; idx++) { | 2584 | for (idx = 0; idx < 2000; idx++) { |
2582 | err = hpi_mixer_get_control_by_index( | 2585 | err = hpi_mixer_get_control_by_index( |
2583 | ss, asihpi->h_mixer, | 2586 | ss, asihpi->h_mixer, |
diff --git a/sound/pci/asihpi/hpi6205.c b/sound/pci/asihpi/hpi6205.c index e89991ea3543..3b4413448226 100644 --- a/sound/pci/asihpi/hpi6205.c +++ b/sound/pci/asihpi/hpi6205.c | |||
@@ -941,11 +941,11 @@ static void outstream_host_buffer_free(struct hpi_adapter_obj *pao, | |||
941 | 941 | ||
942 | } | 942 | } |
943 | 943 | ||
944 | static long outstream_get_space_available(struct hpi_hostbuffer_status | 944 | static u32 outstream_get_space_available(struct hpi_hostbuffer_status |
945 | *status) | 945 | *status) |
946 | { | 946 | { |
947 | return status->size_in_bytes - ((long)(status->host_index) - | 947 | return status->size_in_bytes - (status->host_index - |
948 | (long)(status->dSP_index)); | 948 | status->dSP_index); |
949 | } | 949 | } |
950 | 950 | ||
951 | static void outstream_write(struct hpi_adapter_obj *pao, | 951 | static void outstream_write(struct hpi_adapter_obj *pao, |
@@ -954,7 +954,7 @@ static void outstream_write(struct hpi_adapter_obj *pao, | |||
954 | struct hpi_hw_obj *phw = pao->priv; | 954 | struct hpi_hw_obj *phw = pao->priv; |
955 | struct bus_master_interface *interface = phw->p_interface_buffer; | 955 | struct bus_master_interface *interface = phw->p_interface_buffer; |
956 | struct hpi_hostbuffer_status *status; | 956 | struct hpi_hostbuffer_status *status; |
957 | long space_available; | 957 | u32 space_available; |
958 | 958 | ||
959 | if (!phw->outstream_host_buffer_size[phm->obj_index]) { | 959 | if (!phw->outstream_host_buffer_size[phm->obj_index]) { |
960 | /* there is no BBM buffer, write via message */ | 960 | /* there is no BBM buffer, write via message */ |
@@ -1007,7 +1007,7 @@ static void outstream_write(struct hpi_adapter_obj *pao, | |||
1007 | } | 1007 | } |
1008 | 1008 | ||
1009 | space_available = outstream_get_space_available(status); | 1009 | space_available = outstream_get_space_available(status); |
1010 | if (space_available < (long)phm->u.d.u.data.data_size) { | 1010 | if (space_available < phm->u.d.u.data.data_size) { |
1011 | phr->error = HPI_ERROR_INVALID_DATASIZE; | 1011 | phr->error = HPI_ERROR_INVALID_DATASIZE; |
1012 | return; | 1012 | return; |
1013 | } | 1013 | } |
@@ -1018,7 +1018,7 @@ static void outstream_write(struct hpi_adapter_obj *pao, | |||
1018 | && hpios_locked_mem_valid(&phw->outstream_host_buffers[phm-> | 1018 | && hpios_locked_mem_valid(&phw->outstream_host_buffers[phm-> |
1019 | obj_index])) { | 1019 | obj_index])) { |
1020 | u8 *p_bbm_data; | 1020 | u8 *p_bbm_data; |
1021 | long l_first_write; | 1021 | u32 l_first_write; |
1022 | u8 *p_app_data = (u8 *)phm->u.d.u.data.pb_data; | 1022 | u8 *p_app_data = (u8 *)phm->u.d.u.data.pb_data; |
1023 | 1023 | ||
1024 | if (hpios_locked_mem_get_virt_addr(&phw-> | 1024 | if (hpios_locked_mem_get_virt_addr(&phw-> |
@@ -1248,9 +1248,9 @@ static void instream_start(struct hpi_adapter_obj *pao, | |||
1248 | hw_message(pao, phm, phr); | 1248 | hw_message(pao, phm, phr); |
1249 | } | 1249 | } |
1250 | 1250 | ||
1251 | static long instream_get_bytes_available(struct hpi_hostbuffer_status *status) | 1251 | static u32 instream_get_bytes_available(struct hpi_hostbuffer_status *status) |
1252 | { | 1252 | { |
1253 | return (long)(status->dSP_index) - (long)(status->host_index); | 1253 | return status->dSP_index - status->host_index; |
1254 | } | 1254 | } |
1255 | 1255 | ||
1256 | static void instream_read(struct hpi_adapter_obj *pao, | 1256 | static void instream_read(struct hpi_adapter_obj *pao, |
@@ -1259,9 +1259,9 @@ static void instream_read(struct hpi_adapter_obj *pao, | |||
1259 | struct hpi_hw_obj *phw = pao->priv; | 1259 | struct hpi_hw_obj *phw = pao->priv; |
1260 | struct bus_master_interface *interface = phw->p_interface_buffer; | 1260 | struct bus_master_interface *interface = phw->p_interface_buffer; |
1261 | struct hpi_hostbuffer_status *status; | 1261 | struct hpi_hostbuffer_status *status; |
1262 | long data_available; | 1262 | u32 data_available; |
1263 | u8 *p_bbm_data; | 1263 | u8 *p_bbm_data; |
1264 | long l_first_read; | 1264 | u32 l_first_read; |
1265 | u8 *p_app_data = (u8 *)phm->u.d.u.data.pb_data; | 1265 | u8 *p_app_data = (u8 *)phm->u.d.u.data.pb_data; |
1266 | 1266 | ||
1267 | if (!phw->instream_host_buffer_size[phm->obj_index]) { | 1267 | if (!phw->instream_host_buffer_size[phm->obj_index]) { |
@@ -1272,7 +1272,7 @@ static void instream_read(struct hpi_adapter_obj *pao, | |||
1272 | 1272 | ||
1273 | status = &interface->instream_host_buffer_status[phm->obj_index]; | 1273 | status = &interface->instream_host_buffer_status[phm->obj_index]; |
1274 | data_available = instream_get_bytes_available(status); | 1274 | data_available = instream_get_bytes_available(status); |
1275 | if (data_available < (long)phm->u.d.u.data.data_size) { | 1275 | if (data_available < phm->u.d.u.data.data_size) { |
1276 | phr->error = HPI_ERROR_INVALID_DATASIZE; | 1276 | phr->error = HPI_ERROR_INVALID_DATASIZE; |
1277 | return; | 1277 | return; |
1278 | } | 1278 | } |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index dc79564fea30..1df25cf5ce38 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -1913,11 +1913,11 @@ static int azx_position_ok(struct azx *chip, struct azx_dev *azx_dev) | |||
1913 | if (WARN_ONCE(!azx_dev->period_bytes, | 1913 | if (WARN_ONCE(!azx_dev->period_bytes, |
1914 | "hda-intel: zero azx_dev->period_bytes")) | 1914 | "hda-intel: zero azx_dev->period_bytes")) |
1915 | return -1; /* this shouldn't happen! */ | 1915 | return -1; /* this shouldn't happen! */ |
1916 | if (wallclk <= azx_dev->period_wallclk && | 1916 | if (wallclk < (azx_dev->period_wallclk * 5) / 4 && |
1917 | pos % azx_dev->period_bytes > azx_dev->period_bytes / 2) | 1917 | pos % azx_dev->period_bytes > azx_dev->period_bytes / 2) |
1918 | /* NG - it's below the first next period boundary */ | 1918 | /* NG - it's below the first next period boundary */ |
1919 | return bdl_pos_adj[chip->dev_index] ? 0 : -1; | 1919 | return bdl_pos_adj[chip->dev_index] ? 0 : -1; |
1920 | azx_dev->start_wallclk = wallclk; | 1920 | azx_dev->start_wallclk += wallclk; |
1921 | return 1; /* OK, it's fine */ | 1921 | return 1; /* OK, it's fine */ |
1922 | } | 1922 | } |
1923 | 1923 | ||
@@ -2288,6 +2288,8 @@ static struct snd_pci_quirk position_fix_list[] __devinitdata = { | |||
2288 | SND_PCI_QUIRK(0x1028, 0x01f6, "Dell Latitude 131L", POS_FIX_LPIB), | 2288 | SND_PCI_QUIRK(0x1028, 0x01f6, "Dell Latitude 131L", POS_FIX_LPIB), |
2289 | SND_PCI_QUIRK(0x103c, 0x306d, "HP dv3", POS_FIX_LPIB), | 2289 | SND_PCI_QUIRK(0x103c, 0x306d, "HP dv3", POS_FIX_LPIB), |
2290 | SND_PCI_QUIRK(0x1043, 0x813d, "ASUS P5AD2", POS_FIX_LPIB), | 2290 | SND_PCI_QUIRK(0x1043, 0x813d, "ASUS P5AD2", POS_FIX_LPIB), |
2291 | SND_PCI_QUIRK(0x1043, 0x81b3, "ASUS", POS_FIX_LPIB), | ||
2292 | SND_PCI_QUIRK(0x1043, 0x81e7, "ASUS M2V", POS_FIX_LPIB), | ||
2291 | SND_PCI_QUIRK(0x104d, 0x9069, "Sony VPCS11V9E", POS_FIX_LPIB), | 2293 | SND_PCI_QUIRK(0x104d, 0x9069, "Sony VPCS11V9E", POS_FIX_LPIB), |
2292 | SND_PCI_QUIRK(0x1106, 0x3288, "ASUS M2V-MX SE", POS_FIX_LPIB), | 2294 | SND_PCI_QUIRK(0x1106, 0x3288, "ASUS M2V-MX SE", POS_FIX_LPIB), |
2293 | SND_PCI_QUIRK(0x1179, 0xff10, "Toshiba A100-259", POS_FIX_LPIB), | 2295 | SND_PCI_QUIRK(0x1179, 0xff10, "Toshiba A100-259", POS_FIX_LPIB), |
@@ -2296,6 +2298,7 @@ static struct snd_pci_quirk position_fix_list[] __devinitdata = { | |||
2296 | SND_PCI_QUIRK(0x1462, 0x1002, "MSI Wind U115", POS_FIX_LPIB), | 2298 | SND_PCI_QUIRK(0x1462, 0x1002, "MSI Wind U115", POS_FIX_LPIB), |
2297 | SND_PCI_QUIRK(0x1565, 0x820f, "Biostar Microtech", POS_FIX_LPIB), | 2299 | SND_PCI_QUIRK(0x1565, 0x820f, "Biostar Microtech", POS_FIX_LPIB), |
2298 | SND_PCI_QUIRK(0x1565, 0x8218, "Biostar Microtech", POS_FIX_LPIB), | 2300 | SND_PCI_QUIRK(0x1565, 0x8218, "Biostar Microtech", POS_FIX_LPIB), |
2301 | SND_PCI_QUIRK(0x1849, 0x0888, "775Dual-VSTA", POS_FIX_LPIB), | ||
2299 | SND_PCI_QUIRK(0x8086, 0x2503, "DG965OT AAD63733-203", POS_FIX_LPIB), | 2302 | SND_PCI_QUIRK(0x8086, 0x2503, "DG965OT AAD63733-203", POS_FIX_LPIB), |
2300 | SND_PCI_QUIRK(0x8086, 0xd601, "eMachines T5212", POS_FIX_LPIB), | 2303 | SND_PCI_QUIRK(0x8086, 0xd601, "eMachines T5212", POS_FIX_LPIB), |
2301 | {} | 2304 | {} |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 17d4548cc353..d792cddbf4c2 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -9476,6 +9476,7 @@ static struct snd_pci_quirk alc882_ssid_cfg_tbl[] = { | |||
9476 | SND_PCI_QUIRK(0x106b, 0x1000, "iMac 24", ALC885_IMAC24), | 9476 | SND_PCI_QUIRK(0x106b, 0x1000, "iMac 24", ALC885_IMAC24), |
9477 | SND_PCI_QUIRK(0x106b, 0x2800, "AppleTV", ALC885_IMAC24), | 9477 | SND_PCI_QUIRK(0x106b, 0x2800, "AppleTV", ALC885_IMAC24), |
9478 | SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC885_MBP3), | 9478 | SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC885_MBP3), |
9479 | SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889A_MB31), | ||
9479 | SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889A_MB31), | 9480 | SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889A_MB31), |
9480 | SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC885_MBP3), | 9481 | SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC885_MBP3), |
9481 | SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_IMAC24), | 9482 | SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_IMAC24), |