compat-drivers: move all patch types under patches/

The number of patch directories for the different life
cycle a patch can be on its way upstream had reached 4:

  * pending-stable
  * linux-next-pending
  * linux-next-cherry-picks
  * crap

Apart from this we also had the backport related patches.
In the future I see potential for other directories for
different categories of patches. Consider how we are
breaking down the backport patches into specific documented
collateral evolutions and of those type of collateral
evolutions there may be different types of collateral
evolutions which we could likely treat / document differently.
Another type of patch that I forsee us having to deal with
are patches for drivers that are not upstrea -- like crap,
but for drivers in a unified driver tree that is *designed*
from scratch to be targetting upstream Linux inclusion using
the same coccinelle technology I forsee us using for backporting
collateral evolutions.

Since the number of patch directories can get out of hand
at the top level lets just stuff then all under patches/
and deal with patches there. This also places the backport
patches into a directory called collateral-evolutions/ to
help promote and educate on the nature of the changes
that we have to deal with when backporting.

Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: Adrian Chadd <adrian@freebsd.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: add support for unified drivers

Companies typically write Linux device drivers either from
scratch of alternatively based on some internal unified
source code tree. Typically the unified driver architecture
is a mess and porting a driver to linux is always a painful
task to the extent at times a full rewrite is required and
at times preferred.

In order to try to help with these type of unified driver
strategies one possibility that has been proposed is to
make the unified driver strategy an open source project and
to not make many compromises on the style and requirements
for Linux. The alx Linux driver [1] is not yet upstream and
is undergoing changes to try to accomodate it to a format
and use new technologies to help address unification attempts
in both an open manner and also lead by the community.

compat-drivers will support these type of driver efforts
only if they adhere to the principles of never compromising
Linux upstream requirements and are targetting getting
upstream into the Linux kernel. Once these drivers are upstream,
their respective git trees will be removed and we'll simply
cherry pick the driver as we do from upstream Linux. If a
compat-drivers releases contains drivers that are from a
unified git repository the release will be postfixed with
a "-u".

[1] http://www.linuxfoundation.org/collaborate/workgroups/networking/alx

Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: Adrian Chadd <adrian@freebsd.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: update refresh-compat scripts

This updates the refresh-compat scripts to account for
having patches in extended directories.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: add Debian to scripts/update-initramfs

I've tested this on Debian now.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: split up admin-update.sh

This splits up admin-update.sh into a few sections
by separating functionality into routine helpers.
This allows us to add base refresh with -b so that
drivers that only need the base code can update the
compat labels.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: add disable_drm to driver-select

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: fix typo on 0002-enable-alx.patch

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: fix alx backport on netdev features

This updates the hunks that deal with the netdevice
features. We no longer need device checks given that
the driver no longer supports atl1c devices.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: fix typo which removed entries on Makefile

The commit below removed by mistake some entries on the top
level Makefile.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: fix 11-dev-pm-ops.patch

Hauke had sent out patches to help clean up
the pm run time callbacks to allow this patch
to be simplified. This takes care of the
required changes.

This goes compile tested against next-20121203

mcgrof@drvbp1 ~/devel/compat-drivers (git::master)$ time ckmake
Trying kernel 3.6.5-030605-generic [OK]
Trying kernel 3.5.7-030507-generic [OK]
Trying kernel 3.4.17-030417-generic [OK]
Trying kernel 3.3.8-030308-generic [OK]
Trying kernel 3.2.33-030233-generic [OK]
Trying kernel 3.1.10-030110-generic [OK]
Trying kernel 3.0.50-030050-generic [OK]
Trying kernel 2.6.39-02063904-generic [OK]
Trying kernel 2.6.38-02063808-generic [OK]
Trying kernel 2.6.37-02063706-generic [OK]
Trying kernel 2.6.36-02063604-generic [OK]
Trying kernel 2.6.35-02063513-generic [OK]
Trying kernel 2.6.34-02063413-generic [OK]
Trying kernel 2.6.33-02063320-generic [OK]
Trying kernel 2.6.32-02063260-generic [OK]
Trying kernel 2.6.31-02063113-generic [OK]
Trying kernel 2.6.30-02063010-generic [OK]
Trying kernel 2.6.29-02062906-generic [OK]
Trying kernel 2.6.28-02062810-generic [OK]
Trying kernel 2.6.27-020627-generic [OK]
Trying kernel 2.6.26-020626-generic [OK]
Trying kernel 2.6.25-020625-generic [OK]
Trying kernel 2.6.24-020624-generic [OK]

real    18m42.239s
user    327m50.029s
sys     53m37.317s

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: add the MDIO module

The alx Ethernet driver depends on the MDIO module.
This module has UAPI and kernel headers. The headers are
carried over intact to help *both* backport it for older
drivers and also provide the newer driver to other kernels
that may have it enabled after it was introduced in 2.6.31.

The way support for MDIO is enabled is by carrying over both
the UAPI and Linux kernel header files along with the module
with in compat-drivers. The exported symbols of the module
however are renamed with a compat_* prefix within compat
in include/linux/compat-2.6.31.h. This enables Linux
distributions shipping a driver that depends on older
versions of the MDIO to keep using it while allowing the
supplied drivers in compat-drivers to become users of
the newer module it likely will require a tighter
dependency on.

An alternative to using different exported symbol names
is for compat-drivers to work under a separate namespace
and while I hear some folks already implemented that support
we never got those patches sent to us.

C'est la vie.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: fix alx suspend/resume calls for old kernels

The declarations compat_pci_suspend() and compat_pci_resume()
must be placed before SIMPLE_DEV_PM_OPS().

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: modify release script to support unified drivers

The -u argument was used to upload releases to kernel.org. Lets
rename this to -r for 'release to kernel.org' given that we have
no introduced -u for unified-drivers support into compat-drivers.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: remove ksize() ifdef on scan.c

The patch bellow remove the usage of ksize() so just
remove that hunk.

commit 9caf03640279e64d0ba36539b42daa1b43a49486
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Nov 29 01:25:20 2012 +0100

    cfg80211: fix BSS struct IE access races

    When a BSS struct is updated, the IEs are currently
    overwritten or freed. This can lead to races if some
    other CPU is accessing the BSS struct and using the
    IEs concurrently.

    Fix this by always allocating the IEs in a new struct
    that holds the data and length and protecting access
    to this new struct with RCU.

    Signed-off-by: Johannes Berg <johannes.berg@intel.com>

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: remove __devexit_p() from 11-dev-pm-ops.patch

The __devexit_p() was removed from a few drivers given that
CONFIG_HOTPLUG is going away.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: fix 45-remove-platform-id-table.patch

CONFIG_HOTPLUG is going away soon so a few init/remove helpers
are being removed.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: fix 62-usb_driver_lpm.patch

CONFIG_HOTPLUG is going away soon so a few helpers can
be removed now.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: remove 67-use_spinlock_t.patch

This work is now upstream.

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: ship include/linux/bcm47xx_wdt.h

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>
compat-drivers: refresh patches for next-20121211

Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com>