Skip to content

Commit bbcb2cd

Browse files
committed
Merge tag 'sound-7.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "A bunch of small device-specific fixes. Mostly quirks and fix-ups for USB- and HD-audio at this time, in addition to a couple of ASoC AMD and Cirrus fixes" * tag 'sound-7.0-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (24 commits) ASoC: SDCA: Fix comments for sdca_irq_request() ALSA: us144mkii: Drop kernel-doc markers ALSA: usb: qcom: Correct parameter comment for uaudio_transfer_buffer_setup() ALSA: usb-audio: Drop superfluous kernel-doc markers ALSA: hda: cs35l56: Remove unnecessary struct cs_dsp_client_ops ALSA: hda: cs35l56: Fix signedness error in cs35l56_hda_posture_put() ALSA: usb-audio: Use correct version for UAC3 header validation ALSA: hda/realtek: add quirk for Acer Nitro ANV15-51 ALSA: hda/intel: increase default bdl_pos_adj for Nvidia controllers ALSA: usb-audio: Use inclusive terms ALSA: usb-audio: Avoid implicit feedback mode on DIYINHK USB Audio 2.0 ALSA: usb-audio: Check max frame size for implicit feedback mode, too ALSA: usb-audio: Cap the packet size pre-calculations ASoC: amd: yc: Add ASUS EXPERTBOOK BM1503CDA to quirk table ASoC: cs42l43: Report insert for exotic peripherals ALSA: usb-audio: Skip clock selector for Focusrite devices ALSA: usb-audio: Add QUIRK_FLAG_SKIP_IFACE_SETUP ALSA: usb-audio: Remove VALIDATE_RATES quirk for Focusrite devices ALSA: usb-audio: Improve Focusrite sample rate filtering ALSA: hda/realtek: add quirk for Samsung Galaxy Book Flex (NT950QCT-A38A) ...
2 parents 466d617 + 71c1978 commit bbcb2cd

20 files changed

Lines changed: 196 additions & 83 deletions

sound/hda/codecs/realtek/alc269.c

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1017,6 +1017,24 @@ static int alc269_resume(struct hda_codec *codec)
10171017
return 0;
10181018
}
10191019

