Merge tag 'char-misc-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregk...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 24 Feb 2021 18:25:37 +0000 (10:25 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 24 Feb 2021 18:25:37 +0000 (10:25 -0800)
Pull char/misc driver updates from Greg KH:
 "Here is the large set of char/misc/whatever driver subsystem updates
  for 5.12-rc1. Over time it seems like this tree is collecting more and
  more tiny driver subsystems in one place, making it easier for those
  maintainers, which is why this is getting larger.

  Included in here are:

   - coresight driver updates

   - habannalabs driver updates

   - virtual acrn driver addition (proper acks from the x86 maintainers)

   - broadcom misc driver addition

   - speakup driver updates

   - soundwire driver updates

   - fpga driver updates

   - amba driver updates

   - mei driver updates

   - vfio driver updates

   - greybus driver updates

   - nvmeem driver updates

   - phy driver updates

   - mhi driver updates

   - interconnect driver udpates

   - fsl-mc bus driver updates

   - random driver fix

   - some small misc driver updates (rtsx, pvpanic, etc.)

  All of these have been in linux-next for a while, with the only
  reported issue being a merge conflict due to the dfl_device_id
  addition from the fpga subsystem in here"

* tag 'char-misc-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (311 commits)
  spmi: spmi-pmic-arb: Fix hw_irq overflow
  Documentation: coresight: Add PID tracing description
  coresight: etm-perf: Support PID tracing for kernel at EL2
  coresight: etm-perf: Clarify comment on perf options
  ACRN: update MAINTAINERS: mailing list is subscribers-only
  regmap: sdw-mbq: use MODULE_LICENSE("GPL")
  regmap: sdw: use no_pm routines for SoundWire 1.2 MBQ
  regmap: sdw: use _no_pm functions in regmap_read/write
  soundwire: intel: fix possible crash when no device is detected
  MAINTAINERS: replace my with email with replacements
  mhi: Fix double dma free
  uapi: map_to_7segment: Update example in documentation
  uio: uio_pci_generic: don't fail probe if pdev->irq equals to IRQ_NOTCONNECTED
  drivers/misc/vmw_vmci: restrict too big queue size in qp_host_alloc_queue
  firewire: replace tricky statement by two simple ones
  vme: make remove callback return void
  firmware: google: make coreboot driver's remove callback return void
  firmware: xilinx: Use explicit values for all enum values
  sample/acrn: Introduce a sample of HSM ioctl interface usage
  virt: acrn: Introduce an interface for Service VM to control vCPU
  ...

17 files changed:
1  2 
Documentation/devicetree/bindings/interconnect/qcom,rpmh.yaml
Documentation/driver-api/index.rst
Documentation/userspace-api/ioctl/ioctl-number.rst
MAINTAINERS
arch/arm64/include/asm/sysreg.h
drivers/accessibility/speakup/spk_ttyio.c
drivers/bus/fsl-mc/fsl-mc-bus.c
drivers/char/random.c
drivers/memory/Kconfig
drivers/misc/habanalabs/common/habanalabs.h
drivers/misc/habanalabs/common/memory.c
drivers/misc/mei/hdcp/mei_hdcp.c
drivers/of/platform.c
drivers/watchdog/mei_wdt.c
include/linux/mod_devicetable.h
scripts/mod/devicetable-offsets.c
scripts/mod/file2alias.c

Simple merge
diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 935060955152ba729a4788f8ae95f67b5f07b991,b8dae34eca101ebdd6fdd61587595afdbe166e91..7d45b5f989b076a653f010497780c97869e285bc
@@@ -846,22 -846,28 +846,46 @@@ struct auxiliary_device_id 
        kernel_ulong_t driver_data;
  };
  
 +/* Surface System Aggregator Module */
 +
 +#define SSAM_MATCH_TARGET     0x1
 +#define SSAM_MATCH_INSTANCE   0x2
 +#define SSAM_MATCH_FUNCTION   0x4
 +
 +struct ssam_device_id {
 +      __u8 match_flags;
 +
 +      __u8 domain;
 +      __u8 category;
 +      __u8 target;
 +      __u8 instance;
 +      __u8 function;
 +
 +      kernel_ulong_t driver_data;
 +};
 +
