0
  #   ˆÁÆƒkÀa–Ým_J*j"Tâ€vàš¸Å£Ä 
    /* SPDX-License-Identifier: GPL-2.0-only */
/*
 * linux/sound/rt5682s.h -- Platform data for RT5682I-VS
 *
 * Copyright 2021 Realtek Microelectronics
 */

#ifndef __LINUX_SND_RT5682S_H
#define __LINUX_SND_RT5682S_H

enum rt5682s_dmic1_data_pin {
	RT5682S_DMIC1_DATA_NULL,
	RT5682S_DMIC1_DATA_GPIO2,
	RT5682S_DMIC1_DATA_GPIO5,
};

enum rt5682s_dmic1_clk_pin {
	RT5682S_DMIC1_CLK_NULL,
	RT5682S_DMIC1_CLK_GPIO1,
	RT5682S_DMIC1_CLK_GPIO3,
};

enum rt5682s_jd_src {
	RT5682S_JD_NULL,
	RT5682S_JD1,
};

enum rt5682s_dai_clks {
	RT5682S_DAI_WCLK_IDX,
	RT5682S_DAI_BCLK_IDX,
	RT5682S_DAI_NUM_CLKS,
};

enum {
	RT5682S_LDO_1_607V,
	RT5682S_LDO_1_5V,
	RT5682S_LDO_1_406V,
	RT5682S_LDO_1_731V,
};

struct rt5682s_platform_data {
	enum rt5682s_dmic1_data_pin dmic1_data_pin;
	enum rt5682s_dmic1_clk_pin dmic1_clk_pin;
	enum rt5682s_jd_src jd_src;
	unsigned int dmic_clk_rate;
	unsigned int dmic_delay;
	unsigned int amic_delay;
	unsigned int ldo_dacref;
	bool dmic_clk_driving_high;

	const char *dai_clk_names[RT5682S_DAI_NUM_CLKS];
};

#endif
  /   ˆl–Ðz¾”Je¶¥ ² ƒpÜTÅ£ÈƒŽ9_‹uÐb&=LV[(ÀÆ ‚    package DBI::Util::_accessor;
use strict;
use Carp;
our $VERSION = "0.009479";

# inspired by Class::Accessor::Fast

sub new {
    my($proto, $fields) = @_;
    my($class) = ref $proto || $proto;
    $fields ||= {};

    my @dubious = grep { !m/^_/ && !$proto->can($_) } keys %$fields;
    carp "$class doesn't have accessors for fields: @dubious" if @dubious;

    # make a (shallow) copy of $fields.
    bless {%$fields}, $class;
}

sub mk_accessors {
    my($self, @fields) = @_;
    $self->mk_accessors_using('make_accessor', @fields);
}

sub mk_accessors_using {
    my($self, $maker, @fields) = @_;
    my $class = ref $self || $self;

    # So we don't have to do lots of lookups inside the loop.
    $maker = $self->can($maker) unless ref $maker;

    no strict 'refs';
    foreach my $field (@fields) {
        my $accessor = $self->$maker($field);
        *{$class."\:\:$field"} = $accessor
            unless defined &{$class."\:\:$field"};
    }
    #my $hash_ref = \%{$class."\:\:_accessors_hash};
    #$hash_ref->{$_}++ for @fields;
    # XXX also copy down _accessors_hash of base class(es)
    # so one in this class is complete
    return;
}

sub make_accessor {
    my($class, $field) = @_;
    return sub {
        my $self = shift;
        return $self->{$field} unless @_;
        croak "Too many arguments to $field" if @_ > 1;
        return $self->{$field} = shift;
    };
}

sub make_accessor_autoviv_hashref {
    my($class, $field) = @_;
    return sub {
        my $self = shift;
        return $self->{$field} ||= {} unless @_;
        croak "Too many arguments to $field" if @_ > 1;
        return $self->{$field} = shift;
    };
}

1;
     ˆÄÉ„|?ÃÀÆ (û    /* SPDX-License-Identifier: GPL-2.0+ */
/*
 * MACsec netdev header, used for h/w accelerated implementations.
 *
 * Copyright (c) 2015 Sabrina Dubroca <sd@queasysnail.net>
 */
#ifndef _NET_MACSEC_H_
#define _NET_MACSEC_H_

#include <linux/u64_stats_sync.h>
#include <linux/if_vlan.h>
#include <uapi/linux/if_link.h>
#include <uapi/linux/if_macsec.h>

#include <linux/rh_kabi.h>

#define MACSEC_DEFAULT_PN_LEN 4
#define MACSEC_XPN_PN_LEN 8

#define MACSEC_NUM_AN 4 /* 2 bits for the association number */

#define MACSEC_SCI_LEN 8
#define MACSEC_PORT_ES (htons(0x0001))

#define MACSEC_TCI_VERSION 0x80
#define MACSEC_TCI_ES      0x40 /* end station */
#define MACSEC_TCI_SC      0x20 /* SCI present */
#define MACSEC_TCI_SCB     0x10 /* epon */
#define MACSEC_TCI_E       0x08 /* encryption */
#define MACSEC_TCI_C       0x04 /* changed text */
#define MACSEC_AN_MASK     0x03 /* association number */
#define MACSEC_TCI_CONFID  (MACSEC_TCI_E | MACSEC_TCI_C)

#define MACSEC_DEFAULT_ICV_LEN 16

typedef u64 __bitwise sci_t;
typedef u32 __bitwise ssci_t;

struct metadata_dst;

typedef union salt {
	struct {
		u32 ssci;
		u64 pn;
	} __packed;
	u8 bytes[MACSEC_SALT_LEN];
} __packed salt_t;

typedef union pn {
	struct {
#if defined(__LITTLE_ENDI