mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 06:25:52 +02:00
Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android
This commit is contained in:
commit
d78c0d2e46
2
Makefile
2
Makefile
|
|
@ -1,6 +1,6 @@
|
|||
VERSION = 3
|
||||
PATCHLEVEL = 10
|
||||
SUBLEVEL = 73
|
||||
SUBLEVEL = 74
|
||||
EXTRAVERSION =
|
||||
NAME = TOSSUG Baby Fish
|
||||
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ ethernet@b0000 {
|
|||
fsl,num_tx_queues = <0x8>;
|
||||
fsl,magic-packet;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
ranges;
|
||||
|
||||
queue-group@b0000 {
|
||||
#address-cells = <1>;
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ ethernet@b1000 {
|
|||
fsl,num_tx_queues = <0x8>;
|
||||
fsl,magic-packet;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
ranges;
|
||||
|
||||
queue-group@b1000 {
|
||||
#address-cells = <1>;
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ ethernet@b2000 {
|
|||
fsl,num_tx_queues = <0x8>;
|
||||
fsl,magic-packet;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
ranges;
|
||||
|
||||
queue-group@b2000 {
|
||||
#address-cells = <1>;
|
||||
|
|
|
|||
|
|
@ -2333,10 +2333,16 @@ static void __dm_destroy(struct mapped_device *md, bool wait)
|
|||
set_bit(DMF_FREEING, &md->flags);
|
||||
spin_unlock(&_minor_lock);
|
||||
|
||||
/*
|
||||
* Take suspend_lock so that presuspend and postsuspend methods
|
||||
* do not race with internal suspend.
|
||||
*/
|
||||
mutex_lock(&md->suspend_lock);
|
||||
if (!dm_suspended_md(md)) {
|
||||
dm_table_presuspend_targets(map);
|
||||
dm_table_postsuspend_targets(map);
|
||||
}
|
||||
mutex_unlock(&md->suspend_lock);
|
||||
|
||||
/*
|
||||
* Rare, but there may be I/O requests still going to complete,
|
||||
|
|
|
|||
|
|
@ -1516,7 +1516,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
|
|||
{
|
||||
struct pcnet32_private *lp;
|
||||
int i, media;
|
||||
int fdx, mii, fset, dxsuflo;
|
||||
int fdx, mii, fset, dxsuflo, sram;
|
||||
int chip_version;
|
||||
char *chipname;
|
||||
struct net_device *dev;
|
||||
|
|
@ -1553,7 +1553,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
|
|||
}
|
||||
|
||||
/* initialize variables */
|
||||
fdx = mii = fset = dxsuflo = 0;
|
||||
fdx = mii = fset = dxsuflo = sram = 0;
|
||||
chip_version = (chip_version >> 12) & 0xffff;
|
||||
|
||||
switch (chip_version) {
|
||||
|
|
@ -1586,6 +1586,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
|
|||
chipname = "PCnet/FAST III 79C973"; /* PCI */
|
||||
fdx = 1;
|
||||
mii = 1;
|
||||
sram = 1;
|
||||
break;
|
||||
case 0x2626:
|
||||
chipname = "PCnet/Home 79C978"; /* PCI */
|
||||
|
|
@ -1609,6 +1610,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
|
|||
chipname = "PCnet/FAST III 79C975"; /* PCI */
|
||||
fdx = 1;
|
||||
mii = 1;
|
||||
sram = 1;
|
||||
break;
|
||||
case 0x2628:
|
||||
chipname = "PCnet/PRO 79C976";
|
||||
|
|
@ -1637,6 +1639,31 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev)
|
|||
dxsuflo = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* The Am79C973/Am79C975 controllers come with 12K of SRAM
|
||||
* which we can use for the Tx/Rx buffers but most importantly,
|
||||
* the use of SRAM allow us to use the BCR18:NOUFLO bit to avoid
|
||||
* Tx fifo underflows.
|
||||
*/
|
||||
if (sram) {
|
||||
/*
|
||||
* The SRAM is being configured in two steps. First we
|
||||
* set the SRAM size in the BCR25:SRAM_SIZE bits. According
|
||||
* to the datasheet, each bit corresponds to a 512-byte
|
||||
* page so we can have at most 24 pages. The SRAM_SIZE
|
||||
* holds the value of the upper 8 bits of the 16-bit SRAM size.
|
||||
* The low 8-bits start at 0x00 and end at 0xff. So the
|
||||
* address range is from 0x0000 up to 0x17ff. Therefore,
|
||||
* the SRAM_SIZE is set to 0x17. The next step is to set
|
||||
* the BCR26:SRAM_BND midway through so the Tx and Rx
|
||||
* buffers can share the SRAM equally.
|
||||
*/
|
||||
a->write_bcr(ioaddr, 25, 0x17);
|
||||
a->write_bcr(ioaddr, 26, 0xc);
|
||||
/* And finally enable the NOUFLO bit */
|
||||
a->write_bcr(ioaddr, 18, a->read_bcr(ioaddr, 18) | (1 << 11));
|
||||
}
|
||||
|
||||
dev = alloc_etherdev(sizeof(*lp));
|
||||
if (!dev) {
|
||||
ret = -ENOMEM;
|
||||
|
|
|
|||
|
|
@ -541,7 +541,7 @@ static int iwl_mvm_mac_add_interface(struct ieee80211_hw *hw,
|
|||
|
||||
ret = iwl_mvm_mac_ctxt_add(mvm, vif);
|
||||
if (ret)
|
||||
goto out_remove_mac;
|
||||
goto out_release;
|
||||
|
||||
/*
|
||||
* Update power state on the new interface. Admittedly, based on
|
||||
|
|
|
|||
|
|
@ -1465,7 +1465,7 @@ static int tcm_qla2xxx_check_initiator_node_acl(
|
|||
/*
|
||||
* Finally register the new FC Nexus with TCM
|
||||
*/
|
||||
__transport_register_session(se_nacl->se_tpg, se_nacl, se_sess, sess);
|
||||
transport_register_session(se_nacl->se_tpg, se_nacl, se_sess, sess);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -966,6 +966,7 @@ bool RFbSetPower(
|
|||
break;
|
||||
case RATE_6M:
|
||||
case RATE_9M:
|
||||
case RATE_12M:
|
||||
case RATE_18M:
|
||||
byPwr = pDevice->abyOFDMPwrTbl[uCH];
|
||||
if (pDevice->byRFType == RF_UW2452) {
|
||||
|
|
|
|||
|
|
@ -346,7 +346,7 @@ void ft_invl_hw_context(struct ft_cmd *cmd)
|
|||
ep = fc_seq_exch(seq);
|
||||
if (ep) {
|
||||
lport = ep->lp;
|
||||
if (lport && (ep->xid <= lport->lro_xid))
|
||||
if (lport && (ep->xid <= lport->lro_xid)) {
|
||||
/*
|
||||
* "ddp_done" trigger invalidation of HW
|
||||
* specific DDP context
|
||||
|
|
@ -361,6 +361,7 @@ void ft_invl_hw_context(struct ft_cmd *cmd)
|
|||
* identified using ep->xid)
|
||||
*/
|
||||
cmd->was_ddp_setup = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,13 +131,16 @@ int hfs_brec_insert(struct hfs_find_data *fd, void *entry, int entry_len)
|
|||
hfs_bnode_write(node, entry, data_off + key_len, entry_len);
|
||||
hfs_bnode_dump(node);
|
||||
|
||||
if (new_node) {
|
||||
/* update parent key if we inserted a key
|
||||
* at the start of the first node
|
||||
*/
|
||||
if (!rec && new_node != node)
|
||||
hfs_brec_update_parent(fd);
|
||||
/*
|
||||
* update parent key if we inserted a key
|
||||
* at the start of the node and it is not the new node
|
||||
*/
|
||||
if (!rec && new_node != node) {
|
||||
hfs_bnode_read_key(node, fd->search_key, data_off + size);
|
||||
hfs_brec_update_parent(fd);
|
||||
}
|
||||
|
||||
if (new_node) {
|
||||
hfs_bnode_put(fd->bnode);
|
||||
if (!new_node->parent) {
|
||||
hfs_btree_inc_height(tree);
|
||||
|
|
@ -168,9 +171,6 @@ int hfs_brec_insert(struct hfs_find_data *fd, void *entry, int entry_len)
|
|||
goto again;
|
||||
}
|
||||
|
||||
if (!rec)
|
||||
hfs_brec_update_parent(fd);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -370,6 +370,8 @@ static int hfs_brec_update_parent(struct hfs_find_data *fd)
|
|||
if (IS_ERR(parent))
|
||||
return PTR_ERR(parent);
|
||||
__hfs_brec_find(parent, fd, hfs_find_rec_by_key);
|
||||
if (fd->record < 0)
|
||||
return -ENOENT;
|
||||
hfs_bnode_dump(parent);
|
||||
rec = fd->record;
|
||||
|
||||
|
|
|
|||
|
|
@ -4007,6 +4007,13 @@ static void perf_pending_event(struct irq_work *entry)
|
|||
{
|
||||
struct perf_event *event = container_of(entry,
|
||||
struct perf_event, pending);
|
||||
int rctx;
|
||||
|
||||
rctx = perf_swevent_get_recursion_context();
|
||||
/*
|
||||
* If we 'fail' here, that's OK, it means recursion is already disabled
|
||||
* and we won't recurse 'further'.
|
||||
*/
|
||||
|
||||
if (event->pending_disable) {
|
||||
event->pending_disable = 0;
|
||||
|
|
@ -4017,6 +4024,9 @@ static void perf_pending_event(struct irq_work *entry)
|
|||
event->pending_wakeup = 0;
|
||||
perf_event_wakeup(event);
|
||||
}
|
||||
|
||||
if (rctx >= 0)
|
||||
perf_swevent_put_recursion_context(rctx);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -60,13 +60,24 @@ struct ieee80211_local;
|
|||
#define IEEE80211_UNSET_POWER_LEVEL INT_MIN
|
||||
|
||||
/*
|
||||
* Some APs experience problems when working with U-APSD. Decrease the
|
||||
* probability of that happening by using legacy mode for all ACs but VO.
|
||||
* The AP that caused us trouble was a Cisco 4410N. It ignores our
|
||||
* setting, and always treats non-VO ACs as legacy.
|
||||
* Some APs experience problems when working with U-APSD. Decreasing the
|
||||
* probability of that happening by using legacy mode for all ACs but VO isn't
|
||||
* enough.
|
||||
*
|
||||
* Cisco 4410N originally forced us to enable VO by default only because it
|
||||
* treated non-VO ACs as legacy.
|
||||
*
|
||||
* However some APs (notably Netgear R7000) silently reclassify packets to
|
||||
* different ACs. Since u-APSD ACs require trigger frames for frame retrieval
|
||||
* clients would never see some frames (e.g. ARP responses) or would fetch them
|
||||
* accidentally after a long time.
|
||||
*
|
||||
* It makes little sense to enable u-APSD queues by default because it needs
|
||||
* userspace applications to be aware of it to actually take advantage of the
|
||||
* possible additional powersavings. Implicitly depending on driver autotrigger
|
||||
* frame support doesn't make much sense.
|
||||
*/
|
||||
#define IEEE80211_DEFAULT_UAPSD_QUEUES \
|
||||
IEEE80211_WMM_IE_STA_QOSINFO_AC_VO
|
||||
#define IEEE80211_DEFAULT_UAPSD_QUEUES 0
|
||||
|
||||
#define IEEE80211_DEFAULT_MAX_SP_LEN \
|
||||
IEEE80211_WMM_IE_STA_QOSINFO_SP_ALL
|
||||
|
|
|
|||
|
|
@ -2023,6 +2023,9 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx)
|
|||
hdr = (struct ieee80211_hdr *) skb->data;
|
||||
mesh_hdr = (struct ieee80211s_hdr *) (skb->data + hdrlen);
|
||||
|
||||
if (ieee80211_drop_unencrypted(rx, hdr->frame_control))
|
||||
return RX_DROP_MONITOR;
|
||||
|
||||
/* frame is in RMC, don't forward */
|
||||
if (ieee80211_is_data(hdr->frame_control) &&
|
||||
is_multicast_ether_addr(hdr->addr1) &&
|
||||
|
|
|
|||
|
|
@ -4071,6 +4071,16 @@ static int nl80211_new_station(struct sk_buff *skb, struct genl_info *info)
|
|||
if (parse_station_flags(info, dev->ieee80211_ptr->iftype, ¶ms))
|
||||
return -EINVAL;
|
||||
|
||||
/* HT/VHT requires QoS, but if we don't have that just ignore HT/VHT
|
||||
* as userspace might just pass through the capabilities from the IEs
|
||||
* directly, rather than enforcing this restriction and returning an
|
||||
* error in this case.
|
||||
*/
|
||||
if (!(params.sta_flags_set & BIT(NL80211_STA_FLAG_WME))) {
|
||||
params.ht_capa = NULL;
|
||||
params.vht_capa = NULL;
|
||||
}
|
||||
|
||||
/* When you run into this, adjust the code below for the new flag */
|
||||
BUILD_BUG_ON(NL80211_STA_FLAG_MAX != 7);
|
||||
|
||||
|
|
|
|||
|
|
@ -307,7 +307,7 @@ static int adav80x_put_deemph(struct snd_kcontrol *kcontrol,
|
|||
{
|
||||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec);
|
||||
unsigned int deemph = ucontrol->value.enumerated.item[0];
|
||||
unsigned int deemph = ucontrol->value.integer.value[0];
|
||||
|
||||
if (deemph > 1)
|
||||
return -EINVAL;
|
||||
|
|
@ -323,7 +323,7 @@ static int adav80x_get_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct adav80x *adav80x = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = adav80x->deemph;
|
||||
ucontrol->value.integer.value[0] = adav80x->deemph;
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ static int ak4641_put_deemph(struct snd_kcontrol *kcontrol,
|
|||
{
|
||||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct ak4641_priv *ak4641 = snd_soc_codec_get_drvdata(codec);
|
||||
int deemph = ucontrol->value.enumerated.item[0];
|
||||
int deemph = ucontrol->value.integer.value[0];
|
||||
|
||||
if (deemph > 1)
|
||||
return -EINVAL;
|
||||
|
|
@ -90,7 +90,7 @@ static int ak4641_get_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct ak4641_priv *ak4641 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = ak4641->deemph;
|
||||
ucontrol->value.integer.value[0] = ak4641->deemph;
|
||||
return 0;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -267,7 +267,7 @@ static int cs4271_get_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct cs4271_private *cs4271 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = cs4271->deemph;
|
||||
ucontrol->value.integer.value[0] = cs4271->deemph;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -277,7 +277,7 @@ static int cs4271_put_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct cs4271_private *cs4271 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
cs4271->deemph = ucontrol->value.enumerated.item[0];
|
||||
cs4271->deemph = ucontrol->value.integer.value[0];
|
||||
return cs4271_set_deemph(codec);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1111,13 +1111,7 @@ static int sgtl5000_set_power_regs(struct snd_soc_codec *codec)
|
|||
/* Enable VDDC charge pump */
|
||||
ana_pwr |= SGTL5000_VDDC_CHRGPMP_POWERUP;
|
||||
} else if (vddio >= 3100 && vdda >= 3100) {
|
||||
/*
|
||||
* if vddio and vddd > 3.1v,
|
||||
* charge pump should be clean before set ana_pwr
|
||||
*/
|
||||
snd_soc_update_bits(codec, SGTL5000_CHIP_ANA_POWER,
|
||||
SGTL5000_VDDC_CHRGPMP_POWERUP, 0);
|
||||
|
||||
ana_pwr &= ~SGTL5000_VDDC_CHRGPMP_POWERUP;
|
||||
/* VDDC use VDDIO rail */
|
||||
lreg_ctrl |= SGTL5000_VDDC_ASSN_OVRD;
|
||||
lreg_ctrl |= SGTL5000_VDDC_MAN_ASSN_VDDIO <<
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ static int tas5086_get_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct tas5086_private *priv = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = priv->deemph;
|
||||
ucontrol->value.integer.value[0] = priv->deemph;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -184,7 +184,7 @@ static int tas5086_put_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct tas5086_private *priv = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
priv->deemph = ucontrol->value.enumerated.item[0];
|
||||
priv->deemph = ucontrol->value.integer.value[0];
|
||||
|
||||
return tas5086_set_deemph(codec);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -605,7 +605,7 @@ static int wm2000_anc_mode_get(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm2000_priv *wm2000 = dev_get_drvdata(codec->dev);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = wm2000->anc_active;
|
||||
ucontrol->value.integer.value[0] = wm2000->anc_active;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -615,7 +615,7 @@ static int wm2000_anc_mode_put(struct snd_kcontrol *kcontrol,
|
|||
{
|
||||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm2000_priv *wm2000 = dev_get_drvdata(codec->dev);
|
||||
int anc_active = ucontrol->value.enumerated.item[0];
|
||||
int anc_active = ucontrol->value.integer.value[0];
|
||||
int ret;
|
||||
|
||||
if (anc_active > 1)
|
||||
|
|
@ -638,7 +638,7 @@ static int wm2000_speaker_get(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm2000_priv *wm2000 = dev_get_drvdata(codec->dev);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = wm2000->spk_ena;
|
||||
ucontrol->value.integer.value[0] = wm2000->spk_ena;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -648,7 +648,7 @@ static int wm2000_speaker_put(struct snd_kcontrol *kcontrol,
|
|||
{
|
||||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm2000_priv *wm2000 = dev_get_drvdata(codec->dev);
|
||||
int val = ucontrol->value.enumerated.item[0];
|
||||
int val = ucontrol->value.integer.value[0];
|
||||
int ret;
|
||||
|
||||
if (val > 1)
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ static int wm8731_get_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = wm8731->deemph;
|
||||
ucontrol->value.integer.value[0] = wm8731->deemph;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -131,7 +131,7 @@ static int wm8731_put_deemph(struct snd_kcontrol *kcontrol,
|
|||
{
|
||||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm8731_priv *wm8731 = snd_soc_codec_get_drvdata(codec);
|
||||
int deemph = ucontrol->value.enumerated.item[0];
|
||||
int deemph = ucontrol->value.integer.value[0];
|
||||
int ret = 0;
|
||||
|
||||
if (deemph > 1)
|
||||
|
|
|
|||
|
|
@ -446,7 +446,7 @@ static int wm8903_get_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = wm8903->deemph;
|
||||
ucontrol->value.integer.value[0] = wm8903->deemph;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -456,7 +456,7 @@ static int wm8903_put_deemph(struct snd_kcontrol *kcontrol,
|
|||
{
|
||||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec);
|
||||
int deemph = ucontrol->value.enumerated.item[0];
|
||||
int deemph = ucontrol->value.integer.value[0];
|
||||
int ret = 0;
|
||||
|
||||
if (deemph > 1)
|
||||
|
|
|
|||
|
|
@ -523,7 +523,7 @@ static int wm8904_get_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = wm8904->deemph;
|
||||
ucontrol->value.integer.value[0] = wm8904->deemph;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -532,7 +532,7 @@ static int wm8904_put_deemph(struct snd_kcontrol *kcontrol,
|
|||
{
|
||||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
|
||||
int deemph = ucontrol->value.enumerated.item[0];
|
||||
int deemph = ucontrol->value.integer.value[0];
|
||||
|
||||
if (deemph > 1)
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -393,7 +393,7 @@ static int wm8955_get_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm8955_priv *wm8955 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = wm8955->deemph;
|
||||
ucontrol->value.integer.value[0] = wm8955->deemph;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -402,7 +402,7 @@ static int wm8955_put_deemph(struct snd_kcontrol *kcontrol,
|
|||
{
|
||||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm8955_priv *wm8955 = snd_soc_codec_get_drvdata(codec);
|
||||
int deemph = ucontrol->value.enumerated.item[0];
|
||||
int deemph = ucontrol->value.integer.value[0];
|
||||
|
||||
if (deemph > 1)
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ static int wm8960_get_deemph(struct snd_kcontrol *kcontrol,
|
|||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec);
|
||||
|
||||
ucontrol->value.enumerated.item[0] = wm8960->deemph;
|
||||
ucontrol->value.integer.value[0] = wm8960->deemph;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -190,7 +190,7 @@ static int wm8960_put_deemph(struct snd_kcontrol *kcontrol,
|
|||
{
|
||||
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
|
||||
struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec);
|
||||
int deemph = ucontrol->value.enumerated.item[0];
|
||||
int deemph = ucontrol->value.integer.value[0];
|
||||
|
||||
if (deemph > 1)
|
||||
return -EINVAL;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user