1020+
#define STARLABS_STARFIGHTER_SHUTUP_DELAY_MS 30
1021+
1022+
static void starlabs_starfighter_shutup(struct hda_codec *codec)
1023+
{
1024+
if (snd_hda_gen_shutup_speakers(codec))
1025+
msleep(STARLABS_STARFIGHTER_SHUTUP_DELAY_MS);
1026+
}
1027+
1028+
static void alc233_fixup_starlabs_starfighter(struct hda_codec *codec,
1029+
const struct hda_fixup *fix,
1030+
int action)
1031+
{
1032+
struct alc_spec *spec = codec->spec;
1033+
1034+
if (action == HDA_FIXUP_ACT_PRE_PROBE)
1035+
spec->shutup = starlabs_starfighter_shutup;
1036+
}
1037+
10201038
static void alc269_fixup_pincfg_no_hp_to_lineout(struct hda_codec *codec,
10211039
const struct hda_fixup *fix, int action)
10221040
{
@@ -4040,6 +4058,7 @@ enum {
40404058
ALC245_FIXUP_CLEVO_NOISY_MIC,
40414059
ALC269_FIXUP_VAIO_VJFH52_MIC_NO_PRESENCE,
40424060
ALC233_FIXUP_MEDION_MTL_SPK,
4061+
ALC233_FIXUP_STARLABS_STARFIGHTER,
40434062
ALC294_FIXUP_BASS_SPEAKER_15,
40444063
ALC283_FIXUP_DELL_HP_RESUME,
40454064
ALC294_FIXUP_ASUS_CS35L41_SPI_2,
@@ -4056,6 +4075,7 @@ enum {
40564075
ALC236_FIXUP_HP_MUTE_LED_MICMUTE_GPIO,
40574076
ALC233_FIXUP_LENOVO_GPIO2_MIC_HOTKEY,
40584077
ALC245_FIXUP_BASS_HP_DAC,
4078+
ALC245_FIXUP_ACER_MICMUTE_LED,
40594079
};
40604080

40614081
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -6499,6 +6519,10 @@ static const struct hda_fixup alc269_fixups[] = {
64996519
{ }
65006520
},
65016521
},
6522+
[ALC233_FIXUP_STARLABS_STARFIGHTER] = {
6523+
.type = HDA_FIXUP_FUNC,
6524+
.v.func = alc233_fixup_starlabs_starfighter,
6525+
},
65026526
[ALC294_FIXUP_BASS_SPEAKER_15] = {
65036527
.type = HDA_FIXUP_FUNC,
65046528
.v.func = alc294_fixup_bass_speaker_15,
@@ -6576,6 +6600,12 @@ static const struct hda_fixup alc269_fixups[] = {
65766600
/* Borrow the DAC routing selected for those Thinkpads */
65776601
.v.func = alc285_fixup_thinkpad_x1_gen7,
65786602
},
6603+
[ALC245_FIXUP_ACER_MICMUTE_LED] = {
6604+
.type = HDA_FIXUP_FUNC,
6605+
.v.func = alc285_fixup_hp_coef_micmute_led,
6606+
.chained = true,
6607+
.chain_id = ALC2XX_FIXUP_HEADSET_MIC,
6608+
}
65796609
};
65806610

65816611
static const struct hda_quirk alc269_fixup_tbl[] = {
@@ -6591,6 +6621,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
65916621
SND_PCI_QUIRK(0x1025, 0x079b, "Acer Aspire V5-573G", ALC282_FIXUP_ASPIRE_V5_PINS),
65926622
SND_PCI_QUIRK(0x1025, 0x080d, "Acer Aspire V5-122P", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
65936623
SND_PCI_QUIRK(0x1025, 0x0840, "Acer Aspire E1", ALC269VB_FIXUP_ASPIRE_E1_COEF),
6624+
SND_PCI_QUIRK(0x1025, 0x0943, "Acer Aspire V3-572G", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
65946625
SND_PCI_QUIRK(0x1025, 0x100c, "Acer Aspire E5-574G", ALC255_FIXUP_ACER_LIMIT_INT_MIC_BOOST),
65956626
SND_PCI_QUIRK(0x1025, 0x101c, "Acer Veriton N2510G", ALC269_FIXUP_LIFEBOOK),
65966627
SND_PCI_QUIRK(0x1025, 0x102b, "Acer Aspire C24-860", ALC286_FIXUP_ACER_AIO_MIC_NO_PRESENCE),
@@ -6627,6 +6658,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
66276658
SND_PCI_QUIRK(0x1025, 0x159c, "Acer Nitro 5 AN515-58", ALC2XX_FIXUP_HEADSET_MIC),
66286659
SND_PCI_QUIRK(0x1025, 0x1597, "Acer Nitro 5 AN517-55", ALC2XX_FIXUP_HEADSET_MIC),
66296660
SND_PCI_QUIRK(0x1025, 0x169a, "Acer Swift SFG16", ALC256_FIXUP_ACER_SFG16_MICMUTE_LED),
6661+
SND_PCI_QUIRK(0x1025, 0x171e, "Acer Nitro ANV15-51", ALC245_FIXUP_ACER_MICMUTE_LED),
66306662
SND_PCI_QUIRK(0x1025, 0x1826, "Acer Helios ZPC", ALC287_FIXUP_PREDATOR_SPK_CS35L41_I2C_2),
66316663
SND_PCI_QUIRK(0x1025, 0x182c, "Acer Helios ZPD", ALC287_FIXUP_PREDATOR_SPK_CS35L41_I2C_2),
66326664
SND_PCI_QUIRK(0x1025, 0x1844, "Acer Helios ZPS", ALC287_FIXUP_PREDATOR_SPK_CS35L41_I2C_2),
@@ -7311,7 +7343,8 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
73117343
SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
73127344
SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP),
73137345
SND_PCI_QUIRK(0x144d, 0xc176, "Samsung Notebook 9 Pro (NP930MBE-K04US)", ALC298_FIXUP_SAMSUNG_AMP),
7314-
SND_PCI_QUIRK(0x144d, 0xc189, "Samsung Galaxy Flex Book (NT950QCG-X716)", ALC298_FIXUP_SAMSUNG_AMP),
7346+
SND_PCI_QUIRK(0x144d, 0xc188, "Samsung Galaxy Book Flex (NT950QCT-A38A)", ALC298_FIXUP_SAMSUNG_AMP),
7347+
SND_PCI_QUIRK(0x144d, 0xc189, "Samsung Galaxy Book Flex (NT950QCG-X716)", ALC298_FIXUP_SAMSUNG_AMP),
73157348
SND_PCI_QUIRK(0x144d, 0xc18a, "Samsung Galaxy Book Ion (NP930XCJ-K01US)", ALC298_FIXUP_SAMSUNG_AMP),
73167349
SND_PCI_QUIRK(0x144d, 0xc1a3, "Samsung Galaxy Book Pro (NP935XDB-KC1SE)", ALC298_FIXUP_SAMSUNG_AMP),
73177350
SND_PCI_QUIRK(0x144d, 0xc1a4, "Samsung Galaxy Book Pro 360 (NT935QBD)", ALC298_FIXUP_SAMSUNG_AMP),
@@ -7651,6 +7684,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
76517684
SND_PCI_QUIRK(0x2782, 0x1705, "MEDION E15433", ALC269VC_FIXUP_INFINIX_Y4_MAX),
76527685
SND_PCI_QUIRK(0x2782, 0x1707, "Vaio VJFE-ADL", ALC298_FIXUP_SPK_VOLUME),
76537686
SND_PCI_QUIRK(0x2782, 0x4900, "MEDION E15443", ALC233_FIXUP_MEDION_MTL_SPK),
7687+
SND_PCI_QUIRK(0x7017, 0x2014, "Star Labs StarFighter", ALC233_FIXUP_STARLABS_STARFIGHTER),
76547688
SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC),
76557689
SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED),
76567690
SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10),
@@ -7747,6 +7781,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
77477781
{.id = ALC298_FIXUP_TPT470_DOCK_FIX, .name = "tpt470-dock-fix"},
77487782
{.id = ALC298_FIXUP_TPT470_DOCK, .name = "tpt470-dock"},
77497783
{.id = ALC233_FIXUP_LENOVO_MULTI_CODECS, .name = "dual-codecs"},
7784+
{.id = ALC233_FIXUP_STARLABS_STARFIGHTER, .name = "starlabs-starfighter"},
77507785
{.id = ALC700_FIXUP_INTEL_REFERENCE, .name = "alc700-ref"},
77517786
{.id = ALC269_FIXUP_SONY_VAIO, .name = "vaio"},
77527787
{.id = ALC269_FIXUP_DELL_M101Z, .name = "dell-m101z"},