+ /*
+  * DFL (Device Feature List)
+  *
+  * DFL defines a linked list of feature headers within the device MMIO space to
+  * provide an extensible way of adding features. Software can walk through these
+  * predefined data structures to enumerate features. It is now used in the FPGA.
+  * See Documentation/fpga/dfl.rst for more information.
+  *
+  * The dfl bus type is introduced to match the individual feature devices (dfl
+  * devices) for specific dfl drivers.
+  */
+ /**
+  * struct dfl_device_id -  dfl device identifier
+  * @type: DFL FIU type of the device. See enum dfl_id_type.
+  * @feature_id: feature identifier local to its DFL FIU type.
+  * @driver_data: driver specific data.
+  */
+ struct dfl_device_id {
+       __u16 type;
+       __u16 feature_id;
+       kernel_ulong_t driver_data;
+ };
  #endif /* LINUX_MOD_DEVICETABLE_H */
index f078eeb0a9616d1e9e3d7213a84a600f1d59a022,1b14f3cde4e5934ca7b598aaa410783264945040..9bb6c7edccc4494e689b6f0dfc46f49662e7379e
@@@ -246,13 -246,9 +246,17 @@@ int main(void
        DEVID(auxiliary_device_id);
        DEVID_FIELD(auxiliary_device_id, name);
  
 +      DEVID(ssam_device_id);
 +      DEVID_FIELD(ssam_device_id, match_flags);
 +      DEVID_FIELD(ssam_device_id, domain);
 +      DEVID_FIELD(ssam_device_id, category);
 +      DEVID_FIELD(ssam_device_id, target);
 +      DEVID_FIELD(ssam_device_id, instance);
 +      DEVID_FIELD(ssam_device_id, function);
 +
+       DEVID(dfl_device_id);
+       DEVID_FIELD(dfl_device_id, type);
+       DEVID_FIELD(dfl_device_id, feature_id);
        return 0;
  }
index d21d2871387bd1c272a0a50e241f8b975811fde6,7ebabeb1e9c905e3d7410e1361b6f98c557cac26..7c97fa8e36bcd3b95ed942ee443c55db1b3d2085
@@@ -1375,28 -1375,18 +1375,40 @@@ static int do_auxiliary_entry(const cha
        return 1;
  }
  
 +/*
 + * Looks like: ssam:dNcNtNiNfN
 + *
 + * N is exactly 2 digits, where each is an upper-case hex digit.
 + */
 +static int do_ssam_entry(const char *filename, void *symval, char *alias)
 +{
 +      DEF_FIELD(symval, ssam_device_id, match_flags);
 +      DEF_FIELD(symval, ssam_device_id, domain);
 +      DEF_FIELD(symval, ssam_device_id, category);
 +      DEF_FIELD(symval, ssam_device_id, target);
 +      DEF_FIELD(symval, ssam_device_id, instance);
 +      DEF_FIELD(symval, ssam_device_id, function);
 +
 +      sprintf(alias, "ssam:d%02Xc%02X", domain, category);
 +      ADD(alias, "t", match_flags & SSAM_MATCH_TARGET, target);
 +      ADD(alias, "i", match_flags & SSAM_MATCH_INSTANCE, instance);
 +      ADD(alias, "f", match_flags & SSAM_MATCH_FUNCTION, function);
 +
 +      return 1;
 +}
 +
+ /* Looks like: dfl:tNfN */
+ static int do_dfl_entry(const char *filename, void *symval, char *alias)
+ {
+       DEF_FIELD(symval, dfl_device_id, type);
+       DEF_FIELD(symval, dfl_device_id, feature_id);
+       sprintf(alias, "dfl:t%04Xf%04X", type, feature_id);
+       add_wildcard(alias);
+       return 1;
+ }
  /* Does namelen bytes of name exactly match the symbol? */
  static bool sym_is(const char *name, unsigned namelen, const char *symbol)
  {
@@@ -1472,7 -1462,7 +1484,8 @@@ static const struct devtable devtable[
        {"wmi", SIZE_wmi_device_id, do_wmi_entry},
        {"mhi", SIZE_mhi_device_id, do_mhi_entry},
        {"auxiliary", SIZE_auxiliary_device_id, do_auxiliary_entry},
 +      {"ssam", SIZE_ssam_device_id, do_ssam_entry},
+       {"dfl", SIZE_dfl_device_id, do_dfl_entry},
  };
  
  /* Create MODULE_ALIAS() statements.