Merge tag 'v4.9.229' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux...
authorMauro (mdrjr) Ribeiro <mauro.ribeiro@hardkernel.com>
Tue, 14 Jul 2020 00:44:05 +0000 (21:44 -0300)
committerMauro (mdrjr) Ribeiro <mauro.ribeiro@hardkernel.com>
Tue, 14 Jul 2020 00:44:05 +0000 (21:44 -0300)
Linux 4.9.229

27 files changed:
1  2 
Makefile
drivers/acpi/sysfs.c
drivers/media/dvb-core/dvb_frontend.c
drivers/media/dvb-core/dvb_frontend.h
drivers/mtd/nand/nand_base.c
drivers/pci/pcie/aspm.c
drivers/scsi/mpt3sas/mpt3sas_base.c
drivers/usb/core/quirks.c
drivers/usb/gadget/composite.c
drivers/usb/host/xhci-plat.c
drivers/usb/host/xhci.c
drivers/usb/host/xhci.h
fs/block_dev.c
include/linux/mtd/nand.h
include/linux/usb/composite.h
include/net/sock.h
include/uapi/linux/dvb/frontend.h
kernel/sched/core.c
mm/slab_common.c
net/core/sock.c
net/ipv4/tcp_input.c
net/ipv6/ip6_gre.c
scripts/Kbuild.include
sound/usb/card.h
sound/usb/endpoint.c
sound/usb/pcm.c
sound/usb/quirks.c