sound/hda/codecs/side-codecs/cs35l56_hda.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ static int cs35l56_hda_posture_put(struct snd_kcontrol *kcontrol,
249249
struct snd_ctl_elem_value *ucontrol)
250250
{
251251
struct cs35l56_hda *cs35l56 = snd_kcontrol_chip(kcontrol);
252-
unsigned long pos = ucontrol->value.integer.value[0];
252+
long pos = ucontrol->value.integer.value[0];
253253
bool changed;
254254
int ret;
255255

@@ -403,10 +403,6 @@ static void cs35l56_hda_remove_controls(struct cs35l56_hda *cs35l56)
403403
snd_ctl_remove(cs35l56->codec->card, cs35l56->volume_ctl);
404404
}
405405

406-
static const struct cs_dsp_client_ops cs35l56_hda_client_ops = {
407-
/* cs_dsp requires the client to provide this even if it is empty */
408-
};
409-
410406
static int cs35l56_hda_request_firmware_file(struct cs35l56_hda *cs35l56,
411407
const struct firmware **firmware, char **filename,
412408
const char *base_name, const char *system_name,
@@ -1149,7 +1145,6 @@ int cs35l56_hda_common_probe(struct cs35l56_hda *cs35l56, int hid, int id)
11491145
cs35l56->base.cal_index = cs35l56->index;
11501146

11511147
cs35l56_init_cs_dsp(&cs35l56->base, &cs35l56->cs_dsp);
1152-
cs35l56->cs_dsp.client_ops = &cs35l56_hda_client_ops;
11531148

11541149
if (cs35l56->base.reset_gpio) {
11551150
dev_dbg(cs35l56->base.dev, "Hard reset\n");

sound/hda/controllers/intel.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,6 +1751,8 @@ static int default_bdl_pos_adj(struct azx *chip)
17511751
return 1;
17521752
case AZX_DRIVER_ZHAOXINHDMI:
17531753
return 128;
1754+
case AZX_DRIVER_NVIDIA:
1755+
return 64;
17541756
default:
17551757
return 32;
17561758
}

sound/soc/amd/yc/acp6x-mach.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
703703
DMI_MATCH(DMI_PRODUCT_NAME, "Vivobook_ASUSLaptop M6501RR_M6501RR"),
704704
}
705705
},
706+
{
707+
.driver_data = &acp6x_card,
708+
.matches = {
709+
DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."),
710+
DMI_MATCH(DMI_PRODUCT_NAME, "ASUS EXPERTBOOK BM1503CDA"),
711+
}
712+
},
706713
{}
707714
};
708715

