mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-26 23:55:40 +08:00
ALSA: hda - Rework on patch_sigmatel.c for HP HDX16/HDX18
Code rework, comments of mail tiwai@suse.de (2009-03-09) incorporated. Code tested on HP HDX16 (not tested on HDX18 yet). Signed-off-by: Christoph Plattner <christoph.plattner@gmx.at> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
ae6241fbf5
commit
443e26d014
@ -4489,14 +4489,10 @@ static int stac92xx_resume(struct hda_codec *codec)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_SND_HDA_POWER_SAVE
|
#ifdef CONFIG_SND_HDA_POWER_SAVE
|
||||||
static int stac92xx_check_power_status (struct hda_codec * codec, hda_nid_t nid)
|
static int stac92xx_hp_hdx_check_power_status (struct hda_codec * codec, hda_nid_t nid)
|
||||||
{
|
{
|
||||||
struct sigmatel_spec *spec = codec->spec;
|
struct sigmatel_spec *spec = codec->spec;
|
||||||
|
|
||||||
/* only handle on HP HDX */
|
|
||||||
if (spec->board_config != STAC_HP_HDX)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (nid == 0x10)
|
if (nid == 0x10)
|
||||||
{
|
{
|
||||||
if (snd_hda_codec_amp_read(codec, nid, 0, HDA_OUTPUT, 0) &
|
if (snd_hda_codec_amp_read(codec, nid, 0, HDA_OUTPUT, 0) &
|
||||||
@ -4535,9 +4531,6 @@ static struct hda_codec_ops stac92xx_patch_ops = {
|
|||||||
.suspend = stac92xx_suspend,
|
.suspend = stac92xx_suspend,
|
||||||
.resume = stac92xx_resume,
|
.resume = stac92xx_resume,
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_SND_HDA_POWER_SAVE
|
|
||||||
.check_power_status = stac92xx_check_power_status,
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int patch_stac9200(struct hda_codec *codec)
|
static int patch_stac9200(struct hda_codec *codec)
|
||||||
@ -5134,13 +5127,6 @@ again:
|
|||||||
/* no output amps */
|
/* no output amps */
|
||||||
spec->num_pwrs = 0;
|
spec->num_pwrs = 0;
|
||||||
/* fallthru */
|
/* fallthru */
|
||||||
case 0x111d76b2: /* Codec of HP HDX16/HDX18 */
|
|
||||||
|
|
||||||
/* orange/white mute led on GPIO3, orange=0, white=1 */
|
|
||||||
spec->gpio_mask |= 0x08;
|
|
||||||
spec->gpio_dir |= 0x08;
|
|
||||||
spec->gpio_data |= 0x08; /* set to white */
|
|
||||||
/* fallthru */
|
|
||||||
default:
|
default:
|
||||||
memcpy(&spec->private_dimux, &stac92hd71bxx_dmux_amixer,
|
memcpy(&spec->private_dimux, &stac92hd71bxx_dmux_amixer,
|
||||||
sizeof(stac92hd71bxx_dmux_amixer));
|
sizeof(stac92hd71bxx_dmux_amixer));
|
||||||
@ -5199,6 +5185,20 @@ again:
|
|||||||
spec->num_dmics = 1;
|
spec->num_dmics = 1;
|
||||||
spec->num_dmuxes = 1;
|
spec->num_dmuxes = 1;
|
||||||
spec->num_smuxes = 1;
|
spec->num_smuxes = 1;
|
||||||
|
/*
|
||||||
|
* For controlling MUTE LED on HP HDX16/HDX18 notebooks,
|
||||||
|
* the CONFIG_SND_HDA_POWER_SAVE is needed to be set.
|
||||||
|
*/
|
||||||
|
#ifdef CONFIG_SND_HDA_POWER_SAVE
|
||||||
|
/* orange/white mute led on GPIO3, orange=0, white=1 */
|
||||||
|
spec->gpio_mask |= 0x08;
|
||||||
|
spec->gpio_dir |= 0x08;
|
||||||
|
spec->gpio_data |= 0x08; /* set to white */
|
||||||
|
|
||||||
|
/* register check_power_status callback. */
|
||||||
|
codec->patch_ops.check_power_status =
|
||||||
|
stac92xx_hp_hdx_check_power_status;
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user