diff --cc Makefile
Simple merge
Simple merge
@@@ -1519,13 -1504,6 +1524,12 @@@ static int dtv_property_process_get(str
        case DTV_STAT_TOTAL_BLOCK_COUNT:
                tvp->u.st = c->block_count;
                break;
-               r = 0;
-               //printk("dvb-core get sub sys\r\n");
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +      case DTV_DELIVERY_SUB_SYSTEM:
 +      case DTV_TS_INPUT:
++              printk("dvb-core get sub sys\r\n");
 +              break;
 +#endif
        default:
                dev_dbg(fe->dvb->device,
                        "%s: FE property %d doesn't exist\n",
@@@ -1810,40 -1787,35 +1820,40 @@@ static int dtv_property_process_set(str
                r = dtv_set_frontend(fe);
                break;
        case DTV_FREQUENCY:
-               c->frequency = tvp->u.data;
+               c->frequency = data;
                break;
        case DTV_MODULATION:
-               c->modulation = tvp->u.data;
+               c->modulation = data;
                break;
        case DTV_BANDWIDTH_HZ:
-               c->bandwidth_hz = tvp->u.data;
+               c->bandwidth_hz = data;
                break;
        case DTV_INVERSION:
-               c->inversion = tvp->u.data;
+               c->inversion = data;
                break;
        case DTV_SYMBOL_RATE:
-               c->symbol_rate = tvp->u.data;
+               c->symbol_rate = data;
                break;
        case DTV_INNER_FEC:
-               c->fec_inner = tvp->u.data;
+               c->fec_inner = data;
                break;
        case DTV_PILOT:
-               c->pilot = tvp->u.data;
+               c->pilot = data;
                break;
        case DTV_ROLLOFF:
-               c->rolloff = tvp->u.data;
+               c->rolloff = data;
                break;
        case DTV_DELIVERY_SYSTEM:
-               r = dvbv5_set_delivery_system(fe, tvp->u.data);
+               r = dvbv5_set_delivery_system(fe, data);
                break;
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +      case DTV_DELIVERY_SUB_SYSTEM:
 +              r = 0;
 +              break;
 +#endif
        case DTV_VOLTAGE:
-               c->voltage = tvp->u.data;
-               r = dvb_frontend_ioctl_legacy(file, FE_SET_VOLTAGE,
+               c->voltage = data;
+               r = dvb_frontend_handle_ioctl(file, FE_SET_VOLTAGE,
                        (void *)c->voltage);
                break;
        case DTV_TONE:
@@@ -2179,39 -2074,28 +2124,28 @@@ static int dvb_frontend_handle_compat_i
                 */
                if (fepriv->state != FESTATE_IDLE) {
                        err = dtv_get_frontend(fe, &getp, NULL);
-                       if (err < 0)
-                               goto out;
+                       if (err < 0) {
+                               kfree(tvp);
+                               return err;
+                       }
                }
                for (i = 0; i < tvps->num; i++) {
-                       err = dtv_property_process_get(fe, &getp, tvp + i, file);
-                       if (err < 0)
-                               goto out;
-                       (tvp + i)->result = err;
+                       err = dtv_property_process_get(
+                           fe, &getp, (struct dtv_property *)(tvp + i), file);
+                       if (err < 0) {
+                               kfree(tvp);
+                               return err;
+                       }
                }
  
-               if (convert) {
-                       for (i = 0; i < tvps->num; i++)
-                               dtv_property_64to32(tvp_32 + i,
-                                               (struct dtv_property *)(tvp+i));
-                       if (copy_to_user((void __user *)tvps->props, tvp_32,
-               tvps->num * sizeof(struct dtv_property_32))) {
-                               err = -EFAULT;
-                               goto out;
-                       }
-               } else {
-                       if (copy_to_user((void __user *)tvps->props, tvp,
-               tvps->num * sizeof(struct dtv_property))) {
-                               err = -EFAULT;
-                               goto out;
-                       }
 -              if (copy_to_user((void __user *)compat_ptr(tvps->props), tvp,
++  if(copy_to_user((void __user *)compat_ptr(tvps->props), tvp,
+                                tvps->num * sizeof(struct compat_dtv_property))) {
+                       kfree(tvp);
+                       return -EFAULT;
                }
-       } else
-               err = -EOPNOTSUPP;
+               kfree(tvp);
+       }
  
- out:
-       kfree(tvp_32);
-       kfree(tvp);
        return err;
  }
  
@@@ -2787,25 -2788,12 +2840,13 @@@ static int dvb_frontend_release(struct 
        return ret;
  }
  
- #ifdef CONFIG_AMLOGIC_DVB_COMPAT
- static long dvb_frontend_compat_ioctl(struct file *filp,
-                       unsigned int cmd, unsigned long args)
- {
-       long ret;
- #ifdef CONFIG_COMPAT
-       args  = (unsigned long)compat_ptr(args);
- #endif
-       ret = dvb_generic_ioctl(filp, cmd, args);
-       return ret;
- }
- #endif
 +
  static const struct file_operations dvb_frontend_fops = {
        .owner          = THIS_MODULE,
-       .unlocked_ioctl = dvb_generic_ioctl,
+       .unlocked_ioctl = dvb_frontend_ioctl,
+ #ifdef CONFIG_COMPAT
+       .compat_ioctl   = dvb_frontend_compat_ioctl,
+ #endif
        .poll           = dvb_frontend_poll,
        .open           = dvb_frontend_open,
        .release        = dvb_frontend_release,
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc fs/block_dev.c
Simple merge
Simple merge
Simple merge
Simple merge
  #define _DVBFRONTEND_H_
  
  #include <linux/types.h>
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +#include <linux/videodev2.h>
 +#endif
 +
 +enum fe_type {
 +      FE_QPSK,
 +      FE_QAM,
 +      FE_OFDM,
 +      FE_ATSC,
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +      FE_ANALOG,
 +      FE_DTMB,
 +      FE_ISDBT
 +#endif
 +};
  
+ /**
+  * enum fe_caps - Frontend capabilities
+  *
+  * @FE_IS_STUPID:                     There's something wrong at the
+  *                                    frontend, and it can't report its
+  *                                    capabilities.
+  * @FE_CAN_INVERSION_AUTO:            Can auto-detect frequency spectral
+  *                                    band inversion
+  * @FE_CAN_FEC_1_2:                   Supports FEC 1/2
+  * @FE_CAN_FEC_2_3:                   Supports FEC 2/3
+  * @FE_CAN_FEC_3_4:                   Supports FEC 3/4
+  * @FE_CAN_FEC_4_5:                   Supports FEC 4/5
+  * @FE_CAN_FEC_5_6:                   Supports FEC 5/6
+  * @FE_CAN_FEC_6_7:                   Supports FEC 6/7
+  * @FE_CAN_FEC_7_8:                   Supports FEC 7/8
+  * @FE_CAN_FEC_8_9:                   Supports FEC 8/9
+  * @FE_CAN_FEC_AUTO:                  Can auto-detect FEC
+  * @FE_CAN_QPSK:                      Supports QPSK modulation
+  * @FE_CAN_QAM_16:                    Supports 16-QAM modulation
+  * @FE_CAN_QAM_32:                    Supports 32-QAM modulation
+  * @FE_CAN_QAM_64:                    Supports 64-QAM modulation
+  * @FE_CAN_QAM_128:                   Supports 128-QAM modulation
+  * @FE_CAN_QAM_256:                   Supports 256-QAM modulation
+  * @FE_CAN_QAM_AUTO:                  Can auto-detect QAM modulation
+  * @FE_CAN_TRANSMISSION_MODE_AUTO:    Can auto-detect transmission mode
+  * @FE_CAN_BANDWIDTH_AUTO:            Can auto-detect bandwidth
+  * @FE_CAN_GUARD_INTERVAL_AUTO:               Can auto-detect guard interval
+  * @FE_CAN_HIERARCHY_AUTO:            Can auto-detect hierarchy
+  * @FE_CAN_8VSB:                      Supports 8-VSB modulation
+  * @FE_CAN_16VSB:                     Supporta 16-VSB modulation
+  * @FE_HAS_EXTENDED_CAPS:             Unused
+  * @FE_CAN_MULTISTREAM:                       Supports multistream filtering
+  * @FE_CAN_TURBO_FEC:                 Supports "turbo FEC" modulation
+  * @FE_CAN_2G_MODULATION:             Supports "2nd generation" modulation,
+  *                                    e. g. DVB-S2, DVB-T2, DVB-C2
+  * @FE_NEEDS_BENDING:                 Unused
+  * @FE_CAN_RECOVER:                   Can recover from a cable unplug
+  *                                    automatically
+  * @FE_CAN_MUTE_TS:                   Can stop spurious TS data output
+  */
  enum fe_caps {
        FE_IS_STUPID                    = 0,
 -      FE_CAN_INVERSION_AUTO           = 0x1,
 +      FE_CAN_INVERSION_AUTO   = 0x1,
        FE_CAN_FEC_1_2                  = 0x2,
        FE_CAN_FEC_2_3                  = 0x4,
        FE_CAN_FEC_3_4                  = 0x8,
        FE_CAN_HIERARCHY_AUTO           = 0x100000,
        FE_CAN_8VSB                     = 0x200000,
        FE_CAN_16VSB                    = 0x400000,
- /* We need more bitspace for newer APIs, indicate this. */
-       FE_HAS_EXTENDED_CAPS            = 0x800000,
-       FE_CAN_MULTISTREAM              = 0x4000000,  /* frontend supports multistream filtering */
-       FE_CAN_TURBO_FEC                = 0x8000000,  /* frontend supports "turbo fec modulation" */
- /* frontend supports "2nd generation modulation" (DVB-S2) */
-       FE_CAN_2G_MODULATION            = 0x10000000,
-       FE_NEEDS_BENDING                = 0x20000000, /* not supported anymore, don't use (frontend requires frequency bending) */
-       FE_CAN_RECOVER                  = 0x40000000, /* frontend can recover from a cable unplug automatically */
-       FE_CAN_MUTE_TS                  = 0x80000000  /* frontend can stop spurious TS data output */
+       FE_HAS_EXTENDED_CAPS            = 0x800000,
+       FE_CAN_MULTISTREAM              = 0x4000000,
+       FE_CAN_TURBO_FEC                = 0x8000000,
+       FE_CAN_2G_MODULATION            = 0x10000000,
+       FE_NEEDS_BENDING                = 0x20000000,
+       FE_CAN_RECOVER                  = 0x40000000,
+       FE_CAN_MUTE_TS                  = 0x80000000
  };
- #ifdef CONFIG_AMLOGIC_DVB_COMPAT
- #define FE_CAN_3_LAYER FE_CAN_MULTISTREAM
- #endif
 -/*
 - * DEPRECATED: Should be kept just due to backward compatibility.
 - */
 -enum fe_type {
 -      FE_QPSK,
 -      FE_QAM,
 -      FE_OFDM,
 -      FE_ATSC
 -};
 -
+ /**
+  * struct dvb_frontend_info - Frontend properties and capabilities
+  *
+  * @name:                     Name of the frontend
+  * @type:                     **DEPRECATED**.
+  *                            Should not be used on modern programs,
+  *                            as a frontend may have more than one type.
+  *                            In order to get the support types of a given
+  *                            frontend, use :c:type:`DTV_ENUM_DELSYS`
+  *                            instead.
+  * @frequency_min:            Minimal frequency supported by the frontend.
+  * @frequency_max:            Minimal frequency supported by the frontend.
+  * @frequency_stepsize:               All frequencies are multiple of this value.
+  * @frequency_tolerance:      Frequency tolerance.
+  * @symbol_rate_min:          Minimal symbol rate, in bauds
+  *                            (for Cable/Satellite systems).
+  * @symbol_rate_max:          Maximal symbol rate, in bauds
+  *                            (for Cable/Satellite systems).
+  * @symbol_rate_tolerance:    Maximal symbol rate tolerance, in ppm
+  *                            (for Cable/Satellite systems).
+  * @notifier_delay:           **DEPRECATED**. Not used by any driver.
+  * @caps:                     Capabilities supported by the frontend,
+  *                            as specified in &enum fe_caps.
+  *
+  * .. note:
+  *
+  *    #. The frequencies are specified in Hz for Terrestrial and Cable
+  *       systems.
+  *    #. The frequencies are specified in kHz for Satellite systems.
+  */
  struct dvb_frontend_info {
        char       name[128];
        enum fe_type type;      /* DEPRECATED. Use DTV_ENUM_DELSYS instead */
@@@ -114,12 -207,15 +212,18 @@@ struct dvb_diseqc_slave_reply 
  enum fe_sec_voltage {
        SEC_VOLTAGE_13,
        SEC_VOLTAGE_18,
 -      SEC_VOLTAGE_OFF
 +      SEC_VOLTAGE_OFF,
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +      SEC_VOLTAGE_ON     /*for ISDBT antenna control*/
 +#endif
  };
  
+ /**
+  * enum fe_sec_tone_mode - Type of tone to be send to the LNBf.
+  * @SEC_TONE_ON:      Sends a 22kHz tone burst to the antenna.
+  * @SEC_TONE_OFF:     Don't send a 22kHz tone to the antenna (except
+  *                    if the ``FE_DISEQC_*`` ioctls are called).
+  */
  enum fe_sec_tone_mode {
        SEC_TONE_ON,
        SEC_TONE_OFF
@@@ -232,26 -454,8 +462,28 @@@ enum fe_interleaving 
        INTERLEAVING_720,
  };
  
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +struct fe_blind_scan_parameters {
 +      /* minimum tuner frequency in kHz */
 +      __u32 min_frequency;
 +      /* maximum tuner frequency in kHz */
 +      __u32 max_frequency;
 +      /* minimum symbol rate in sym/sec */
 +      __u32 min_symbol_rate;
 +      /* maximum symbol rate in sym/sec */
 +      __u32 max_symbol_rate;
 +      /* search range in kHz. freq -/+freqRange will be searched */
 +      __u32 frequency_range;
 +      /* tuner step frequency in kHz */
 +      __u32 frequency_step;
 +      /* blindscan event timeout */
 +      __s32 timeout;
 +};
 +#endif
 +
 +/* S2API Commands */
+ /* DVBv5 property Commands */
  #define DTV_UNDEFINED         0
  #define DTV_TUNE              1
  #define DTV_CLEAR             2
  #define DTV_STAT_ERROR_BLOCK_COUNT    68
  #define DTV_STAT_TOTAL_BLOCK_COUNT    69
  
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +
 +/* Get tne TS input of the frontend */
 +#define DTV_TS_INPUT                    70
 +/* Blind scan */
 +#define DTV_START_BLIND_SCAN            71
 +#define DTV_CANCEL_BLIND_SCAN           72
 +#define DTV_BLIND_SCAN_MIN_FRE          73
 +#define DTV_BLIND_SCAN_MAX_FRE          74
 +#define DTV_BLIND_SCAN_MIN_SRATE        75
 +#define DTV_BLIND_SCAN_MAX_SRATE        76
 +#define DTV_BLIND_SCAN_FRE_RANGE        77
 +#define DTV_BLIND_SCAN_FRE_STEP         78
 +#define DTV_BLIND_SCAN_TIMEOUT          79
 +/* Blind scan end*/
 +#define DTV_DELIVERY_SUB_SYSTEM                       80
 +#define DTV_MAX_COMMAND               DTV_DELIVERY_SUB_SYSTEM
 +
 +#else  /*!defined(CONFIG_AMLOGIC_DVB_COMPAT)*/
 +
  #define DTV_MAX_COMMAND               DTV_STAT_TOTAL_BLOCK_COUNT
  
 +#endif /*CONFIG_AMLOGIC_DVB_COMPAT*/
 +
 +
+ /**
+  * enum fe_pilot - Type of pilot tone
+  *
+  * @PILOT_ON: Pilot tones enabled
+  * @PILOT_OFF:        Pilot tones disabled
+  * @PILOT_AUTO:       Autodetect pilot tones
+  */
  enum fe_pilot {
        PILOT_ON,
        PILOT_OFF,
@@@ -402,17 -641,27 +694,30 @@@ enum fe_delivery_system 
        SYS_DVBT2,
        SYS_TURBO,
        SYS_DVBC_ANNEX_C,
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +      SYS_ANALOG
 +#endif
  };
  
- /* backward compatibility */
+ /* backward compatibility definitions for delivery systems */
  #define SYS_DVBC_ANNEX_AC     SYS_DVBC_ANNEX_A
- #define SYS_DMBTH SYS_DTMB /* DMB-TH is legacy name, use DTMB instead */
+ #define SYS_DMBTH             SYS_DTMB /* DMB-TH is legacy name, use DTMB */
  
- /* ATSC-MH */
+ /* ATSC-MH specific parameters */
  
+ /**
+  * enum atscmh_sccc_block_mode - Type of Series Concatenated Convolutional
+  *                             Code Block Mode.
+  *
+  * @ATSCMH_SCCC_BLK_SEP:
+  *    Separate SCCC: the SCCC outer code mode shall be set independently
+  *    for each Group Region (A, B, C, D)
+  * @ATSCMH_SCCC_BLK_COMB:
+  *    Combined SCCC: all four Regions shall have the same SCCC outer
+  *    code mode.
+  * @ATSCMH_SCCC_BLK_RES:
+  *    Reserved. Shouldn't be used.
+  */
  enum atscmh_sccc_block_mode {
        ATSCMH_SCCC_BLK_SEP      = 0,
        ATSCMH_SCCC_BLK_COMB     = 1,
@@@ -579,15 -871,41 +959,50 @@@ struct dtv_properties 
        struct dtv_property *props;
  };
  
 +struct dtv_properties_32 {
 +      __u32 num;
 +      __u32 props;
 +};
 +
 +struct dtv_properties_64 {
 +      __u32 num;
 +      __u64 props;
 +};
+ /*
+  * When set, this flag will disable any zigzagging or other "normal" tuning
+  * behavior. Additionally, there will be no automatic monitoring of the lock
+  * status, and hence no frontend events will be generated. If a frontend device
+  * is closed, this flag will be automatically turned off when the device is
+  * reopened read-write.
+  */
+ #define FE_TUNE_MODE_ONESHOT 0x01
+ /* Digital TV Frontend API calls */
+ #define FE_GET_INFO              _IOR('o', 61, struct dvb_frontend_info)
+ #define FE_DISEQC_RESET_OVERLOAD   _IO('o', 62)
+ #define FE_DISEQC_SEND_MASTER_CMD  _IOW('o', 63, struct dvb_diseqc_master_cmd)
+ #define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply)
+ #define FE_DISEQC_SEND_BURST       _IO('o', 65)  /* fe_sec_mini_cmd_t */
+ #define FE_SET_TONE              _IO('o', 66)  /* fe_sec_tone_mode_t */
+ #define FE_SET_VOLTAGE                   _IO('o', 67)  /* fe_sec_voltage_t */
+ #define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68)  /* int */
+ #define FE_READ_STATUS                   _IOR('o', 69, fe_status_t)
+ #define FE_READ_BER              _IOR('o', 70, __u32)
+ #define FE_READ_SIGNAL_STRENGTH    _IOR('o', 71, __u16)
+ #define FE_READ_SNR              _IOR('o', 72, __u16)
+ #define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32)
+ #define FE_SET_FRONTEND_TUNE_MODE  _IO('o', 81) /* unsigned int */
+ #define FE_GET_EVENT             _IOR('o', 78, struct dvb_frontend_event)
+ #define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */
+ #define FE_SET_PROPERTY                  _IOW('o', 82, struct dtv_properties)
+ #define FE_GET_PROPERTY                  _IOR('o', 83, struct dtv_properties)
  
  #if defined(__DVB_CORE__) || !defined (__KERNEL__)
  
@@@ -625,12 -954,7 +1051,13 @@@ typedef enum fe_pilot fe_pilot_t
  typedef enum fe_rolloff fe_rolloff_t;
  typedef enum fe_delivery_system fe_delivery_system_t;
  
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +enum fe_ofdm_mode {
 +      OFDM_DVBT,
 +      OFDM_DVBT2,
 +};
 +#endif
+ /* DVBv3 structs */
  
  struct dvb_qpsk_parameters {
        __u32           symbol_rate;  /* symbol rate in Symbols per second */
@@@ -717,169 -997,12 +1144,167 @@@ struct dvb_frontend_event 
        fe_status_t status;
        struct dvb_frontend_parameters parameters;
  };
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +/* Satellite blind scan event */
 +struct dvbsx_blindscanevent {
 +      enum fe_status status;
 +      union {
 +              /* The percentage completion of the*/
 +              /*blind scan procedure. A value of*/
 +              /*100 indicates that the blind scan*/
 +              /*is finished. */
 +              __u16 m_uiprogress;
 +              /*The start scan frequency in units of kHz.*/
 +              /*The minimum value depends on the tuner*/
 +              /*specification.*/
 +              __u32 m_uistartfreq_khz;
 +              /* Blind scan channel info. */
 +              struct dvb_frontend_parameters parameters;
 +      } u;
 +};
 +#endif /*CONFIG_AMLOGIC_DVB_COMPAT*/
 +#endif
 +
 +#define FE_SET_PROPERTY                  _IOW('o', 82, struct dtv_properties)
 +#define FE_GET_PROPERTY                  _IOR('o', 83, struct dtv_properties)
 +
 +#define FE_SET_PROPERTY_32     _IOW('o', 82, struct dtv_properties_32)
 +#define FE_GET_PROPERTY_32     _IOR('o', 83, struct dtv_properties_32)
 +
 +#define FE_SET_PROPERTY_64     _IOW('o', 82, struct dtv_properties_64)
 +#define FE_GET_PROPERTY_64     _IOR('o', 83, struct dtv_properties_64)
 +
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +/*for atv*/
 +struct tuner_status_s {
 +      unsigned int frequency;
 +      unsigned int rssi;
 +      unsigned char mode;/*dtv:0 or atv:1*/
 +      unsigned char tuner_locked;/*notlocked:0,locked:1*/
 +      union {
 +              void *ressrved;
 +              __u64 reserved1;
 +      };
 +};
 +
 +
 +struct atv_status_s {
 +      unsigned char atv_lock;/*notlocked:0,locked 1*/
 +      v4l2_std_id       std;
 +      unsigned int  audmode;
 +      int  snr;
 +      int  afc;
 +      union {
 +              void *resrvred;
 +              __u64 reserved1;
 +      };
 +};
 +
 +struct sound_status_s {
 +      unsigned short sound_sys;/*A2DK/A2BG/NICAM BG/NICAM DK/BTSC/EIAJ*/
 +      unsigned short sound_mode;/*SETERO/DUAL/MONO/SAP*/
 +      union {
 +              void *resrvred;
 +              __u64 reserved1;
 +      };
 +};
 +
 +
 +enum tuner_param_cmd_e {
 +      TUNER_CMD_AUDIO_MUTE = 0x0000,
 +      TUNER_CMD_AUDIO_ON,
 +      TUNER_CMD_TUNER_POWER_ON,
 +      TUNER_CMD_TUNER_POWER_DOWN,
 +      TUNER_CMD_SET_VOLUME,
 +      TUNER_CMD_SET_LEAP_SETP_SIZE,
 +      TUNER_CMD_GET_MONO_MODE,
 +      TUNER_CMD_SET_BEST_LOCK_RANGE,
 +      TUNER_CMD_GET_BEST_LOCK_RANGE,
 +      TUNER_CMD_SET_CVBS_AMP_OUT,
 +      TUNER_CMD_GET_CVBS_AMP_OUT,
 +      TUNER_CMD_NULL,
 +};
 +
 +
 +/*parameter for set param box*/
 +struct tuner_param_s {
 +      enum tuner_param_cmd_e cmd;
 +      unsigned int      parm;
 +      unsigned int    resvred;
 +};
 +
 +
 +enum fe_layer {
 +      Layer_A_B_C,
 +      Layer_A,
 +      Layer_B,
 +      Layer_C,
 +};
 +
 +// typedef struct dvb_analog_parameters dvb_analog_parameters_t;
 +// typedef struct tuner_status_s tuner_status_t;
 +// typedef struct atv_status_s atv_status_t;
 +// typedef struct sound_status_s sound_status_t;
 +// typedef enum tuner_param_cmd_e tuner_param_cmd_t;
 +// typedef struct tuner_param_s tuner_param_t;
 +// typedef enum fe_layer fe_layer_t;
 +// typedef enum fe_ofdm_mode fe_ofdm_mode_t;
 +
 +
 +/* Satellite blind scan settings */
 +struct dvbsx_blindscanpara {
 +      __u32 minfrequency;/* minimum tuner frequency in kHz */
 +      __u32 maxfrequency;/* maximum tuner frequency in kHz */
 +      __u32 minSymbolRate;/* minimum symbol rate in sym/sec */
 +      __u32 maxSymbolRate;/* maximum symbol rate in sym/sec */
 +      /*search range in kHz. freq -/+freqRange will be searched */
 +      __u32 frequencyRange;
 +      __u32 frequencyStep;/* tuner step frequency in kHz */
 +      __s32 timeout;/* blindscan event timeout*/
 +};
 +#endif /*CONFIG_AMLOGIC_DVB_COMPAT*/
 +/**
 + * When set, this flag will disable any zigzagging or other "normal" tuning
 + * behaviour. Additionally, there will be no automatic monitoring of the lock
 + * status, and hence no frontend events will be generated. If a frontend device
 + * is closed, this flag will be automatically turned off when the device is
 + * reopened read-write.
 + */
 +#define FE_TUNE_MODE_ONESHOT 0x01
 +
 +#define FE_GET_INFO              _IOR('o', 61, struct dvb_frontend_info)
 +
 +#define FE_DISEQC_RESET_OVERLOAD   _IO('o', 62)
 +#define FE_DISEQC_SEND_MASTER_CMD  _IOW('o', 63, struct dvb_diseqc_master_cmd)
 +#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply)
 +#define FE_DISEQC_SEND_BURST       _IO('o', 65)  /* fe_sec_mini_cmd_t */
 +
 +#define FE_SET_TONE              _IO('o', 66)  /* fe_sec_tone_mode_t */
 +#define FE_SET_VOLTAGE                   _IO('o', 67)  /* fe_sec_voltage_t */
 +#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68)  /* int */
 +
 +#define FE_READ_STATUS                   _IOR('o', 69, fe_status_t)
 +#define FE_READ_BER              _IOR('o', 70, __u32)
 +#define FE_READ_SIGNAL_STRENGTH    _IOR('o', 71, __u16)
 +#define FE_READ_SNR              _IOR('o', 72, __u16)
 +#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, __u32)
  
+ /* DVBv3 API calls */
  #define FE_SET_FRONTEND                  _IOW('o', 76, struct dvb_frontend_parameters)
  #define FE_GET_FRONTEND                  _IOR('o', 77, struct dvb_frontend_parameters)
- #define FE_SET_FRONTEND_TUNE_MODE  _IO('o', 81) /* unsigned int */
- #define FE_GET_EVENT             _IOR('o', 78, struct dvb_frontend_event)
- #define FE_DISHNETWORK_SEND_LEGACY_CMD _IO('o', 80) /* unsigned int */
  
 -#endif
 +#ifdef CONFIG_AMLOGIC_DVB_COMPAT
 +/*need del this ioctl, used set PROPERTY instead*/
 +#define FE_SET_DELAY               _IO('o', 100)
 +#define FE_READ_AFC                _IOR('o', 91, __u32)
 +#define FE_FINE_TUNE               _IOW('o', 92, __u32)
 +#define FE_READ_TUNER_STATUS       _IOR('o', 93, struct tuner_status_s)
 +#define FE_READ_ANALOG_STATUS      _IOR('o', 94, struct atv_status_s)
 +#define FE_READ_SD_STATUS          _IOR('o', 95, struct sound_status_s)
 +/*set & get the tuner parameters only atv*/
 +#define FE_SET_PARAM_BOX           _IOWR('o', 97, struct tuner_param_s)
 +#define FE_SET_AFC                 _IOW('o', 98, __u32)
 +#endif /*CONFIG_AMLOGIC_DVB_COMPAT*/
  
  #endif /*_DVBFRONTEND_H_*/
Simple merge
Simple merge
diff --cc net/core/sock.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc sound/usb/pcm.c
Simple merge
Simple merge