sound/soc/codecs/cs42l43-jack.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -699,6 +699,7 @@ static int cs42l43_run_type_detect(struct cs42l43_codec *priv)
699699
switch (type & CS42L43_HSDET_TYPE_STS_MASK) {
700700
case 0x0: // CTIA
701701
case 0x1: // OMTP
702+
case 0x4:
702703
return cs42l43_run_load_detect(priv, true);
703704
case 0x2: // 3-pole
704705
return cs42l43_run_load_detect(priv, false);

sound/soc/sdca/sdca_interrupts.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,9 +265,9 @@ static int sdca_irq_request_locked(struct device *dev,
265265
}
266266

267267
/**
268-
* sdca_request_irq - request an individual SDCA interrupt
268+
* sdca_irq_request - request an individual SDCA interrupt
269269
* @dev: Pointer to the struct device against which things should be allocated.
270-
* @interrupt_info: Pointer to the interrupt information structure.
270+
* @info: Pointer to the interrupt information structure.
271271
* @sdca_irq: SDCA interrupt position.
272272
* @name: Name to be given to the IRQ.
273273
* @handler: A callback thread function to be called for the IRQ.

sound/usb/endpoint.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ int snd_usb_endpoint_implicit_feedback_sink(struct snd_usb_endpoint *ep)
160160
* This won't be used for implicit feedback which takes the packet size
161161
* returned from the sync source
162162
*/
163-
static int slave_next_packet_size(struct snd_usb_endpoint *ep,
164-
unsigned int avail)
163+
static int synced_next_packet_size(struct snd_usb_endpoint *ep,
164+
unsigned int avail)
165165
{
166166
unsigned int phase;
167167
int ret;
@@ -221,13 +221,14 @@ int snd_usb_endpoint_next_packet_size(struct snd_usb_endpoint *ep,
221221

222222
packet = ctx->packet_size[idx];
223223
if (packet) {
224+
packet = min(packet, ep->maxframesize);
224225
if (avail && packet >= avail)
225226
return -EAGAIN;
226227
return packet;
227228
}
228229

229230
if (ep->sync_source)
230-
return slave_next_packet_size(ep, avail);
231+
return synced_next_packet_size(ep, avail);
231232
else
232233
return next_packet_size(ep, avail);
233234
}
@@ -1378,6 +1379,9 @@ int snd_usb_endpoint_set_params(struct snd_usb_audio *chip,
13781379
return -EINVAL;
13791380
}
13801381

1382+
ep->packsize[0] = min(ep->packsize[0], ep->maxframesize);
1383+
ep->packsize[1] = min(ep->packsize[1], ep->maxframesize);
1384+
13811385
/* calculate the frequency in 16.16 format */
13821386
ep->freqm = ep->freqn;
13831387
ep->freqshift = INT_MIN;

sound/usb/format.c

Lines changed: 65 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -305,17 +305,48 @@ static bool s1810c_valid_sample_rate(struct audioformat *fp,
305305
}
306306

307307
/*
308-
* Many Focusrite devices supports a limited set of sampling rates per
309-
* altsetting. Maximum rate is exposed in the last 4 bytes of Format Type
310-
* descriptor which has a non-standard bLength = 10.
308+
* Focusrite devices use rate pairs: 44100/48000, 88200/96000, and
309+
* 176400/192000. Return true if rate is in the pair for max_rate.
310+
*/
311+
static bool focusrite_rate_pair(unsigned int rate,
312+
unsigned int max_rate)
313+
{
314+
switch (max_rate) {
315+
case 48000: return rate == 44100 || rate == 48000;
316+
case 96000: return rate == 88200 || rate == 96000;
317+
case 192000: return rate == 176400 || rate == 192000;
318+
default: return true;
319+
}
320+
}
321+
322+
/*
323+
* Focusrite devices report all supported rates in a single clock
324+
* source but only a subset is valid per altsetting.
325+
*
326+
* Detection uses two descriptor features:
327+
*
328+
* 1. Format Type descriptor bLength == 10: non-standard extension
329+
* with max sample rate in bytes 6..9.
330+
*
331+
* 2. bmControls VAL_ALT_SETTINGS readable bit: when set, the device
332+
* only supports the highest rate pair for that altsetting, and when
333+
* clear, all rates up to max_rate are valid.
334+
*
335+
* For devices without the bLength == 10 extension but with
336+
* VAL_ALT_SETTINGS readable and multiple altsettings (only seen in
337+
* Scarlett 18i8 3rd Gen playback), fall back to the Focusrite
338+
* convention: alt 1 = 48kHz, alt 2 = 96kHz, alt 3 = 192kHz.
311339
*/
312340
static bool focusrite_valid_sample_rate(struct snd_usb_audio *chip,
313341
struct audioformat *fp,
314342
unsigned int rate)
315343
{
344+
struct usb_interface *iface;
316345
struct usb_host_interface *alts;
346+
struct uac2_as_header_descriptor *as;
317347
unsigned char *fmt;
318348
unsigned int max_rate;
349+
bool val_alt;
319350

320351
alts = snd_usb_get_host_interface(chip, fp->iface, fp->altsetting);
321352
if (!alts)
@@ -326,9 +357,21 @@ static bool focusrite_valid_sample_rate(struct snd_usb_audio *chip,
326357
if (!fmt)
327358
return true;
328359

360+
as = snd_usb_find_csint_desc(alts->extra, alts->extralen,
361+
NULL, UAC_AS_GENERAL);
362+
if (!as)
363+
return true;
364+
365+
val_alt = uac_v2v3_control_is_readable(as->bmControls,
366+
UAC2_AS_VAL_ALT_SETTINGS);
367+
329368
if (fmt[0] == 10) { /* bLength */
330369
max_rate = combine_quad(&fmt[6]);
331370

371+
if (val_alt)
372+
return focusrite_rate_pair(rate, max_rate);
373+
374+
/* No val_alt: rates fall through from higher */
332375
switch (max_rate) {
333376
case 192000:
334377
if (rate == 176400 || rate == 192000)
@@ -344,12 +387,29 @@ static bool focusrite_valid_sample_rate(struct snd_usb_audio *chip,
344387
usb_audio_info(chip,
345388
"%u:%d : unexpected max rate: %u\n",
346389
fp->iface, fp->altsetting, max_rate);
347-
348390
return true;
349391
}
350392
}
351393

352-
return true;
394+
if (!val_alt)
395+
return true;
396+
397+
/* Multi-altsetting device with val_alt but no max_rate
398+
* in the format descriptor. Use Focusrite convention:
399+
* alt 1 = 48kHz, alt 2 = 96kHz, alt 3 = 192kHz.
400+
*/
401+
iface = usb_ifnum_to_if(chip->dev, fp->iface);
402+
if (!iface || iface->num_altsetting <= 2)
403+
return true;
404+
405+
switch (fp->altsetting) {
406+
case 1: max_rate = 48000; break;
407+
case 2: max_rate = 96000; break;
408+
case 3: max_rate = 192000; break;
409+
default: return true;
410+
}
411+
412+
return focusrite_rate_pair(rate, max_rate);
353413
}
354414

355415
/*

sound/usb/mixer_s1810c.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
* * e I guess the same as with mixer
7272
*
7373
*/
74-
/** struct s1810c_ctl_packet - basic vendor request
74+
/* struct s1810c_ctl_packet - basic vendor request
7575
* @selector: device/mixer/output
7676
* @b: request-dependant field b
7777
* @tag: fixed value identifying type of request
@@ -94,14 +94,14 @@ struct s1810c_ctl_packet {
9494
__le32 e;
9595
};
9696

97-
/** selectors for CMD request
97+
/* selectors for CMD request
9898
*/
9999
#define SC1810C_SEL_DEVICE 0
100100
#define SC1810C_SEL_MIXER 0x64
101101
#define SC1810C_SEL_OUTPUT 0x65
102102

103103

104-
/** control ids */
104+
/* control ids */
105105
#define SC1810C_CTL_LINE_SW 0
106106
#define SC1810C_CTL_MUTE_SW 1
107107
#define SC1824C_CTL_MONO_SW 2
@@ -127,7 +127,7 @@ struct s1810c_ctl_packet {
127127
#define SC1810C_GET_STATE_TAG SC1810C_SET_STATE_TAG
128128
#define SC1810C_GET_STATE_LEN SC1810C_SET_STATE_LEN
129129

130-
/** Mixer levels normally range from 0 (off) to 0x0100 0000 (0 dB).
130+
/* Mixer levels normally range from 0 (off) to 0x0100 0000 (0 dB).
131131
* raw_level = 2^24 * 10^(db_level / 20), thus
132132
* -3dB = 0xb53bf0 (technically, half-power -3.01...dB would be 0xb504f3)
133133
* -96dB = 0x109
@@ -145,7 +145,7 @@ struct s1810c_ctl_packet {
145145
#define MIXER_LEVEL_N3DB 0xb53bf0
146146
#define MIXER_LEVEL_0DB 0x1000000
147147

148-
/**
148+
/*
149149
* This packet includes mixer volumes and
150150
* various other fields, it's an extended
151151
* version of ctl_packet, with a and b
@@ -155,7 +155,7 @@ struct s1810c_state_packet {
155155
__le32 fields[63];
156156
};
157157

158-
/** indices into s1810c_state_packet.fields[]
158+
/* indices into s1810c_state_packet.fields[]
159159
*/
160160
#define SC1810C_STATE_TAG_IDX 2
161161
#define SC1810C_STATE_LEN_IDX 3

0 commit comments

Comments
 (0)