MFC r262886:
Fix support for increased logical sector size (4K-native drives).

- Logical sector size is measured in words, not bytes.
- If physical sector is not bigger then logical sector, it does not mean
it should be set equal to 512 bytes, but set to logical sector.

PR:             misc/187269
Submitted by:   Ravi Pokala <rpokala@panasas.com>
MFC r262550, r262551 and r262554:
Add support for kqfilter to USB character devices.
MFC
Sync usb.conf file to head branch.
MFC r227751, r238766, r241553, r242748, r244047, r245947, r246021, r247255,
    r249039, r249204, r250848, r251351, r252295, r252498, r255123, r255238,
    r256782, r257132, r257390 and r259675:
- Add various new USB ID's and quirks.
- Make sure the usbdevs mergeinfo gets recorded on the sys directory.
MFC Radeon KMS driver

FreeBSD 9 already had modern Intel GPUs support, now this is the case for
Radeon GPUs too. This will ease the work on ports, where there won't be a
need to distinguish between FreeBSD 9/10 and different hardware vendors.

Help from:	jhb@, jkim@, kan@, kib@,
		J.R. Oldroyd <fbsd@opal.com> (previous version of the patch)

The following revisions were merged in this single commit:

r254885:
  drm/radeon: Import the Radeon KMS driver

  This driver is based on Linux 3.8 and a previous effort by kan@.

  More informations about this project can be found on the FreeBSD wiki:
      https://wiki.freebsd.org/AMD_GPU

  The driver is split into:

    sys/dev/drm2:
      The driver sources.

    sys/modules/drm2/radeonkmw:
      The driver main kernel module's Makefile.

    sys/modules/drm2/radeonkmsfw:
      All firmware kernel module Makefiles. There's one directory and one
      Makefile for each firmware.

    sys/contrib/dev/drm2/radeonkmsfw:
      All firmware binary sources.

    tools/tools/drm/radeon
      Tools to update firmwares or regenerate some headers.

  Merging the driver to FreeBSD 9.x may be possible but not a priority for
  now.

  Help from:	kib@, kan@
  Tested by:	avg@, kwm@, ray@,
		Alexander Yerenkow <yerenkow@gmail.com>,
		Anders Bolt-Evensen <andersbo87@me.com>,
		Denis Djubajlo <stdedjub@googlemail.com>,
		J.R. Oldroyd <fbsd@opal.com>,
		Mikaël Urankar <mikael.urankar@gmail.com>,
		Pierre-Emmanuel Pédron <pepcitron@gmail.com>,
		Sam Fourman Jr. <sfourman@gmail.com>,
		Wade <wade-is-great@live.com>,
		(probably other I forgot...)
  HW donations:	kyzh, Yakaz

r254894:
  drm/radeon: Rename the (S)DEBUG macros in atom.c to avoid conflicts

  For instance, DEBUG is already defined in the LINT kernel configuration.
  This fixes the build of LINT.

r254899:
  drm/radeon: Disable build on i386/pc98

r255572:
  drm/radeon: Fix usage of vga_pci_map_bios()

  vga_pci_(un)map_bios() takes a vgapci device as argument, not a drmn
  one. This fixes a bug where the BIOS couldn't be mapped if the device
  wasn't the boot display.

  Approved by:	re (kib; blanket for following drm2/radeon commits)

r255573:
  drm/radeon: Fix usage of pci_save_state() and pci_restore_state()

  Calling those functions with the drmn device as argument causes a panic,
  because it's not a direct child of pci$N. They must be called with the
  vgapci device instead.

  This fix is not enough to make suspend/resume work reliably.

  Approved by:	re (blanket)

r255587:
  drm/radeon: Add missing "return false" after unmapping invalid BIOS

  Without that, we would try to copy the unmapped BIOS.

  Submitted by:	Christoph Mallon <christoph.mallon@gmx.de>
  Approved by:	re (blanket)

r256771:
  drm/radeon: radeonkms depends on firmware(9)

  Submitted by:	tijl@

r257869:
  drm: Initialize "handle" to 0 before calling drm_gem_handle_create()

  This is variable is being checked in drm_gem_name_create() before being
  set.

r257870:
  drm/radeon: Wake up userland after page flip

  For instance, this caused issues in KDE, such as stuttered animations
  (with desktop effects enabled).

r259003:
  Initialize modesetting sysctls in radeonkms.

  This is intended for MFC if re@ permits.

  Reviewed by:	kib, dumbbell
  Tested by:	Steven Chamberlain <steven@pyro.eu.org>
  MFC after:	3 days

r259101:
  drm/radeon: agp_info->ai_aperture_size is in bytes, not Mbytes

  This fixes radeon_agp_init() and gtt_size is now correct. However, this
  is not enough to make Radeon AGP cards work: ttm_agp_backend.c isn't
  implemented yet.

  Submitted by:	tijl@

r259104:
  drm/radeon: radeon_dp_i2c_aux_ch() must return 0 on FreeBSD

  The code was unmodified compared to Linux and returned the amount of
  received bytes from the i2c bus. This led to non-working i2c bus and
  failure to eg. read monitor's EDID, if connected to DisplayPort.

  MFC after:	3 days
  Tested by:	Mikaël Urankar <mikael.urankar@gmail.com>

r259684:
  drm/ttm, drm/radeon: Replace EINTR/ERESTART by ERESTARTSYS...

  ... for msleep/cv_*wait() return values, where wait_event*() is used
  on Linux. ERESTARTSYS is the return code expected by callers when the
  operation was interrupted.

  For instance, this is the case of radeon_cs_ioctl() (radeon_cs.c): if
  an error occurs, and the code isn't ERESTARTSYS (eg. EINTR), it logs an
  error.

  Note that ERESTARTSYS is defined as ERESTART, but this keeps callers'
  code close to Linux.

  Submitted by:	avg@ (previous version)

r261497:
  Abort when firmware isn't present in R600+ models.

  More details at:
  http://anonscm.debian.org/viewvc/kernel/dists/trunk/linux/debian/patches/bugfix/all/radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch?revision=20909&view=co

  Reviewed by:	dumbbell
  MFC after:	1 week
Bump __FreeBSD_version to 902508 after Radeon KMS driver merge
[automated] Merge in upstream-github/stable/9