aboutsummaryrefslogtreecommitdiff
path: root/fs/xattr_acl.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xattr_acl.c')
-rw-r--r--fs/xattr_acl.c98
1 files changed, 0 insertions, 98 deletions
diff --git a/fs/xattr_acl.c b/fs/xattr_acl.c
deleted file mode 100644
index c6ad7c7e3ee..00000000000
--- a/fs/xattr_acl.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * linux/fs/xattr_acl.c
- *
- * Almost all from linux/fs/ext2/acl.c:
- * Copyright (C) 2001 by Andreas Gruenbacher, <a.gruenbacher@computer.org>
- */
-
-#include <linux/module.h>
-#include <linux/slab.h>
-#include <linux/fs.h>
-#include <linux/posix_acl_xattr.h>
-
-
-/*
- * Convert from extended attribute to in-memory representation.
- */
-struct posix_acl *
-posix_acl_from_xattr(const void *value, size_t size)
-{
- posix_acl_xattr_header *header = (posix_acl_xattr_header *)value;
- posix_acl_xattr_entry *entry = (posix_acl_xattr_entry *)(header+1), *end;
- int count;
- struct posix_acl *acl;
- struct posix_acl_entry *acl_e;
-
- if (!value)
- return NULL;
- if (size < sizeof(posix_acl_xattr_header))
- return ERR_PTR(-EINVAL);
- if (header->a_version != cpu_to_le32(POSIX_ACL_XATTR_VERSION))
- return ERR_PTR(-EOPNOTSUPP);
-
- count = posix_acl_xattr_count(size);
- if (count < 0)
- return ERR_PTR(-EINVAL);
- if (count == 0)
- return NULL;
-
- acl = posix_acl_alloc(count, GFP_KERNEL);
- if (!acl)
- return ERR_PTR(-ENOMEM);
- acl_e = acl->a_entries;
-
- for (end = entry + count; entry != end; acl_e++, entry++) {
- acl_e->e_tag = le16_to_cpu(entry->e_tag);
- acl_e->e_perm = le16_to_cpu(entry->e_perm);
-
- switch(acl_e->e_tag) {
- case ACL_USER_OBJ:
- case ACL_GROUP_OBJ:
- case ACL_MASK:
- case ACL_OTHER:
- acl_e->e_id = ACL_UNDEFINED_ID;
- break;
-
- case ACL_USER:
- case ACL_GROUP:
- acl_e->e_id = le32_to_cpu(entry->e_id);
- break;
-
- default:
- goto fail;
- }
- }
- return acl;
-
-fail:
- posix_acl_release(acl);
- return ERR_PTR(-EINVAL);
-}
-EXPORT_SYMBOL (posix_acl_from_xattr);
-
-/*
- * Convert from in-memory to extended attribute representation.
- */
-int
-posix_acl_to_xattr(const struct posix_acl *acl, void *buffer, size_t size)
-{
- posix_acl_xattr_header *ext_acl = (posix_acl_xattr_header *)buffer;
- posix_acl_xattr_entry *ext_entry = ext_acl->a_entries;
- int real_size, n;
-
- real_size = posix_acl_xattr_size(acl->a_count);
- if (!buffer)
- return real_size;
- if (real_size > size)
- return -ERANGE;
-
- ext_acl->a_version = cpu_to_le32(POSIX_ACL_XATTR_VERSION);
-
- for (n=0; n < acl->a_count; n++, ext_entry++) {
- ext_entry->e_tag = cpu_to_le16(acl->a_entries[n].e_tag);
- ext_entry->e_perm = cpu_to_le16(acl->a_entries[n].e_perm);
- ext_entry->e_id = cpu_to_le32(acl->a_entries[n].e_id);
- }
- return real_size;
-}
-EXPORT_SYMBOL (posix_acl_to_xattr);
d>
-rw-r--r--drivers/acpi/acpica/Makefile187
-rw-r--r--drivers/acpi/acpica/acapps.h170
-rw-r--r--drivers/acpi/acpica/accommon.h4
-rw-r--r--drivers/acpi/acpica/acconfig.h217
-rw-r--r--drivers/acpi/acpica/acdebug.h120
-rw-r--r--drivers/acpi/acpica/acdispat.h56
-rw-r--r--drivers/acpi/acpica/acevents.h137
-rw-r--r--drivers/acpi/acpica/acglobal.h415
-rw-r--r--drivers/acpi/acpica/achware.h57
-rw-r--r--drivers/acpi/acpica/acinterp.h63
-rw-r--r--drivers/acpi/acpica/aclocal.h317
-rw-r--r--drivers/acpi/acpica/acmacros.h377
-rw-r--r--drivers/acpi/acpica/acnamesp.h165
-rw-r--r--drivers/acpi/acpica/acobject.h62
-rw-r--r--drivers/acpi/acpica/acopcode.h12
-rw-r--r--drivers/acpi/acpica/acparser.h32
-rw-r--r--drivers/acpi/acpica/acpredef.h1236
-rw-r--r--drivers/acpi/acpica/acresrc.h127
-rw-r--r--drivers/acpi/acpica/acstruct.h81
-rw-r--r--drivers/acpi/acpica/actables.h77
-rw-r--r--drivers/acpi/acpica/acutils.h319
-rw-r--r--drivers/acpi/acpica/amlcode.h57
-rw-r--r--drivers/acpi/acpica/amlresrc.h149
-rw-r--r--drivers/acpi/acpica/dsargs.c405
-rw-r--r--drivers/acpi/acpica/dscontrol.c410
-rw-r--r--drivers/acpi/acpica/dsfield.c218
-rw-r--r--drivers/acpi/acpica/dsinit.c92
-rw-r--r--drivers/acpi/acpica/dsmethod.c264
-rw-r--r--drivers/acpi/acpica/dsmthdat.c90
-rw-r--r--drivers/acpi/acpica/dsobject.c109
-rw-r--r--drivers/acpi/acpica/dsopcode.c765
-rw-r--r--drivers/acpi/acpica/dsutils.c79
-rw-r--r--drivers/acpi/acpica/dswexec.c55
-rw-r--r--drivers/acpi/acpica/dswload.c733
-rw-r--r--drivers/acpi/acpica/dswload2.c738
-rw-r--r--drivers/acpi/acpica/dswscope.c6
-rw-r--r--drivers/acpi/acpica/dswstate.c62
-rw-r--r--drivers/acpi/acpica/evevent.c104
-rw-r--r--drivers/acpi/acpica/evglock.c344
-rw-r--r--drivers/acpi/acpica/evgpe.c605
-rw-r--r--drivers/acpi/acpica/evgpeblk.c898
-rw-r--r--drivers/acpi/acpica/evgpeinit.c443
-rw-r--r--drivers/acpi/acpica/evgpeutil.c406
-rw-r--r--drivers/acpi/acpica/evhandler.c536
-rw-r--r--drivers/acpi/acpica/evmisc.c494
-rw-r--r--drivers/acpi/acpica/evregion.c748
-rw-r--r--drivers/acpi/acpica/evrgnini.c145
-rw-r--r--drivers/acpi/acpica/evsci.c91
-rw-r--r--drivers/acpi/acpica/evxface.c931
-rw-r--r--drivers/acpi/acpica/evxfevnt.c621
-rw-r--r--drivers/acpi/acpica/evxfgpe.c756
-rw-r--r--drivers/acpi/acpica/evxfregn.c65
-rw-r--r--drivers/acpi/acpica/exconfig.c266
-rw-r--r--drivers/acpi/acpica/exconvrt.c68
-rw-r--r--drivers/acpi/acpica/excreate.c64
-rw-r--r--drivers/acpi/acpica/exdebug.c263
-rw-r--r--drivers/acpi/acpica/exdump.c397
-rw-r--r--drivers/acpi/acpica/exfield.c237
-rw-r--r--drivers/acpi/acpica/exfldio.c247
-rw-r--r--drivers/acpi/acpica/exmisc.c81
-rw-r--r--drivers/acpi/acpica/exmutex.c102
-rw-r--r--drivers/acpi/acpica/exnames.c15
-rw-r--r--drivers/acpi/acpica/exoparg1.c162
-rw-r--r--drivers/acpi/acpica/exoparg2.c67
-rw-r--r--drivers/acpi/acpica/exoparg3.c23
-rw-r--r--drivers/acpi/acpica/exoparg6.c29
-rw-r--r--drivers/acpi/acpica/exprep.c112
-rw-r--r--drivers/acpi/acpica/exregion.c173
-rw-r--r--drivers/acpi/acpica/exresnte.c27
-rw-r--r--drivers/acpi/acpica/exresolv.c37
-rw-r--r--drivers/acpi/acpica/exresop.c62
-rw-r--r--drivers/acpi/acpica/exstore.c393
-rw-r--r--drivers/acpi/acpica/exstoren.c48
-rw-r--r--drivers/acpi/acpica/exstorob.c21
-rw-r--r--drivers/acpi/acpica/exsystem.c49
-rw-r--r--drivers/acpi/acpica/exutils.c197
-rw-r--r--drivers/acpi/acpica/hwacpi.c56
-rw-r--r--drivers/acpi/acpica/hwesleep.c243
-rw-r--r--drivers/acpi/acpica/hwgpe.c158
-rw-r--r--drivers/acpi/acpica/hwpci.c421
-rw-r--r--drivers/acpi/acpica/hwregs.c544
-rw-r--r--drivers/acpi/acpica/hwsleep.c464
-rw-r--r--drivers/acpi/acpica/hwtimer.c36
-rw-r--r--drivers/acpi/acpica/hwvalid.c328
-rw-r--r--drivers/acpi/acpica/hwxface.c578
-rw-r--r--drivers/acpi/acpica/hwxfsleep.c432
-rw-r--r--drivers/acpi/acpica/nsaccess.c92
-rw-r--r--drivers/acpi/acpica/nsalloc.c233
-rw-r--r--drivers/acpi/acpica/nsarguments.c294
-rw-r--r--drivers/acpi/acpica/nsconvert.c446
-rw-r--r--drivers/acpi/acpica/nsdump.c263
-rw-r--r--drivers/acpi/acpica/nsdumpdv.c14
-rw-r--r--drivers/acpi/acpica/nseval.c432
-rw-r--r--drivers/acpi/acpica/nsinit.c108
-rw-r--r--drivers/acpi/acpica/nsload.c25
-rw-r--r--drivers/acpi/acpica/nsnames.c27
-rw-r--r--drivers/acpi/acpica/nsobject.c73
-rw-r--r--drivers/acpi/acpica/nsparse.c26
-rw-r--r--drivers/acpi/acpica/nspredef.c983
-rw-r--r--drivers/acpi/acpica/nsprepkg.c624
-rw-r--r--drivers/acpi/acpica/nsrepair.c595
-rw-r--r--drivers/acpi/acpica/nsrepair2.c979
-rw-r--r--drivers/acpi/acpica/nssearch.c74
-rw-r--r--drivers/acpi/acpica/nsutils.c443
-rw-r--r--drivers/acpi/acpica/nswalk.c276
-rw-r--r--drivers/acpi/acpica/nsxfeval.c438
-rw-r--r--drivers/acpi/acpica/nsxfname.c451
-rw-r--r--drivers/acpi/acpica/nsxfobj.c41
-rw-r--r--drivers/acpi/acpica/psargs.c172
-rw-r--r--drivers/acpi/acpica/psloop.c696
-rw-r--r--drivers/acpi/acpica/psobject.c651
-rw-r--r--drivers/acpi/acpica/psopcode.c210
-rw-r--r--drivers/acpi/acpica/psopinfo.c270
-rw-r--r--drivers/acpi/acpica/psparse.c59
-rw-r--r--drivers/acpi/acpica/psscope.c8
-rw-r--r--drivers/acpi/acpica/pstree.c24
-rw-r--r--drivers/acpi/acpica/psutils.c22
-rw-r--r--drivers/acpi/acpica/pswalk.c2
-rw-r--r--drivers/acpi/acpica/psxface.c57
-rw-r--r--drivers/acpi/acpica/rsaddr.c16
-rw-r--r--drivers/acpi/acpica/rscalc.c152
-rw-r--r--drivers/acpi/acpica/rscreate.c198
-rw-r--r--drivers/acpi/acpica/rsdump.c411
-rw-r--r--drivers/acpi/acpica/rsdumpinfo.c454
-rw-r--r--drivers/acpi/acpica/rsinfo.c62
-rw-r--r--drivers/acpi/acpica/rsio.c2
-rw-r--r--drivers/acpi/acpica/rsirq.c67
-rw-r--r--drivers/acpi/acpica/rslist.c100
-rw-r--r--drivers/acpi/acpica/rsmemory.c8
-rw-r--r--drivers/acpi/acpica/rsmisc.c344
-rw-r--r--drivers/acpi/acpica/rsserial.c445
-rw-r--r--drivers/acpi/acpica/rsutils.c121
-rw-r--r--drivers/acpi/acpica/rsxface.c178
-rw-r--r--drivers/acpi/acpica/tbdata.c760
-rw-r--r--drivers/acpi/acpica/tbfadt.c711
-rw-r--r--drivers/acpi/acpica/tbfind.c12
-rw-r--r--drivers/acpi/acpica/tbinstal.c715
-rw-r--r--drivers/acpi/acpica/tbprint.c251
-rw-r--r--drivers/acpi/acpica/tbutils.c416
-rw-r--r--drivers/acpi/acpica/tbxface.c383
-rw-r--r--drivers/acpi/acpica/tbxfload.c418
-rw-r--r--drivers/acpi/acpica/tbxfroot.c38
-rw-r--r--drivers/acpi/acpica/utaddress.c301
-rw-r--r--drivers/acpi/acpica/utalloc.c133
-rw-r--r--drivers/acpi/acpica/utbuffer.c201
-rw-r--r--drivers/acpi/acpica/utcache.c313
-rw-r--r--drivers/acpi/acpica/utcopy.c119
-rw-r--r--drivers/acpi/acpica/utdebug.c348
-rw-r--r--drivers/acpi/acpica/utdecode.c571
-rw-r--r--drivers/acpi/acpica/utdelete.c250
-rw-r--r--drivers/acpi/acpica/uterror.c289
-rw-r--r--drivers/acpi/acpica/uteval.c523
-rw-r--r--drivers/acpi/acpica/utexcep.c159
-rw-r--r--drivers/acpi/acpica/utglobal.c600
-rw-r--r--drivers/acpi/acpica/utids.c418
-rw-r--r--drivers/acpi/acpica/utinit.c66
-rw-r--r--drivers/acpi/acpica/utlock.c175
-rw-r--r--drivers/acpi/acpica/utmath.c56
-rw-r--r--drivers/acpi/acpica/utmisc.c828
-rw-r--r--drivers/acpi/acpica/utmutex.c122
-rw-r--r--drivers/acpi/acpica/utobject.c105
-rw-r--r--drivers/acpi/acpica/utosi.c473
-rw-r--r--drivers/acpi/acpica/utownerid.c218
-rw-r--r--drivers/acpi/acpica/utpredef.c399
-rw-r--r--drivers/acpi/acpica/utresrc.c324
-rw-r--r--drivers/acpi/acpica/utstate.c61
-rw-r--r--drivers/acpi/acpica/utstring.c648
-rw-r--r--drivers/acpi/acpica/uttrack.c722
-rw-r--r--drivers/acpi/acpica/utxface.c609
-rw-r--r--drivers/acpi/acpica/utxferror.c253
-rw-r--r--drivers/acpi/acpica/utxfinit.c329
-rw-r--r--drivers/acpi/acpica/utxfmutex.c187
-rw-r--r--drivers/acpi/apei/Kconfig58
-rw-r--r--drivers/acpi/apei/Makefile6
-rw-r--r--drivers/acpi/apei/apei-base.c772
-rw-r--r--drivers/acpi/apei/apei-internal.h143
-rw-r--r--drivers/acpi/apei/einj.c833
-rw-r--r--drivers/acpi/apei/erst-dbg.c243
-rw-r--r--drivers/acpi/apei/erst.c1230
-rw-r--r--drivers/acpi/apei/ghes.c1131
-rw-r--r--drivers/acpi/apei/hest.c282
-rw-r--r--drivers/acpi/battery.c668
-rw-r--r--drivers/acpi/battery.h10
-rw-r--r--drivers/acpi/bgrt.c111
-rw-r--r--drivers/acpi/blacklist.c232
-rw-r--r--drivers/acpi/bus.c822
-rw-r--r--drivers/acpi/button.c487
-rw-r--r--drivers/acpi/cm_sbs.c2
-rw-r--r--drivers/acpi/container.c276
-rw-r--r--drivers/acpi/custom_method.c100
-rw-r--r--drivers/acpi/debug.c344
-rw-r--r--drivers/acpi/debugfs.c19
-rw-r--r--drivers/acpi/device_pm.c1095
-rw-r--r--drivers/acpi/dock.c924
-rw-r--r--drivers/acpi/ec.c1005
-rw-r--r--drivers/acpi/ec_sys.c162
-rw-r--r--drivers/acpi/event.c145
-rw-r--r--drivers/acpi/fan.c257
-rw-r--r--drivers/acpi/glue.c406
-rw-r--r--drivers/acpi/hed.c92
-rw-r--r--drivers/acpi/internal.h181
-rw-r--r--drivers/acpi/numa.c133
-rw-r--r--drivers/acpi/nvs.c212
-rw-r--r--drivers/acpi/osl.c1340
-rw-r--r--drivers/acpi/pci_bind.c359
-rw-r--r--drivers/acpi/pci_irq.c237
-rw-r--r--drivers/acpi/pci_link.c235
-rw-r--r--drivers/acpi/pci_root.c767
-rw-r--r--drivers/acpi/pci_slot.c222
-rw-r--r--drivers/acpi/power.c957
-rw-r--r--drivers/acpi/proc.c503
-rw-r--r--drivers/acpi/processor_core.c1236
-rw-r--r--drivers/acpi/processor_driver.c306
-rw-r--r--drivers/acpi/processor_idle.c1499
-rw-r--r--drivers/acpi/processor_perflib.c324
-rw-r--r--drivers/acpi/processor_thermal.c389
-rw-r--r--drivers/acpi/processor_throttling.c357
-rw-r--r--drivers/acpi/reboot.c14
-rw-r--r--drivers/acpi/resource.c540
-rw-r--r--drivers/acpi/sbs.c440
-rw-r--r--drivers/acpi/sbshc.c33
-rw-r--r--drivers/acpi/scan.c2651
-rw-r--r--drivers/acpi/sleep.c782
-rw-r--r--drivers/acpi/sleep.h13
-rw-r--r--drivers/acpi/sysfs.c824
-rw-r--r--drivers/acpi/system.c590
-rw-r--r--drivers/acpi/tables.c218
-rw-r--r--drivers/acpi/thermal.c1319
-rw-r--r--drivers/acpi/utils.c404
-rw-r--r--drivers/acpi/video.c2572
-rw-r--r--drivers/acpi/video_detect.c209
-rw-r--r--drivers/acpi/wakeup.c158
-rw-r--r--drivers/amba/Makefile4
-rw-r--r--drivers/amba/bus.c379
-rw-r--r--drivers/amba/tegra-ahb.c289
-rw-r--r--drivers/ata/Kconfig708
-rw-r--r--drivers/ata/Makefile102
-rw-r--r--drivers/ata/acard-ahci.c511
-rw-r--r--drivers/ata/ahci.c3087
-rw-r--r--drivers/ata/ahci.h410
-rw-r--r--drivers/ata/ahci_da850.c115
-rw-r--r--drivers/ata/ahci_imx.c527
-rw-r--r--drivers/ata/ahci_mvebu.c128
-rw-r--r--drivers/ata/ahci_platform.c105
-rw-r--r--drivers/ata/ahci_st.c245
-rw-r--r--drivers/ata/ahci_sunxi.c252
-rw-r--r--drivers/ata/ahci_xgene.c523
-rw-r--r--drivers/ata/ata_generic.c111
-rw-r--r--drivers/ata/ata_piix.c878
-rw-r--r--drivers/ata/libahci.c2482
-rw-r--r--drivers/ata/libahci_platform.c549
-rw-r--r--drivers/ata/libata-acpi.c466
-rw-r--r--drivers/ata/libata-core.c2072
-rw-r--r--drivers/ata/libata-eh.c1092
-rw-r--r--drivers/ata/libata-pmp.c270
-rw-r--r--drivers/ata/libata-scsi.c1159
-rw-r--r--drivers/ata/libata-sff.c2083
-rw-r--r--drivers/ata/libata-transport.c785
-rw-r--r--drivers/ata/libata-transport.h18
-rw-r--r--drivers/ata/libata-zpodd.c283
-rw-r--r--drivers/ata/libata.h105
-rw-r--r--drivers/ata/pata_acpi.c53
-rw-r--r--drivers/ata/pata_ali.c80
-rw-r--r--drivers/ata/pata_amd.c181
-rw-r--r--drivers/ata/pata_arasan_cf.c976
-rw-r--r--drivers/ata/pata_artop.c178
-rw-r--r--drivers/ata/pata_at32.c22
-rw-r--r--drivers/ata/pata_at91.c457
-rw-r--r--drivers/ata/pata_atiixp.c108
-rw-r--r--drivers/ata/pata_atp867x.c573
-rw-r--r--drivers/ata/pata_bf54x.c331
-rw-r--r--drivers/ata/pata_cmd640.c50
-rw-r--r--drivers/ata/pata_cmd64x.c283
-rw-r--r--drivers/ata/pata_cs5520.c81
-rw-r--r--drivers/ata/pata_cs5530.c36
-rw-r--r--drivers/ata/pata_cs5535.c45
-rw-r--r--drivers/ata/pata_cs5536.c171
-rw-r--r--drivers/ata/pata_cypress.c34
-rw-r--r--drivers/ata/pata_efar.c88
-rw-r--r--drivers/ata/pata_ep93xx.c1037
-rw-r--r--drivers/ata/pata_hpt366.c172
-rw-r--r--drivers/ata/pata_hpt37x.c597
-rw-r--r--drivers/ata/pata_hpt3x2n.c369
-rw-r--r--drivers/ata/pata_hpt3x3.c47
-rw-r--r--drivers/ata/pata_icside.c56
-rw-r--r--drivers/ata/pata_imx.c258
-rw-r--r--drivers/ata/pata_isapnp.c16
-rw-r--r--drivers/ata/pata_it8213.c72
-rw-r--r--drivers/ata/pata_it821x.c75
-rw-r--r--drivers/ata/pata_ixp4xx_cf.c45
-rw-r--r--drivers/ata/pata_jmicron.c22
-rw-r--r--drivers/ata/pata_legacy.c208
-rw-r--r--drivers/ata/pata_macio.c1421
-rw-r--r--drivers/ata/pata_marvell.c36
-rw-r--r--drivers/ata/pata_mpc52xx.c220
-rw-r--r--drivers/ata/pata_mpiix.c24
-rw-r--r--drivers/ata/pata_netcell.c41
-rw-r--r--drivers/ata/pata_ninja32.c31
-rw-r--r--drivers/ata/pata_ns87410.c22
-rw-r--r--drivers/ata/pata_ns87415.c65
-rw-r--r--drivers/ata/pata_octeon_cf.c445
-rw-r--r--drivers/ata/pata_of_platform.c53
-rw-r--r--drivers/ata/pata_oldpiix.c30
-rw-r--r--drivers/ata/pata_opti.c25
-rw-r--r--drivers/ata/pata_optidma.c32
-rw-r--r--drivers/ata/pata_palmld.c138
-rw-r--r--drivers/ata/pata_pcmcia.c229
-rw-r--r--drivers/ata/pata_pdc2027x.c77
-rw-r--r--drivers/ata/pata_pdc202xx_old.c74
-rw-r--r--drivers/ata/pata_piccolo.c125
-rw-r--r--drivers/ata/pata_platform.c61
-rw-r--r--drivers/ata/pata_pxa.c398
-rw-r--r--drivers/ata/pata_qdi.c366
-rw-r--r--drivers/ata/pata_radisys.c36
-rw-r--r--drivers/ata/pata_rb532_cf.c101
-rw-r--r--drivers/ata/pata_rdc.c398
-rw-r--r--drivers/ata/pata_rz1000.c42
-rw-r--r--drivers/ata/pata_samsung_cf.c684
-rw-r--r--drivers/ata/pata_sc1200.c72
-rw-r--r--drivers/ata/pata_scc.c143
-rw-r--r--drivers/ata/pata_sch.c42
-rw-r--r--drivers/ata/pata_serverworks.c180
-rw-r--r--drivers/ata/pata_sil680.c185
-rw-r--r--drivers/ata/pata_sis.c235
-rw-r--r--drivers/ata/pata_sl82c105.c76
-rw-r--r--drivers/ata/pata_triflex.c51
-rw-r--r--drivers/ata/pata_via.c467
-rw-r--r--drivers/ata/pata_winbond.c282
-rw-r--r--drivers/ata/pdc_adma.c113
-rw-r--r--drivers/ata/sata_dwc_460ex.c1822
-rw-r--r--drivers/ata/sata_dwc_pmp.c3041
-rw-r--r--drivers/ata/sata_fsl.c557
-rw-r--r--drivers/ata/sata_highbank.c650
-rw-r--r--drivers/ata/sata_inic162x.c104
-rw-r--r--drivers/ata/sata_mv.c1967
-rw-r--r--drivers/ata/sata_nv.c641
-rw-r--r--drivers/ata/sata_promise.c259
-rw-r--r--drivers/ata/sata_qstor.c148
-rw-r--r--drivers/ata/sata_rcar.c1004
-rw-r--r--drivers/ata/sata_sil.c135
-rw-r--r--drivers/ata/sata_sil24.c173
-rw-r--r--drivers/ata/sata_sis.c131
-rw-r--r--drivers/ata/sata_svw.c114
-rw-r--r--drivers/ata/sata_sx4.c255
-rw-r--r--drivers/ata/sata_uli.c31
-rw-r--r--drivers/ata/sata_via.c153
-rw-r--r--drivers/ata/sata_vsc.c58
-rw-r--r--drivers/atm/Kconfig5
-rw-r--r--drivers/atm/Makefile2
-rw-r--r--drivers/atm/adummy.c42
-rw-r--r--drivers/atm/ambassador.c111
-rw-r--r--drivers/atm/ambassador.h4
-rw-r--r--drivers/atm/atmtcp.c22
-rw-r--r--drivers/atm/eni.c150
-rw-r--r--drivers/atm/eni.h8
-rw-r--r--drivers/atm/firestream.c69
-rw-r--r--drivers/atm/firestream.h1
-rw-r--r--drivers/atm/fore200e.c172
-rw-r--r--drivers/atm/fore200e.h4
-rw-r--r--drivers/atm/he.c392
-rw-r--r--drivers/atm/he.h65
-rw-r--r--drivers/atm/horizon.c47
-rw-r--r--drivers/atm/idt77105.c21
-rw-r--r--drivers/atm/idt77252.c114
-rw-r--r--drivers/atm/idt77252.h4
-rw-r--r--drivers/atm/iphase.c325
-rw-r--r--drivers/atm/iphase.h543
-rw-r--r--drivers/atm/lanai.c83
-rw-r--r--drivers/atm/nicstar.c5187
-rw-r--r--drivers/atm/nicstar.h602
-rw-r--r--drivers/atm/nicstarmac.c364
-rw-r--r--drivers/atm/solos-attrlist.c82
-rw-r--r--drivers/atm/solos-pci.c1164
-rw-r--r--drivers/atm/suni.c9
-rw-r--r--drivers/atm/uPD98402.c3
-rw-r--r--drivers/atm/zatm.c46
-rw-r--r--drivers/auxdisplay/Kconfig3
-rw-r--r--drivers/auxdisplay/cfag12864b.c5
-rw-r--r--drivers/auxdisplay/cfag12864bfb.c10
-rw-r--r--drivers/base/Kconfig234
-rw-r--r--drivers/base/Makefile18
-rw-r--r--drivers/base/attribute_container.c6
-rw-r--r--drivers/base/base.h117
-rw-r--r--drivers/base/bus.c611
-rw-r--r--drivers/base/class.c213
-rw-r--r--drivers/base/component.c390
-rw-r--r--drivers/base/container.c44
-rw-r--r--drivers/base/core.c1447
-rw-r--r--drivers/base/cpu.c387
-rw-r--r--drivers/base/dd.c311
-rw-r--r--drivers/base/devres.c314
-rw-r--r--drivers/base/devtmpfs.c443
-rw-r--r--drivers/base/dma-buf.c743
-rw-r--r--drivers/base/dma-coherent.c220
-rw-r--r--drivers/base/dma-contiguous.c409
-rw-r--r--drivers/base/dma-mapping.c57
-rw-r--r--drivers/base/driver.c130
-rw-r--r--drivers/base/firmware_class.c1625
-rw-r--r--drivers/base/hypervisor.c1
-rw-r--r--drivers/base/init.c3
-rw-r--r--drivers/base/iommu.c100
-rw-r--r--drivers/base/isa.c2
-rw-r--r--drivers/base/memory.c675
-rw-r--r--drivers/base/module.c5
-rw-r--r--drivers/base/node.c538
-rw-r--r--drivers/base/pinctrl.c88
-rw-r--r--drivers/base/platform.c998
-rw-r--r--drivers/base/power/Makefile8
-rw-r--r--drivers/base/power/clock_ops.c505
-rw-r--r--drivers/base/power/common.c84
-rw-r--r--drivers/base/power/domain.c2191
-rw-r--r--drivers/base/power/domain_governor.c253
-rw-r--r--drivers/base/power/generic_ops.c306
-rw-r--r--drivers/base/power/main.c1671
-rw-r--r--drivers/base/power/opp.c678
-rw-r--r--drivers/base/power/power.h94
-rw-r--r--drivers/base/power/qos.c886
-rw-r--r--drivers/base/power/runtime.c1487
-rw-r--r--drivers/base/power/sysfs.c682
-rw-r--r--drivers/base/power/trace.c43
-rw-r--r--drivers/base/power/wakeup.c907
-rw-r--r--drivers/base/regmap/Kconfig25
-rw-r--r--drivers/base/regmap/Makefile8
-rw-r--r--drivers/base/regmap/internal.h235
-rw-r--r--drivers/base/regmap/regcache-flat.c72
-rw-r--r--drivers/base/regmap/regcache-lzo.c378
-rw-r--r--drivers/base/regmap/regcache-rbtree.c539
-rw-r--r--drivers/base/regmap/regcache.c707
-rw-r--r--drivers/base/regmap/regmap-debugfs.c583
-rw-r--r--drivers/base/regmap/regmap-i2c.c233
-rw-r--r--drivers/base/regmap/regmap-irq.c598
-rw-r--r--drivers/base/regmap/regmap-mmio.c350
-rw-r--r--drivers/base/regmap/regmap-spi.c147
-rw-r--r--drivers/base/regmap/regmap-spmi.c256
-rw-r--r--drivers/base/regmap/regmap.c2564
-rw-r--r--drivers/base/reservation.c39
-rw-r--r--drivers/base/soc.c181
-rw-r--r--drivers/base/sys.c528
-rw-r--r--drivers/base/syscore.c132
-rw-r--r--drivers/base/topology.c126
-rw-r--r--drivers/base/transport_class.c1
-rw-r--r--drivers/bcma/Kconfig92
-rw-r--r--drivers/bcma/Makefile14
-rw-r--r--drivers/bcma/README19
-rw-r--r--drivers/bcma/TODO3
-rw-r--r--drivers/bcma/bcma_private.h112
-rw-r--r--drivers/bcma/core.c156
-rw-r--r--drivers/bcma/driver_chipcommon.c354
-rw-r--r--drivers/bcma/driver_chipcommon_nflash.c44
-rw-r--r--drivers/bcma/driver_chipcommon_pmu.c650
-rw-r--r--drivers/bcma/driver_chipcommon_sflash.c165
-rw-r--r--drivers/bcma/driver_gmac_cmn.c14
-rw-r--r--drivers/bcma/driver_gpio.c254
-rw-r--r--drivers/bcma/driver_mips.c374
-rw-r--r--drivers/bcma/driver_pci.c335
-rw-r--r--drivers/bcma/driver_pci_host.c622
-rw-r--r--drivers/bcma/host_pci.c303
-rw-r--r--drivers/bcma/host_soc.c183
-rw-r--r--drivers/bcma/main.c508
-rw-r--r--drivers/bcma/scan.c579
-rw-r--r--drivers/bcma/scan.h56
-rw-r--r--drivers/bcma/sprom.c618
-rw-r--r--drivers/block/DAC960.c296
-rw-r--r--drivers/block/Kconfig199
-rw-r--r--drivers/block/Makefile21
-rw-r--r--drivers/block/amiflop.c213
-rw-r--r--drivers/block/aoe/Makefile2
-rw-r--r--drivers/block/aoe/aoe.h146
-rw-r--r--drivers/block/aoe/aoeblk.c305
-rw-r--r--drivers/block/aoe/aoechr.c42
-rw-r--r--drivers/block/aoe/aoecmd.c1800
-rw-r--r--drivers/block/aoe/aoedev.c455
-rw-r--r--drivers/block/aoe/aoemain.c12
-rw-r--r--drivers/block/aoe/aoenet.c78
-rw-r--r--drivers/block/ataflop.c196
-rw-r--r--drivers/block/brd.c188
-rw-r--r--drivers/block/cciss.c5258
-rw-r--r--drivers/block/cciss.h221
-rw-r--r--drivers/block/cciss_cmd.h245
-rw-r--r--drivers/block/cciss_scsi.c963
-rw-r--r--drivers/block/cciss_scsi.h22
-rw-r--r--drivers/block/cpqarray.c196
-rw-r--r--drivers/block/cryptoloop.c2
-rw-r--r--drivers/block/drbd/Kconfig73
-rw-r--r--drivers/block/drbd/Makefile7
-rw-r--r--drivers/block/drbd/drbd_actlog.c1338
-rw-r--r--drivers/block/drbd/drbd_bitmap.c1694
-rw-r--r--drivers/block/drbd/drbd_int.h2229
-rw-r--r--drivers/block/drbd/drbd_interval.c207
-rw-r--r--drivers/block/drbd/drbd_interval.h40
-rw-r--r--drivers/block/drbd/drbd_main.c3908
-rw-r--r--drivers/block/drbd/drbd_nl.c3660
-rw-r--r--drivers/block/drbd/drbd_nla.c54
-rw-r--r--drivers/block/drbd/drbd_nla.h8
-rw-r--r--drivers/block/drbd/drbd_proc.c333
-rw-r--r--drivers/block/drbd/drbd_protocol.h307
-rw-r--r--drivers/block/drbd/drbd_receiver.c5549
-rw-r--r--drivers/block/drbd/drbd_req.c1453
-rw-r--r--drivers/block/drbd/drbd_req.h350
-rw-r--r--drivers/block/drbd/drbd_state.c1884
-rw-r--r--drivers/block/drbd/drbd_state.h161
-rw-r--r--drivers/block/drbd/drbd_strings.c118
-rw-r--r--drivers/block/drbd/drbd_strings.h9
-rw-r--r--drivers/block/drbd/drbd_vli.h351
-rw-r--r--drivers/block/drbd/drbd_worker.c1958
-rw-r--r--drivers/block/floppy.c2204
-rw-r--r--drivers/block/hd.c159
-rw-r--r--drivers/block/loop.c962
-rw-r--r--drivers/block/loop.h85
-rw-r--r--drivers/block/mg_disk.c1113
-rw-r--r--drivers/block/mtip32xx/Kconfig9
-rw-r--r--drivers/block/mtip32xx/Makefile5
-rw-r--r--drivers/block/mtip32xx/mtip32xx.c4741
-rw-r--r--drivers/block/mtip32xx/mtip32xx.h511
-rw-r--r--drivers/block/nbd.c569
-rw-r--r--drivers/block/null_blk.c619
-rw-r--r--drivers/block/nvme-core.c2977
-rw-r--r--drivers/block/nvme-scsi.c3168
-rw-r--r--drivers/block/osdblk.c699
-rw-r--r--drivers/block/paride/Kconfig4
-rw-r--r--drivers/block/paride/bpck6.c5
-rw-r--r--drivers/block/paride/pcd.c94
-rw-r--r--drivers/block/paride/pd.c56
-rw-r--r--drivers/block/paride/pf.c109
-rw-r--r--drivers/block/paride/pg.c16
-rw-r--r--drivers/block/paride/pt.c28
-rw-r--r--drivers/block/pktcdvd.c835
-rw-r--r--drivers/block/ps3disk.c97
-rw-r--r--drivers/block/ps3vram.c878
-rw-r--r--drivers/block/rbd.c5566
-rw-r--r--drivers/block/rbd_types.h81
-rw-r--r--drivers/block/rsxx/Makefile2
-rw-r--r--drivers/block/rsxx/config.c211
-rw-r--r--drivers/block/rsxx/core.c1193
-rw-r--r--drivers/block/rsxx/cregs.c804
-rw-r--r--drivers/block/rsxx/dev.c360
-rw-r--r--drivers/block/rsxx/dma.c1104
-rw-r--r--drivers/block/rsxx/rsxx.h47
-rw-r--r--drivers/block/rsxx/rsxx_cfg.h72
-rw-r--r--drivers/block/rsxx/rsxx_priv.h434
-rw-r--r--drivers/block/skd_main.c5417
-rw-r--r--drivers/block/skd_s1120.h330
-rw-r--r--drivers/block/smart1,2.h2
-rw-r--r--drivers/block/sunvdc.c37
-rw-r--r--drivers/block/swim.c995
-rw-r--r--drivers/block/swim3.c501
-rw-r--r--drivers/block/swim_asm.S247
-rw-r--r--drivers/block/sx8.c64
-rw-r--r--drivers/block/ub.c2500
-rw-r--r--drivers/block/umem.c115
-rw-r--r--drivers/block/viodasd.c814
-rw-r--r--drivers/block/virtio_blk.c808
-rw-r--r--drivers/block/xd.c1106
-rw-r--r--drivers/block/xd.h134
-rw-r--r--drivers/block/xen-blkback/Makefile3
-rw-r--r--drivers/block/xen-blkback/blkback.c1399
-rw-r--r--drivers/block/xen-blkback/common.h486
-rw-r--r--drivers/block/xen-blkback/xenbus.c930
-rw-r--r--drivers/block/xen-blkfront.c1587
-rw-r--r--drivers/block/xsysace.c267
-rw-r--r--drivers/block/z2ram.c60
-rw-r--r--drivers/block/zram/Kconfig34
-rw-r--r--drivers/block/zram/Makefile5
-rw-r--r--drivers/block/zram/zcomp.c353
-rw-r--r--drivers/block/zram/zcomp.h68
-rw-r--r--drivers/block/zram/zcomp_lz4.c47
-rw-r--r--drivers/block/zram/zcomp_lz4.h17
-rw-r--r--drivers/block/zram/zcomp_lzo.c47
-rw-r--r--drivers/block/zram/zcomp_lzo.h17
-rw-r--r--drivers/block/zram/zram_drv.c1046
-rw-r--r--drivers/block/zram/zram_drv.h106
-rw-r--r--drivers/bluetooth/Kconfig74
-rw-r--r--drivers/bluetooth/Makefile12
-rw-r--r--drivers/bluetooth/ath3k.c529
-rw-r--r--drivers/bluetooth/bcm203x.c47
-rw-r--r--drivers/bluetooth/bfusb.c120
-rw-r--r--drivers/bluetooth/bluecard_cs.c174
-rw-r--r--drivers/bluetooth/bpa10x.c74
-rw-r--r--drivers/bluetooth/bt3c_cs.c187
-rw-r--r--drivers/bluetooth/btmrvl_debugfs.c224
-rw-r--r--drivers/bluetooth/btmrvl_drv.h154
-rw-r--r--drivers/bluetooth/btmrvl_main.c693
-rw-r--r--drivers/bluetooth/btmrvl_sdio.c1278
-rw-r--r--drivers/bluetooth/btmrvl_sdio.h115
-rw-r--r--drivers/bluetooth/btsdio.c49
-rw-r--r--drivers/bluetooth/btuart_cs.c184
-rw-r--r--drivers/bluetooth/btusb.c1139
-rw-r--r--drivers/bluetooth/btwilink.c363
-rw-r--r--drivers/bluetooth/dtl1_cs.c189
-rw-r--r--drivers/bluetooth/hci_ath.c240
-rw-r--r--drivers/bluetooth/hci_bcsp.c53
-rw-r--r--drivers/bluetooth/hci_h4.c149
-rw-r--r--drivers/bluetooth/hci_h5.c750
-rw-r--r--drivers/bluetooth/hci_ldisc.c188
-rw-r--r--drivers/bluetooth/hci_ll.c43
-rw-r--r--drivers/bluetooth/hci_uart.h28
-rw-r--r--drivers/bluetooth/hci_vhci.c316
-rw-r--r--drivers/bus/Kconfig62
-rw-r--r--drivers/bus/Makefile15
-rw-r--r--drivers/bus/arm-cci.c1132
-rw-r--r--drivers/bus/brcmstb_gisb.c289
-rw-r--r--drivers/bus/imx-weim.c215
-rw-r--r--drivers/bus/mvebu-mbus.c943
-rw-r--r--drivers/bus/omap-ocp2scp.c90
-rw-r--r--drivers/bus/omap_l3_noc.c318
-rw-r--r--drivers/bus/omap_l3_noc.h475
-rw-r--r--drivers/bus/omap_l3_smx.c297
-rw-r--r--drivers/bus/omap_l3_smx.h338
-rw-r--r--drivers/bus/vexpress-config.c202
-rw-r--r--drivers/cdrom/Makefile1
-rw-r--r--drivers/cdrom/cdrom.c1444
-rw-r--r--drivers/cdrom/gdrom.c215
-rw-r--r--drivers/cdrom/viocd.c753
-rw-r--r--drivers/char/ChangeLog775
-rw-r--r--drivers/char/Kconfig641
-rw-r--r--drivers/char/Makefile86
-rw-r--r--drivers/char/agp/Kconfig14
-rw-r--r--drivers/char/agp/Makefile1
-rw-r--r--drivers/char/agp/agp.h104
-rw-r--r--drivers/char/agp/ali-agp.c40
-rw-r--r--drivers/char/agp/alpha-agp.c4
-rw-r--r--drivers/char/agp/amd-k7-agp.c66
-rw-r--r--drivers/char/agp/amd64-agp.c167
-rw-r--r--drivers/char/agp/ati-agp.c68
-rw-r--r--drivers/char/agp/backend.c45
-rw-r--r--drivers/char/agp/compat_ioctl.c2
-rw-r--r--drivers/char/agp/compat_ioctl.h1
-rw-r--r--drivers/char/agp/efficeon-agp.c41
-rw-r--r--drivers/char/agp/frontend.c47
-rw-r--r--drivers/char/agp/generic.c149
-rw-r--r--drivers/char/agp/hp-agp.c38
-rw-r--r--drivers/char/agp/i460-agp.c48
-rw-r--r--drivers/char/agp/intel-agp.c1659
-rw-r--r--drivers/char/agp/intel-agp.h193
-rw-r--r--drivers/char/agp/intel-gtt.c1446
-rw-r--r--drivers/char/agp/nvidia-agp.c25
-rw-r--r--drivers/char/agp/parisc-agp.c48
-rw-r--r--drivers/char/agp/sgi-agp.c23
-rw-r--r--drivers/char/agp/sis-agp.c27
-rw-r--r--drivers/char/agp/sworks-agp.c18
-rw-r--r--drivers/char/agp/uninorth-agp.c159
-rw-r--r--drivers/char/agp/via-agp.c24
-rw-r--r--drivers/char/amiserial.c2161
-rw-r--r--drivers/char/apm-emulation.c52
-rw-r--r--drivers/char/applicom.c33
-rw-r--r--drivers/char/bfin-otp.c176
-rw-r--r--drivers/char/briq_panel.c267
-rw-r--r--drivers/char/bsr.c78
-rw-r--r--drivers/char/cd1865.h263
-rw-r--r--drivers/char/cs5535_gpio.c259
-rw-r--r--drivers/char/cyclades.c5424
-rw-r--r--drivers/char/digi1.h100
-rw-r--r--drivers/char/digiFep1.h136
-rw-r--r--drivers/char/digiPCI.h42
-rw-r--r--drivers/char/ds1302.c17
-rw-r--r--drivers/char/ds1620.c63
-rw-r--r--drivers/char/dsp56k.c37
-rw-r--r--drivers/char/dtlk.c31
-rw-r--r--drivers/char/efirtc.c97
-rw-r--r--drivers/char/epca.c2784
-rw-r--r--drivers/char/epca.h158
-rw-r--r--drivers/char/epcaconfig.h7
-rw-r--r--drivers/char/esp.c2534
-rw-r--r--drivers/char/generic_nvram.c58
-rw-r--r--drivers/char/generic_serial.c842
-rw-r--r--drivers/char/genrtc.c76
-rw-r--r--drivers/char/hangcheck-timer.c22
-rw-r--r--drivers/char/hpet.c289
-rw-r--r--drivers/char/hvc_iseries.c598
-rw-r--r--drivers/char/hvc_iucv.c970
-rw-r--r--drivers/char/hvc_vio.c173
-rw-r--r--drivers/char/hvc_xen.c213
-rw-r--r--drivers/char/hw_random/Kconfig245
-rw-r--r--drivers/char/hw_random/Makefile15
-rw-r--r--drivers/char/hw_random/amd-rng.c13
-rw-r--r--drivers/char/hw_random/atmel-rng.c142
-rw-r--r--drivers/char/hw_random/bcm2835-rng.c112
-rw-r--r--drivers/char/hw_random/bcm63xx-rng.c173
-rw-r--r--drivers/char/hw_random/core.c186
-rw-r--r--drivers/char/hw_random/exynos-rng.c183
-rw-r--r--drivers/char/hw_random/geode-rng.c3
-rw-r--r--drivers/char/hw_random/intel-rng.c10
-rw-r--r--drivers/char/hw_random/ixp4xx-rng.c5
-rw-r--r--drivers/char/hw_random/msm-rng.c197
-rw-r--r--drivers/char/hw_random/mxc-rnga.c218
-rw-r--r--drivers/char/hw_random/n2-drv.c103
-rw-r--r--drivers/char/hw_random/n2rng.h4
-rw-r--r--drivers/char/hw_random/nomadik-rng.c106
-rw-r--r--drivers/char/hw_random/octeon-rng.c129
-rw-r--r--drivers/char/hw_random/omap-rng.c455
-rw-r--r--drivers/char/hw_random/omap3-rom-rng.c140
-rw-r--r--drivers/char/hw_random/pasemi-rng.c29
-rw-r--r--drivers/char/hw_random/powernv-rng.c81
-rw-r--r--drivers/char/hw_random/ppc4xx-rng.c147
-rw-r--r--drivers/char/hw_random/pseries-rng.c103
-rw-r--r--drivers/char/hw_random/timeriomem-rng.c214
-rw-r--r--drivers/char/hw_random/tpm-rng.c50
-rw-r--r--drivers/char/hw_random/tx4939-rng.c169
-rw-r--r--drivers/char/hw_random/via-rng.c32
-rw-r--r--drivers/char/hw_random/virtio-rng.c206
-rw-r--r--drivers/char/i8k.c398
-rw-r--r--drivers/char/ip2/Makefile8
-rw-r--r--drivers/char/ip2/i2cmd.c210
-rw-r--r--drivers/char/ip2/i2cmd.h630
-rw-r--r--drivers/char/ip2/i2ellis.c1403
-rw-r--r--drivers/char/ip2/i2ellis.h566
-rw-r--r--drivers/char/ip2/i2hw.h652
-rw-r--r--drivers/char/ip2/i2lib.c2214
-rw-r--r--drivers/char/ip2/i2lib.h351
-rw-r--r--drivers/char/ip2/i2pack.h364
-rw-r--r--drivers/char/ip2/ip2.h107
-rw-r--r--drivers/char/ip2/ip2ioctl.h35
-rw-r--r--drivers/char/ip2/ip2main.c3205
-rw-r--r--drivers/char/ip2/ip2trace.h42
-rw-r--r--drivers/char/ip2/ip2types.h57
-rw-r--r--drivers/char/ipmi/Kconfig12
-rw-r--r--drivers/char/ipmi/Makefile2
-rw-r--r--drivers/char/ipmi/ipmi_bt_sm.c18
-rw-r--r--drivers/char/ipmi/ipmi_devintf.c58
-rw-r--r--drivers/char/ipmi/ipmi_kcs_sm.c11
-rw-r--r--drivers/char/ipmi/ipmi_msghandler.c902
-rw-r--r--drivers/char/ipmi/ipmi_poweroff.c23
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c1357
-rw-r--r--drivers/char/ipmi/ipmi_smic_sm.c2
-rw-r--r--drivers/char/ipmi/ipmi_watchdog.c176
-rw-r--r--drivers/char/istallion.c4569
-rw-r--r--drivers/char/keyboard.c1428
-rw-r--r--drivers/char/lp.c132
-rw-r--r--drivers/char/mbcs.c19
-rw-r--r--drivers/char/mbcs.h4
-rw-r--r--drivers/char/mem.c688
-rw-r--r--drivers/char/misc.c88
-rw-r--r--drivers/char/mmtimer.c104
-rw-r--r--drivers/char/msm_smd_pkt.c465
-rw-r--r--drivers/char/mspec.c27
-rw-r--r--drivers/char/mwave/3780i.c2
-rw-r--r--drivers/char/mwave/3780i.h2
-rw-r--r--drivers/char/mwave/Makefile6
-rw-r--r--drivers/char/mwave/README2
-rw-r--r--drivers/char/mwave/mwavedd.c85
-rw-r--r--drivers/char/mwave/tp3780i.c1
-rw-r--r--drivers/char/n_tty.c2114
-rw-r--r--drivers/char/nsc_gpio.c4
-rw-r--r--drivers/char/nvram.c39
-rw-r--r--drivers/char/nwbutton.c14
-rw-r--r--drivers/char/nwflash.c55
-rw-r--r--drivers/char/pc8736x_gpio.c6
-rw-r--r--drivers/char/pcmcia/Kconfig12
-rw-r--r--drivers/char/pcmcia/Makefile2
-rw-r--r--drivers/char/pcmcia/cm4000_cs.c173
-rw-r--r--drivers/char/pcmcia/cm4040_cs.c127
-rw-r--r--drivers/char/pcmcia/ipwireless/Makefile10
-rw-r--r--drivers/char/pcmcia/ipwireless/main.c500
-rw-r--r--drivers/char/pcmcia/ipwireless/main.h75
-rw-r--r--drivers/char/pcmcia/synclink_cs.c1141
-rw-r--r--drivers/char/ppdev.c59
-rw-r--r--drivers/char/ps3flash.c328
-rw-r--r--drivers/char/pty.c766
-rw-r--r--drivers/char/random.c1522
-rw-r--r--drivers/char/raw.c325
-rw-r--r--drivers/char/rio/Makefile12
-rw-r--r--drivers/char/rio/board.h132
-rw-r--r--drivers/char/rio/cirrus.h210
-rw-r--r--drivers/char/rio/cmdblk.h53
-rw-r--r--drivers/char/rio/cmdpkt.h177
-rw-r--r--drivers/char/rio/daemon.h307
-rw-r--r--drivers/char/rio/errors.h98
-rw-r--r--drivers/char/rio/func.h143
-rw-r--r--drivers/char/rio/host.h123
-rw-r--r--drivers/char/rio/link.h96
-rw-r--r--drivers/char/rio/linux_compat.h77
-rw-r--r--drivers/char/rio/map.h98
-rw-r--r--drivers/char/rio/param.h55
-rw-r--r--drivers/char/rio/parmmap.h81
-rw-r--r--drivers/char/rio/pci.h72
-rw-r--r--drivers/char/rio/phb.h142
-rw-r--r--drivers/char/rio/pkt.h77
-rw-r--r--drivers/char/rio/port.h179
-rw-r--r--drivers/char/rio/protsts.h110
-rw-r--r--drivers/char/rio/rio.h208
-rw-r--r--drivers/char/rio/rio_linux.c1201
-rw-r--r--drivers/char/rio/rio_linux.h197
-rw-r--r--drivers/char/rio/rioboard.h275
-rw-r--r--drivers/char/rio/rioboot.c1113
-rw-r--r--drivers/char/rio/riocmd.c938
-rw-r--r--drivers/char/rio/rioctrl.c1503
-rw-r--r--drivers/char/rio/riodrvr.h138
-rw-r--r--drivers/char/rio/rioinfo.h92
-rw-r--r--drivers/char/rio/rioinit.c422
-rw-r--r--drivers/char/rio/riointr.c646
-rw-r--r--drivers/char/rio/rioioctl.h57
-rw-r--r--drivers/char/rio/rioparam.c664
-rw-r--r--drivers/char/rio/rioroute.c1040
-rw-r--r--drivers/char/rio/riospace.h154
-rw-r--r--drivers/char/rio/riotable.c941
-rw-r--r--drivers/char/rio/riotty.c654
-rw-r--r--drivers/char/rio/route.h101
-rw-r--r--drivers/char/rio/rup.h69
-rw-r--r--drivers/char/rio/unixrup.h51
-rw-r--r--drivers/char/riscom8.c1569
-rw-r--r--drivers/char/riscom8.h91
-rw-r--r--drivers/char/riscom8_reg.h254
-rw-r--r--drivers/char/rtc.c39
-rw-r--r--drivers/char/scc.h613
-rw-r--r--drivers/char/scx200_gpio.c3
-rw-r--r--drivers/char/selection.c339
-rw-r--r--drivers/char/ser_a2232.c830
-rw-r--r--drivers/char/ser_a2232.h202
-rw-r--r--drivers/char/ser_a2232fw.ax529
-rw-r--r--drivers/char/ser_a2232fw.h306
-rw-r--r--drivers/char/serial167.c2715
-rw-r--r--drivers/char/snsc.c13
-rw-r--r--drivers/char/snsc.h1
-rw-r--r--drivers/char/snsc_event.c4
-rw-r--r--drivers/char/sonypi.c114
-rw-r--r--drivers/char/specialix.c2367
-rw-r--r--drivers/char/specialix_io8.h140
-rw-r--r--drivers/char/stallion.c4717
-rw-r--r--drivers/char/sx.c2890
-rw-r--r--drivers/char/sx.h201
-rw-r--r--drivers/char/sxboards.h206
-rw-r--r--drivers/char/sxwindow.h393
-rw-r--r--drivers/char/sysrq.c588
-rw-r--r--drivers/char/tb0219.c21
-rw-r--r--drivers/char/tile-srom.c462
-rw-r--r--drivers/char/tlclk.c16
-rw-r--r--drivers/char/toshiba.c14
-rw-r--r--drivers/char/tpm/Kconfig72
-rw-r--r--drivers/char/tpm/Makefile15
-rw-r--r--drivers/char/tpm/tpm-dev.c213
-rw-r--r--drivers/char/tpm/tpm-interface.c1122
-rw-r--r--drivers/char/tpm/tpm-sysfs.c318
-rw-r--r--drivers/char/tpm/tpm.c1260
-rw-r--r--drivers/char/tpm/tpm.h294
-rw-r--r--drivers/char/tpm/tpm_acpi.c109
-rw-r--r--drivers/char/tpm/tpm_atmel.c55
-rw-r--r--drivers/char/tpm/tpm_bios.c554
-rw-r--r--drivers/char/tpm/tpm_eventlog.c416
-rw-r--r--drivers/char/tpm/tpm_eventlog.h86
-rw-r--r--drivers/char/tpm/tpm_i2c_atmel.c244
-rw-r--r--drivers/char/tpm/tpm_i2c_infineon.c747
-rw-r--r--drivers/char/tpm/tpm_i2c_nuvoton.c669
-rw-r--r--drivers/char/tpm/tpm_i2c_stm_st33.c844
-rw-r--r--drivers/char/tpm/tpm_i2c_stm_st33.h61
-rw-r--r--drivers/char/tpm/tpm_ibmvtpm.c690
-rw-r--r--drivers/char/tpm/tpm_ibmvtpm.h76
-rw-r--r--drivers/char/tpm/tpm_infineon.c119
-rw-r--r--drivers/char/tpm/tpm_nsc.c63
-rw-r--r--drivers/char/tpm/tpm_of.c73
-rw-r--r--drivers/char/tpm/tpm_ppi.c338
-rw-r--r--drivers/char/tpm/tpm_tis.c462
-rw-r--r--drivers/char/tpm/xen-tpmfront.c397
-rw-r--r--drivers/char/tty_audit.c348
-rw-r--r--drivers/char/tty_buffer.c511
-rw-r--r--drivers/char/tty_io.c3149
-rw-r--r--drivers/char/tty_ioctl.c1145
-rw-r--r--drivers/char/tty_ldisc.c726
-rw-r--r--drivers/char/tty_port.c321
-rw-r--r--drivers/char/ttyprintk.c228
-rw-r--r--drivers/char/uv_mmtimer.c220
-rw-r--r--drivers/char/vc_screen.c505
-rw-r--r--drivers/char/viotape.c1038
-rw-r--r--drivers/char/virtio_console.c2319
-rw-r--r--drivers/char/vme_scc.c1146
-rw-r--r--drivers/char/vr41xx_giu.c680
-rw-r--r--drivers/char/vt_ioctl.c1392
-rw-r--r--drivers/char/xilinx_hwicap/xilinx_hwicap.c191
-rw-r--r--drivers/char/xilinx_hwicap/xilinx_hwicap.h12
-rw-r--r--drivers/clk/Kconfig112
-rw-r--r--drivers/clk/Makefile60
-rw-r--r--drivers/clk/at91/Makefile11
-rw-r--r--drivers/clk/at91/clk-main.c638
-rw-r--r--drivers/clk/at91/clk-master.c270
-rw-r--r--drivers/clk/at91/clk-peripheral.c410
-rw-r--r--drivers/clk/at91/clk-pll.c531
-rw-r--r--drivers/clk/at91/clk-plldiv.c135
-rw-r--r--drivers/clk/at91/clk-programmable.c286
-rw-r--r--drivers/clk/at91/clk-slow.c467
-rw-r--r--drivers/clk/at91/clk-smd.c171
-rw-r--r--drivers/clk/at91/clk-system.c189
-rw-r--r--drivers/clk/at91/clk-usb.c398
-rw-r--r--drivers/clk/at91/clk-utmi.c159
-rw-r--r--drivers/clk/at91/pmc.c412
-rw-r--r--drivers/clk/at91/pmc.h123
-rw-r--r--drivers/clk/at91/sckc.c57
-rw-r--r--drivers/clk/at91/sckc.h22
-rw-r--r--drivers/clk/bcm/Kconfig9
-rw-r--r--drivers/clk/bcm/Makefile4
-rw-r--r--drivers/clk/bcm/clk-bcm21664.c290
-rw-r--r--drivers/clk/bcm/clk-bcm281xx.c375
-rw-r--r--drivers/clk/bcm/clk-kona-setup.c877
-rw-r--r--drivers/clk/bcm/clk-kona.c1281
-rw-r--r--drivers/clk/bcm/clk-kona.h516
-rw-r--r--drivers/clk/berlin/Makefile4
-rw-r--r--drivers/clk/berlin/berlin2-avpll.c393
-rw-r--r--drivers/clk/berlin/berlin2-avpll.h36
-rw-r--r--drivers/clk/berlin/berlin2-div.c265
-rw-r--r--drivers/clk/berlin/berlin2-div.h89
-rw-r--r--drivers/clk/berlin/berlin2-pll.c117
-rw-r--r--drivers/clk/berlin/berlin2-pll.h37
-rw-r--r--drivers/clk/berlin/bg2.c691
-rw-r--r--drivers/clk/berlin/bg2q.c389
-rw-r--r--drivers/clk/berlin/common.h29
-rw-r--r--drivers/clk/clk-axi-clkgen.c557
-rw-r--r--drivers/clk/clk-axm5516.c615
-rw-r--r--drivers/clk/clk-bcm2835.c60
-rw-r--r--drivers/clk/clk-composite.c238
-rw-r--r--drivers/clk/clk-devres.c55
-rw-r--r--drivers/clk/clk-divider.c465
-rw-r--r--drivers/clk/clk-efm32gg.c81
-rw-r--r--drivers/clk/clk-fixed-factor.c136
-rw-r--r--drivers/clk/clk-fixed-rate.c137
-rw-r--r--drivers/clk/clk-fractional-divider.c135
-rw-r--r--drivers/clk/clk-gate.c164
-rw-r--r--drivers/clk/clk-highbank.c342
-rw-r--r--drivers/clk/clk-ls1x.c111
-rw-r--r--drivers/clk/clk-max77686.c252
-rw-r--r--drivers/clk/clk-moxart.c97
-rw-r--r--drivers/clk/clk-mux.c179
-rw-r--r--drivers/clk/clk-nomadik.c579
-rw-r--r--drivers/clk/clk-nspire.c153
-rw-r--r--drivers/clk/clk-ppc-corenet.c307
-rw-r--r--drivers/clk/clk-s2mps11.c323
-rw-r--r--drivers/clk/clk-si5351.c1587
-rw-r--r--drivers/clk/clk-si5351.h170
-rw-r--r--drivers/clk/clk-si570.c531
-rw-r--r--drivers/clk/clk-twl6040.c126
-rw-r--r--drivers/clk/clk-u300.c1195
-rw-r--r--drivers/clk/clk-vt8500.c720
-rw-r--r--drivers/clk/clk-wm831x.c408
-rw-r--r--drivers/clk/clk-xgene.c521
-rw-r--r--drivers/clk/clk.c2626
-rw-r--r--drivers/clk/clk.h17
-rw-r--r--drivers/clk/clkdev.c359
-rw-r--r--drivers/clk/hisilicon/Makefile9
-rw-r--r--drivers/clk/hisilicon/clk-hi3620.c506
-rw-r--r--drivers/clk/hisilicon/clk-hip04.c58
-rw-r--r--drivers/clk/hisilicon/clk-hix5hd2.c101
-rw-r--r--drivers/clk/hisilicon/clk.c234
-rw-r--r--drivers/clk/hisilicon/clk.h111
-rw-r--r--drivers/clk/hisilicon/clkgate-separated.c130
-rw-r--r--drivers/clk/keystone/Makefile1
-rw-r--r--drivers/clk/keystone/gate.c269
-rw-r--r--drivers/clk/keystone/pll.c321
-rw-r--r--drivers/clk/mmp/Makefile9
-rw-r--r--drivers/clk/mmp/clk-apbc.c152
-rw-r--r--drivers/clk/mmp/clk-apmu.c97
-rw-r--r--drivers/clk/mmp/clk-frac.c157
-rw-r--r--drivers/clk/mmp/clk-mmp2.c462
-rw-r--r--drivers/clk/mmp/clk-pxa168.c358
-rw-r--r--drivers/clk/mmp/clk-pxa910.c329
-rw-r--r--drivers/clk/mmp/clk.h35
-rw-r--r--drivers/clk/mvebu/Kconfig40
-rw-r--r--drivers/clk/mvebu/Makefile11
-rw-r--r--drivers/clk/mvebu/armada-370.c175
-rw-r--r--drivers/clk/mvebu/armada-375.c184
-rw-r--r--drivers/clk/mvebu/armada-38x.c167
-rw-r--r--drivers/clk/mvebu/armada-xp.c208
-rw-r--r--drivers/clk/mvebu/clk-corediv.c315
-rw-r--r--drivers/clk/mvebu/clk-cpu.c178
-rw-r--r--drivers/clk/mvebu/common.c169
-rw-r--r--drivers/clk/mvebu/common.h48
-rw-r--r--drivers/clk/mvebu/dove.c193
-rw-r--r--drivers/clk/mvebu/kirkwood.c245
-rw-r--r--drivers/clk/mvebu/orion.c210
-rw-r--r--drivers/clk/mxs/Makefile8
-rw-r--r--drivers/clk/mxs/clk-div.c110
-rw-r--r--drivers/clk/mxs/clk-frac.c139
-rw-r--r--drivers/clk/mxs/clk-imx23.c177
-rw-r--r--drivers/clk/mxs/clk-imx28.c255
-rw-r--r--drivers/clk/mxs/clk-pll.c116
-rw-r--r--drivers/clk/mxs/clk-ref.c154
-rw-r--r--drivers/clk/mxs/clk-ssp.c62
-rw-r--r--drivers/clk/mxs/clk.c29
-rw-r--r--drivers/clk/mxs/clk.h66
-rw-r--r--drivers/clk/qcom/Kconfig47
-rw-r--r--drivers/clk/qcom/Makefile15
-rw-r--r--drivers/clk/qcom/clk-branch.c159
-rw-r--r--drivers/clk/qcom/clk-branch.h56
-rw-r--r--drivers/clk/qcom/clk-pll.c222
-rw-r--r--drivers/clk/qcom/clk-pll.h66
-rw-r--r--drivers/clk/qcom/clk-rcg.c517
-rw-r--r--drivers/clk/qcom/clk-rcg.h162
-rw-r--r--drivers/clk/qcom/clk-rcg2.c561
-rw-r--r--drivers/clk/qcom/clk-regmap.c114
-rw-r--r--drivers/clk/qcom/clk-regmap.h45
-rw-r--r--drivers/clk/qcom/common.c101
-rw-r--r--drivers/clk/qcom/common.h34
-rw-r--r--drivers/clk/qcom/gcc-msm8660.c2766
-rw-r--r--drivers/clk/qcom/gcc-msm8960.c2964
-rw-r--r--drivers/clk/qcom/gcc-msm8974.c2759
-rw-r--r--drivers/clk/qcom/mmcc-msm8960.c2265
-rw-r--r--drivers/clk/qcom/mmcc-msm8974.c2583
-rw-r--r--drivers/clk/qcom/reset.c63
-rw-r--r--drivers/clk/qcom/reset.h37
-rw-r--r--drivers/clk/rockchip/Makefile5
-rw-r--r--drivers/clk/rockchip/clk-rockchip.c93
-rw-r--r--drivers/clk/samsung/Kconfig26
-rw-r--r--drivers/clk/samsung/Makefile18
-rw-r--r--drivers/clk/samsung/clk-exynos-audss.c248
-rw-r--r--drivers/clk/samsung/clk-exynos3250.c780
-rw-r--r--drivers/clk/samsung/clk-exynos4.c1274
-rw-r--r--drivers/clk/samsung/clk-exynos5250.c826
-rw-r--r--drivers/clk/samsung/clk-exynos5260.c1980
-rw-r--r--drivers/clk/samsung/clk-exynos5260.h459
-rw-r--r--drivers/clk/samsung/clk-exynos5410.c209
-rw-r--r--drivers/clk/samsung/clk-exynos5420.c1268
-rw-r--r--drivers/clk/samsung/clk-exynos5440.c129
-rw-r--r--drivers/clk/samsung/clk-pll.c1298
-rw-r--r--drivers/clk/samsung/clk-pll.h104
-rw-r--r--drivers/clk/samsung/clk-s3c2410-dclk.c440
-rw-r--r--drivers/clk/samsung/clk-s3c2410.c487
-rw-r--r--drivers/clk/samsung/clk-s3c2412.c274
-rw-r--r--drivers/clk/samsung/clk-s3c2443.c466
-rw-r--r--drivers/clk/samsung/clk-s3c64xx.c538
-rw-r--r--drivers/clk/samsung/clk.c314
-rw-r--r--drivers/clk/samsung/clk.h375
-rw-r--r--drivers/clk/shmobile/Makefile10
-rw-r--r--drivers/clk/shmobile/clk-div6.c185
-rw-r--r--drivers/clk/shmobile/clk-emev2.c104
-rw-r--r--drivers/clk/shmobile/clk-mstp.c238
-rw-r--r--drivers/clk/shmobile/clk-r8a7740.c199
-rw-r--r--drivers/clk/shmobile/clk-r8a7779.c180
-rw-r--r--drivers/clk/shmobile/clk-rcar-gen2.c338
-rw-r--r--drivers/clk/shmobile/clk-rz.c103
-rw-r--r--drivers/clk/sirf/Makefile5
-rw-r--r--drivers/clk/sirf/atlas6.h31
-rw-r--r--drivers/clk/sirf/clk-atlas6.c153
-rw-r--r--drivers/clk/sirf/clk-common.c1032
-rw-r--r--drivers/clk/sirf/clk-prima2.c152
-rw-r--r--drivers/clk/sirf/prima2.h25
-rw-r--r--drivers/clk/socfpga/Makefile4
-rw-r--r--drivers/clk/socfpga/clk-gate.c262
-rw-r--r--drivers/clk/socfpga/clk-periph.c110
-rw-r--r--drivers/clk/socfpga/clk-pll.c138
-rw-r--r--drivers/clk/socfpga/clk.c27
-rw-r--r--drivers/clk/socfpga/clk.h61
-rw-r--r--drivers/clk/spear/Makefile10
-rw-r--r--drivers/clk/spear/clk-aux-synth.c199
-rw-r--r--drivers/clk/spear/clk-frac-synth.c165
-rw-r--r--drivers/clk/spear/clk-gpt-synth.c154
-rw-r--r--drivers/clk/spear/clk-vco-pll.c363
-rw-r--r--drivers/clk/spear/clk.c39
-rw-r--r--drivers/clk/spear/clk.h134
-rw-r--r--drivers/clk/spear/spear1310_clock.c1128
-rw-r--r--drivers/clk/spear/spear1340_clock.c1020
-rw-r--r--drivers/clk/spear/spear3xx_clock.c669
-rw-r--r--drivers/clk/spear/spear6xx_clock.c343
-rw-r--r--drivers/clk/st/Makefile1
-rw-r--r--drivers/clk/st/clkgen-fsyn.c1039
-rw-r--r--drivers/clk/st/clkgen-mux.c820
-rw-r--r--drivers/clk/st/clkgen-pll.c701
-rw-r--r--drivers/clk/st/clkgen.h48
-rw-r--r--drivers/clk/sunxi/Makefile9
-rw-r--r--drivers/clk/sunxi/clk-a10-hosc.c73
-rw-r--r--drivers/clk/sunxi/clk-a20-gmac.c119
-rw-r--r--drivers/clk/sunxi/clk-factors.c155
-rw-r--r--drivers/clk/sunxi/clk-factors.h29
-rw-r--r--drivers/clk/sunxi/clk-sun6i-apb0-gates.c99
-rw-r--r--drivers/clk/sunxi/clk-sun6i-apb0.c77
-rw-r--r--drivers/clk/sunxi/clk-sun6i-ar100.c233
-rw-r--r--drivers/clk/sunxi/clk-sunxi.c1238
-rw-r--r--drivers/clk/tegra/Makefile17
-rw-r--r--drivers/clk/tegra/clk-audio-sync.c87
-rw-r--r--drivers/clk/tegra/clk-divider.c187
-rw-r--r--drivers/clk/tegra/clk-id.h240
-rw-r--r--drivers/clk/tegra/clk-periph-gate.c170
-rw-r--r--drivers/clk/tegra/clk-periph.c206
-rw-r--r--drivers/clk/tegra/clk-pll-out.c123
-rw-r--r--drivers/clk/tegra/clk-pll.c1873
-rw-r--r--drivers/clk/tegra/clk-super.c166
-rw-r--r--drivers/clk/tegra/clk-tegra-audio.c215
-rw-r--r--drivers/clk/tegra/clk-tegra-fixed.c111
-rw-r--r--drivers/clk/tegra/clk-tegra-periph.c684
-rw-r--r--drivers/clk/tegra/clk-tegra-pmc.c132
-rw-r--r--drivers/clk/tegra/clk-tegra-super-gen4.c149
-rw-r--r--drivers/clk/tegra/clk-tegra114.c1486
-rw-r--r--drivers/clk/tegra/clk-tegra124.c1428
-rw-r--r--drivers/clk/tegra/clk-tegra20.c1131
-rw-r--r--drivers/clk/tegra/clk-tegra30.c1449
-rw-r--r--drivers/clk/tegra/clk.c299
-rw-r--r--drivers/clk/tegra/clk.h633
-rw-r--r--drivers/clk/ti/Makefile13
-rw-r--r--drivers/clk/ti/apll.c402
-rw-r--r--drivers/clk/ti/autoidle.c133
-rw-r--r--drivers/clk/ti/clk-2xxx.c256
-rw-r--r--drivers/clk/ti/clk-33xx.c160
-rw-r--r--drivers/clk/ti/clk-3xxx.c397
-rw-r--r--drivers/clk/ti/clk-43xx.c140
-rw-r--r--drivers/clk/ti/clk-44xx.c315
-rw-r--r--drivers/clk/ti/clk-54xx.c260
-rw-r--r--drivers/clk/ti/clk-7xx.c336
-rw-r--r--drivers/clk/ti/clk-dra7-atl.c312
-rw-r--r--drivers/clk/ti/clk.c167
-rw-r--r--drivers/clk/ti/clockdomain.c70
-rw-r--r--drivers/clk/ti/composite.c269
-rw-r--r--drivers/clk/ti/divider.c487
-rw-r--r--drivers/clk/ti/dpll.c627
-rw-r--r--drivers/clk/ti/fixed-factor.c66
-rw-r--r--drivers/clk/ti/gate.c249
-rw-r--r--drivers/clk/ti/interface.c136
-rw-r--r--drivers/clk/ti/mux.c246
-rw-r--r--drivers/clk/ux500/Makefile17
-rw-r--r--drivers/clk/ux500/abx500-clk.c138
-rw-r--r--drivers/clk/ux500/clk-prcc.c163
-rw-r--r--drivers/clk/ux500/clk-prcmu.c350
-rw-r--r--drivers/clk/ux500/clk-sysctrl.c227
-rw-r--r--drivers/clk/ux500/clk.h90
-rw-r--r--drivers/clk/ux500/u8500_clk.c525
-rw-r--r--drivers/clk/ux500/u8500_of_clk.c560
-rw-r--r--drivers/clk/ux500/u8540_clk.c579
-rw-r--r--drivers/clk/ux500/u9540_clk.c21
-rw-r--r--drivers/clk/versatile/Kconfig26
-rw-r--r--drivers/clk/versatile/Makefile8
-rw-r--r--drivers/clk/versatile/clk-icst.c164
-rw-r--r--drivers/clk/versatile/clk-icst.h20
-rw-r--r--drivers/clk/versatile/clk-impd1.c181
-rw-r--r--drivers/clk/versatile/clk-integrator.c69
-rw-r--r--drivers/clk/versatile/clk-realview.c95
-rw-r--r--drivers/clk/versatile/clk-sp810.c188
-rw-r--r--drivers/clk/versatile/clk-vexpress-osc.c137
-rw-r--r--drivers/clk/versatile/clk-vexpress.c86
-rw-r--r--drivers/clk/x86/Makefile2
-rw-r--r--drivers/clk/x86/clk-lpt.c53
-rw-r--r--drivers/clk/zynq/Makefile3
-rw-r--r--drivers/clk/zynq/clkc.c623
-rw-r--r--drivers/clk/zynq/pll.c244
-rw-r--r--drivers/clocksource/Kconfig209
-rw-r--r--drivers/clocksource/Makefile41
-rw-r--r--drivers/clocksource/acpi_pm.c59
-rw-r--r--drivers/clocksource/arm_arch_timer.c742
-rw-r--r--drivers/clocksource/arm_global_timer.c323
-rw-r--r--drivers/clocksource/bcm2835_timer.c148
-rw-r--r--drivers/clocksource/bcm_kona_timer.c214
-rw-r--r--drivers/clocksource/cadence_ttc_timer.c515
-rw-r--r--drivers/clocksource/clksrc-dbx500-prcmu.c87
-rw-r--r--drivers/clocksource/clksrc-of.c43
-rw-r--r--drivers/clocksource/cs5535-clockevt.c191
-rw-r--r--drivers/clocksource/cyclone.c119
-rw-r--r--drivers/clocksource/dummy_timer.c74
-rw-r--r--drivers/clocksource/dw_apb_timer.c388
-rw-r--r--drivers/clocksource/dw_apb_timer_of.c155
-rw-r--r--drivers/clocksource/em_sti.c394
-rw-r--r--drivers/clocksource/exynos_mct.c592
-rw-r--r--drivers/clocksource/fsl_ftm_timer.c367
-rw-r--r--drivers/clocksource/i8253.c186
-rw-r--r--drivers/clocksource/metag_generic.c200
-rw-r--r--drivers/clocksource/mmio.c73
-rw-r--r--drivers/clocksource/moxart_timer.c165
-rw-r--r--drivers/clocksource/mxs_timer.c304
-rw-r--r--drivers/clocksource/nomadik-mtu.c273
-rw-r--r--drivers/clocksource/qcom-timer.c343
-rw-r--r--drivers/clocksource/samsung_pwm_timer.c508
-rw-r--r--drivers/clocksource/scx200_hrt.c26
-rw-r--r--drivers/clocksource/sh_cmt.c1171
-rw-r--r--drivers/clocksource/sh_mtu2.c594
-rw-r--r--drivers/clocksource/sh_tmu.c706
-rw-r--r--drivers/clocksource/sun4i_timer.c200
-rw-r--r--drivers/clocksource/tcb_clksrc.c154
-rw-r--r--drivers/clocksource/tegra20_timer.c258
-rw-r--r--drivers/clocksource/time-armada-370-xp.c314
-rw-r--r--drivers/clocksource/time-efm32.c276
-rw-r--r--drivers/clocksource/time-orion.c142
-rw-r--r--drivers/clocksource/timer-keystone.c241
-rw-r--r--drivers/clocksource/timer-marco.c306
-rw-r--r--drivers/clocksource/timer-prima2.c230
-rw-r--r--drivers/clocksource/timer-sun5i.c198
-rw-r--r--drivers/clocksource/timer-u300.c447
-rw-r--r--drivers/clocksource/versatile.c40
-rw-r--r--drivers/clocksource/vf_pit_timer.c194
-rw-r--r--drivers/clocksource/vt8500_timer.c166
-rw-r--r--drivers/clocksource/zevio-timer.c220
-rw-r--r--drivers/connector/Kconfig2
-rw-r--r--drivers/connector/cn_proc.c255
-rw-r--r--drivers/connector/cn_queue.c77
-rw-r--r--drivers/connector/connector.c336
-rw-r--r--drivers/cpufreq/Kconfig144
-rw-r--r--drivers/cpufreq/Kconfig.arm249
-rw-r--r--drivers/cpufreq/Kconfig.powerpc64
-rw-r--r--drivers/cpufreq/Kconfig.x86287
-rw-r--r--drivers/cpufreq/Makefile95
-rw-r--r--drivers/cpufreq/acpi-cpufreq.c1011
-rw-r--r--drivers/cpufreq/amd_freq_sensitivity.c148
-rw-r--r--drivers/cpufreq/arm_big_little.c595
-rw-r--r--drivers/cpufreq/arm_big_little.h40
-rw-r--r--drivers/cpufreq/arm_big_little_dt.c117
-rw-r--r--drivers/cpufreq/at32ap-cpufreq.c127
-rw-r--r--drivers/cpufreq/blackfin-cpufreq.c217
-rw-r--r--drivers/cpufreq/cpufreq-cpu0.c248
-rw-r--r--drivers/cpufreq/cpufreq-nforce2.c445
-rw-r--r--drivers/cpufreq/cpufreq.c2398
-rw-r--r--drivers/cpufreq/cpufreq_conservative.c696
-rw-r--r--drivers/cpufreq/cpufreq_governor.c449
-rw-r--r--drivers/cpufreq/cpufreq_governor.h280
-rw-r--r--drivers/cpufreq/cpufreq_ondemand.c873
-rw-r--r--drivers/cpufreq/cpufreq_opp.c110
-rw-r--r--drivers/cpufreq/cpufreq_performance.c14
-rw-r--r--drivers/cpufreq/cpufreq_powersave.c16
-rw-r--r--drivers/cpufreq/cpufreq_stats.c280
-rw-r--r--drivers/cpufreq/cpufreq_userspace.c139
-rw-r--r--drivers/cpufreq/cris-artpec3-cpufreq.c92
-rw-r--r--drivers/cpufreq/cris-etraxfs-cpufreq.c91
-rw-r--r--drivers/cpufreq/davinci-cpufreq.c182
-rw-r--r--drivers/cpufreq/dbx500-cpufreq.c84
-rw-r--r--drivers/cpufreq/e_powersaver.c441
-rw-r--r--drivers/cpufreq/elanfreq.c232
-rw-r--r--drivers/cpufreq/exynos-cpufreq.c218
-rw-r--r--drivers/cpufreq/exynos-cpufreq.h98
-rw-r--r--drivers/cpufreq/exynos4210-cpufreq.c184
-rw-r--r--drivers/cpufreq/exynos4x12-cpufreq.c236
-rw-r--r--drivers/cpufreq/exynos5250-cpufreq.c210
-rw-r--r--drivers/cpufreq/exynos5440-cpufreq.c452
-rw-r--r--drivers/cpufreq/freq_table.c242
-rw-r--r--drivers/cpufreq/gx-suspmod.c502
-rw-r--r--drivers/cpufreq/highbank-cpufreq.c109
-rw-r--r--drivers/cpufreq/ia64-acpi-cpufreq.c376
-rw-r--r--drivers/cpufreq/imx6q-cpufreq.c353
-rw-r--r--drivers/cpufreq/integrator-cpufreq.c240
-rw-r--r--drivers/cpufreq/intel_pstate.c1012
-rw-r--r--drivers/cpufreq/kirkwood-cpufreq.c199
-rw-r--r--drivers/cpufreq/longhaul.c1016
-rw-r--r--drivers/cpufreq/longhaul.h353
-rw-r--r--drivers/cpufreq/longrun.c324
-rw-r--r--drivers/cpufreq/loongson2_cpufreq.c201
-rw-r--r--drivers/cpufreq/maple-cpufreq.c246
-rw-r--r--drivers/cpufreq/omap-cpufreq.c206
-rw-r--r--drivers/cpufreq/p4-clockmod.c286
-rw-r--r--drivers/cpufreq/pasemi-cpufreq.c291
-rw-r--r--drivers/cpufreq/pcc-cpufreq.c612
-rw-r--r--drivers/cpufreq/pmac32-cpufreq.c686
-rw-r--r--drivers/cpufreq/pmac64-cpufreq.c677
-rw-r--r--drivers/cpufreq/powernow-k6.c308
-rw-r--r--drivers/cpufreq/powernow-k7.c710
-rw-r--r--drivers/cpufreq/powernow-k7.h43
-rw-r--r--drivers/cpufreq/powernow-k8.c1249
-rw-r--r--drivers/cpufreq/powernow-k8.h190
-rw-r--r--drivers/cpufreq/powernv-cpufreq.c342
-rw-r--r--drivers/cpufreq/ppc-corenet-cpufreq.c334
-rw-r--r--drivers/cpufreq/ppc_cbe_cpufreq.c170
-rw-r--r--drivers/cpufreq/ppc_cbe_cpufreq.h24
-rw-r--r--drivers/cpufreq/ppc_cbe_cpufreq_pervasive.c115
-rw-r--r--drivers/cpufreq/ppc_cbe_cpufreq_pmi.c156
-rw-r--r--drivers/cpufreq/pxa2xx-cpufreq.c452
-rw-r--r--drivers/cpufreq/pxa3xx-cpufreq.c228
-rw-r--r--drivers/cpufreq/s3c2410-cpufreq.c160
-rw-r--r--drivers/cpufreq/s3c2412-cpufreq.c257
-rw-r--r--drivers/cpufreq/s3c2416-cpufreq.c491
-rw-r--r--drivers/cpufreq/s3c2440-cpufreq.c310
-rw-r--r--drivers/cpufreq/s3c24xx-cpufreq-debugfs.c198
-rw-r--r--drivers/cpufreq/s3c24xx-cpufreq.c683
-rw-r--r--drivers/cpufreq/s3c64xx-cpufreq.c227
-rw-r--r--drivers/cpufreq/s5pv210-cpufreq.c550
-rw-r--r--drivers/cpufreq/sa1100-cpufreq.c220
-rw-r--r--drivers/cpufreq/sa1110-cpufreq.c374
-rw-r--r--drivers/cpufreq/sc520_freq.c140
-rw-r--r--drivers/cpufreq/sh-cpufreq.c177
-rw-r--r--drivers/cpufreq/sparc-us2e-cpufreq.c378
-rw-r--r--drivers/cpufreq/sparc-us3-cpufreq.c237
-rw-r--r--drivers/cpufreq/spear-cpufreq.c247
-rw-r--r--drivers/cpufreq/speedstep-centrino.c566
-rw-r--r--drivers/cpufreq/speedstep-ich.c388
-rw-r--r--drivers/cpufreq/speedstep-lib.c479
-rw-r--r--drivers/cpufreq/speedstep-lib.h49
-rw-r--r--drivers/cpufreq/speedstep-smi.c384
-rw-r--r--drivers/cpufreq/tegra-cpufreq.c218
-rw-r--r--drivers/cpufreq/unicore2-cpufreq.c80
-rw-r--r--drivers/cpufreq/vexpress-spc-cpufreq.c70
-rw-r--r--drivers/cpuidle/Kconfig42
-rw-r--r--drivers/cpuidle/Kconfig.arm63
-rw-r--r--drivers/cpuidle/Kconfig.mips17
-rw-r--r--drivers/cpuidle/Kconfig.powerpc20
-rw-r--r--drivers/cpuidle/Makefile22
-rw-r--r--drivers/cpuidle/coupled.c794
-rw-r--r--drivers/cpuidle/cpuidle-armada-370-xp.c93
-rw-r--r--drivers/cpuidle/cpuidle-at91.c69
-rw-r--r--drivers/cpuidle/cpuidle-big_little.c209
-rw-r--r--drivers/cpuidle/cpuidle-calxeda.c81
-rw-r--r--drivers/cpuidle/cpuidle-clps711x.c64
-rw-r--r--drivers/cpuidle/cpuidle-cps.c186
-rw-r--r--drivers/cpuidle/cpuidle-exynos.c99
-rw-r--r--drivers/cpuidle/cpuidle-kirkwood.c90
-rw-r--r--drivers/cpuidle/cpuidle-powernv.c254
-rw-r--r--drivers/cpuidle/cpuidle-pseries.c273
-rw-r--r--drivers/cpuidle/cpuidle-ux500.c131
-rw-r--r--drivers/cpuidle/cpuidle-zynq.c88
-rw-r--r--drivers/cpuidle/cpuidle.c474
-rw-r--r--drivers/cpuidle/cpuidle.h51
-rw-r--r--drivers/cpuidle/driver.c371
-rw-r--r--drivers/cpuidle/governor.c50
-rw-r--r--drivers/cpuidle/governors/ladder.c66
-rw-r--r--drivers/cpuidle/governors/menu.c468
-rw-r--r--drivers/cpuidle/sysfs.c415
-rw-r--r--drivers/crypto/Kconfig296
-rw-r--r--drivers/crypto/Makefile25
-rw-r--r--drivers/crypto/amcc/Makefile2
-rw-r--r--drivers/crypto/amcc/crypto4xx_alg.c295
-rw-r--r--drivers/crypto/amcc/crypto4xx_core.c1303
-rw-r--r--drivers/crypto/amcc/crypto4xx_core.h196
-rw-r--r--drivers/crypto/amcc/crypto4xx_reg_def.h284
-rw-r--r--drivers/crypto/amcc/crypto4xx_sa.c108
-rw-r--r--drivers/crypto/amcc/crypto4xx_sa.h243
-rw-r--r--drivers/crypto/atmel-aes-regs.h62
-rw-r--r--drivers/crypto/atmel-aes.c1485
-rw-r--r--drivers/crypto/atmel-sha-regs.h51
-rw-r--r--drivers/crypto/atmel-sha.c1546
-rw-r--r--drivers/crypto/atmel-tdes-regs.h91
-rw-r--r--drivers/crypto/atmel-tdes.c1542
-rw-r--r--drivers/crypto/bfin_crc.c768
-rw-r--r--drivers/crypto/bfin_crc.h125
-rw-r--r--drivers/crypto/caam/Kconfig121
-rw-r--r--drivers/crypto/caam/Makefile15
-rw-r--r--drivers/crypto/caam/caamalg.c2480
-rw-r--r--drivers/crypto/caam/caamhash.c1842
-rw-r--r--drivers/crypto/caam/caamrng.c301
-rw-r--r--drivers/crypto/caam/compat.h40
-rw-r--r--drivers/crypto/caam/ctrl.c650
-rw-r--r--drivers/crypto/caam/ctrl.h13
-rw-r--r--drivers/crypto/caam/desc.h1622
-rw-r--r--drivers/crypto/caam/desc_constr.h388
-rw-r--r--drivers/crypto/caam/error.c239
-rw-r--r--drivers/crypto/caam/error.h11
-rw-r--r--drivers/crypto/caam/intern.h111
-rw-r--r--drivers/crypto/caam/jr.c541
-rw-r--r--drivers/crypto/caam/jr.h18
-rw-r--r--drivers/crypto/caam/key_gen.c124
-rw-r--r--drivers/crypto/caam/key_gen.h17
-rw-r--r--drivers/crypto/caam/pdb.h402
-rw-r--r--drivers/crypto/caam/regs.h756
-rw-r--r--drivers/crypto/caam/sg_sw_sec4.h172
-rw-r--r--drivers/crypto/ccp/Kconfig24
-rw-r--r--drivers/crypto/ccp/Makefile10
-rw-r--r--drivers/crypto/ccp/ccp-crypto-aes-cmac.c365
-rw-r--r--drivers/crypto/ccp/ccp-crypto-aes-xts.c279
-rw-r--r--drivers/crypto/ccp/ccp-crypto-aes.c369
-rw-r--r--drivers/crypto/ccp/ccp-crypto-main.c388
-rw-r--r--drivers/crypto/ccp/ccp-crypto-sha.c437
-rw-r--r--drivers/crypto/ccp/ccp-crypto.h197
-rw-r--r--drivers/crypto/ccp/ccp-dev.c608
-rw-r--r--drivers/crypto/ccp/ccp-dev.h272
-rw-r--r--drivers/crypto/ccp/ccp-ops.c2126
-rw-r--r--drivers/crypto/ccp/ccp-pci.c360
-rw-r--r--drivers/crypto/geode-aes.c106
-rw-r--r--drivers/crypto/geode-aes.h6
-rw-r--r--drivers/crypto/hifn_795x.c75
-rw-r--r--drivers/crypto/ixp4xx_crypto.c334
-rw-r--r--drivers/crypto/mv_cesa.c1199
-rw-r--r--drivers/crypto/mv_cesa.h149
-rw-r--r--drivers/crypto/mxs-dcp.c1103
-rw-r--r--drivers/crypto/n2_asm.S95
-rw-r--r--drivers/crypto/n2_core.c2270
-rw-r--r--drivers/crypto/n2_core.h231
-rw-r--r--drivers/crypto/nx/Kconfig26
-rw-r--r--drivers/crypto/nx/Makefile14
-rw-r--r--drivers/crypto/nx/nx-842.c1617
-rw-r--r--drivers/crypto/nx/nx-aes-cbc.c158
-rw-r--r--drivers/crypto/nx/nx-aes-ccm.c611
-rw-r--r--drivers/crypto/nx/nx-aes-ctr.c194
-rw-r--r--drivers/crypto/nx/nx-aes-ecb.c157
-rw-r--r--drivers/crypto/nx/nx-aes-gcm.c517
-rw-r--r--drivers/crypto/nx/nx-aes-xcbc.c333
-rw-r--r--drivers/crypto/nx/nx-sha256.c282
-rw-r--r--drivers/crypto/nx/nx-sha512.c301
-rw-r--r--drivers/crypto/nx/nx.c710
-rw-r--r--drivers/crypto/nx/nx.h194
-rw-r--r--drivers/crypto/nx/nx_csbcpb.h205
-rw-r--r--drivers/crypto/nx/nx_debugfs.c103
-rw-r--r--drivers/crypto/omap-aes.c1328
-rw-r--r--drivers/crypto/omap-des.c1235
-rw-r--r--drivers/crypto/omap-sham.c2049
-rw-r--r--drivers/crypto/padlock-aes.c162
-rw-r--r--drivers/crypto/padlock-sha.c607
-rw-r--r--drivers/crypto/padlock.h23
-rw-r--r--drivers/crypto/picoxcell_crypto.c1861
-rw-r--r--drivers/crypto/picoxcell_crypto_regs.h128
-rw-r--r--drivers/crypto/s5p-sss.c758
-rw-r--r--drivers/crypto/sahara.c1058
-rw-r--r--drivers/crypto/talitos.c2278
-rw-r--r--drivers/crypto/talitos.h179
-rw-r--r--drivers/crypto/ux500/Kconfig30
-rw-r--r--drivers/crypto/ux500/Makefile8
-rw-r--r--drivers/crypto/ux500/cryp/Makefile13
-rw-r--r--drivers/crypto/ux500/cryp/cryp.c387
-rw-r--r--drivers/crypto/ux500/cryp/cryp.h313
-rw-r--r--drivers/crypto/ux500/cryp/cryp_core.c1817
-rw-r--r--drivers/crypto/ux500/cryp/cryp_irq.c45
-rw-r--r--drivers/crypto/ux500/cryp/cryp_irq.h31
-rw-r--r--drivers/crypto/ux500/cryp/cryp_irqp.h125
-rw-r--r--drivers/crypto/ux500/cryp/cryp_p.h123
-rw-r--r--drivers/crypto/ux500/hash/Makefile11
-rw-r--r--drivers/crypto/ux500/hash/hash_alg.h398
-rw-r--r--drivers/crypto/ux500/hash/hash_core.c2001
-rw-r--r--drivers/dca/dca-core.c267
-rw-r--r--drivers/dca/dca-sysfs.c46
-rw-r--r--drivers/devfreq/Kconfig92
-rw-r--r--drivers/devfreq/Makefile9
-rw-r--r--drivers/devfreq/devfreq.c1222
-rw-r--r--drivers/devfreq/exynos/Makefile3
-rw-r--r--drivers/devfreq/exynos/exynos4_bus.c1056
-rw-r--r--drivers/devfreq/exynos/exynos4_bus.h110
-rw-r--r--drivers/devfreq/exynos/exynos5_bus.c432
-rw-r--r--drivers/devfreq/exynos/exynos_ppmu.c116
-rw-r--r--drivers/devfreq/exynos/exynos_ppmu.h86
-rw-r--r--drivers/devfreq/governor.h41
-rw-r--r--drivers/devfreq/governor_performance.c67
-rw-r--r--drivers/devfreq/governor_powersave.c64
-rw-r--r--drivers/devfreq/governor_simpleondemand.c147
-rw-r--r--drivers/devfreq/governor_userspace.c162
-rw-r--r--drivers/dio/dio-driver.c1
-rw-r--r--drivers/dio/dio.c4
-rw-r--r--drivers/dma/Kconfig387
-rw-r--r--drivers/dma/Makefile46
-rw-r--r--drivers/dma/TODO13
-rw-r--r--drivers/dma/acpi-dma.c456
-rw-r--r--drivers/dma/amba-pl08x.c2302
-rw-r--r--drivers/dma/at_hdmac.c1735
-rw-r--r--drivers/dma/at_hdmac_regs.h452
-rw-r--r--drivers/dma/bcm2835-dma.c707
-rw-r--r--drivers/dma/bestcomm/Kconfig36
-rw-r--r--drivers/dma/bestcomm/Makefile14
-rw-r--r--drivers/dma/bestcomm/ata.c157
-rw-r--r--drivers/dma/bestcomm/bcom_ata_task.c67
-rw-r--r--drivers/dma/bestcomm/bcom_fec_rx_task.c78
-rw-r--r--drivers/dma/bestcomm/bcom_fec_tx_task.c91
-rw-r--r--drivers/dma/bestcomm/bcom_gen_bd_rx_task.c63
-rw-r--r--drivers/dma/bestcomm/bcom_gen_bd_tx_task.c69
-rw-r--r--drivers/dma/bestcomm/bestcomm.c531
-rw-r--r--drivers/dma/bestcomm/fec.c270
-rw-r--r--drivers/dma/bestcomm/gen_bd.c354
-rw-r--r--drivers/dma/bestcomm/sram.c179
-rw-r--r--drivers/dma/coh901318.c2809
-rw-r--r--drivers/dma/coh901318.h141
-rw-r--r--drivers/dma/coh901318_lli.c313
-rw-r--r--drivers/dma/cppi41.c1105
-rw-r--r--drivers/dma/dma-jz4740.c617
-rw-r--r--drivers/dma/dmaengine.c710
-rw-r--r--drivers/dma/dmaengine.h89
-rw-r--r--drivers/dma/dmatest.c906
-rw-r--r--drivers/dma/dw/Kconfig28
-rw-r--r--drivers/dma/dw/Makefile8
-rw-r--r--drivers/dma/dw/core.c1740
-rw-r--r--drivers/dma/dw/internal.h70
-rw-r--r--drivers/dma/dw/pci.c131
-rw-r--r--drivers/dma/dw/platform.c306
-rw-r--r--drivers/dma/dw/regs.h318
-rw-r--r--drivers/dma/dw_dmac.c1117
-rw-r--r--drivers/dma/dw_dmac_regs.h225
-rw-r--r--drivers/dma/edma.c1152
-rw-r--r--drivers/dma/ep93xx_dma.c1417
-rw-r--r--drivers/dma/fsl-edma.c985
-rw-r--r--drivers/dma/fsldma.c1575
-rw-r--r--drivers/dma/fsldma.h54
-rw-r--r--drivers/dma/imx-dma.c1254
-rw-r--r--drivers/dma/imx-sdma.c1656
-rw-r--r--drivers/dma/intel_mid_dma.c1460
-rw-r--r--drivers/dma/intel_mid_dma_regs.h299
-rw-r--r--drivers/dma/ioat.c202
-rw-r--r--drivers/dma/ioat/Makefile2
-rw-r--r--drivers/dma/ioat/dca.c709
-rw-r--r--drivers/dma/ioat/dma.c1251
-rw-r--r--drivers/dma/ioat/dma.h363
-rw-r--r--drivers/dma/ioat/dma_v2.c920
-rw-r--r--drivers/dma/ioat/dma_v2.h179
-rw-r--r--drivers/dma/ioat/dma_v3.c1676
-rw-r--r--drivers/dma/ioat/hw.h269
-rw-r--r--drivers/dma/ioat/pci.c257
-rw-r--r--drivers/dma/ioat/registers.h253
-rw-r--r--drivers/dma/ioat_dca.c657
-rw-r--r--drivers/dma/ioat_dma.c1722
-rw-r--r--drivers/dma/ioatdma.h163
-rw-r--r--drivers/dma/ioatdma_hw.h70
-rw-r--r--drivers/dma/ioatdma_registers.h226
-rw-r--r--drivers/dma/iop-adma.c656
-rw-r--r--drivers/dma/iovlock.c11
-rw-r--r--drivers/dma/ipu/Makefile1
-rw-r--r--drivers/dma/ipu/ipu_idmac.c1794
-rw-r--r--drivers/dma/ipu/ipu_intern.h176
-rw-r--r--drivers/dma/ipu/ipu_irq.c415
-rw-r--r--drivers/dma/k3dma.c837
-rw-r--r--drivers/dma/mmp_pdma.c1126
-rw-r--r--drivers/dma/mmp_tdma.c711
-rw-r--r--drivers/dma/moxart-dma.c699
-rw-r--r--drivers/dma/mpc512x_dma.c1090
-rw-r--r--drivers/dma/mv_xor.c805
-rw-r--r--drivers/dma/mv_xor.h94
-rw-r--r--drivers/dma/mxs-dma.c898
-rw-r--r--drivers/dma/of-dma.c220
-rw-r--r--drivers/dma/omap-dma.c1262
-rw-r--r--drivers/dma/pch_dma.c1033
-rw-r--r--drivers/dma/pl330.c3120
-rw-r--r--drivers/dma/ppc4xx/Makefile3
-rw-r--r--drivers/dma/ppc4xx/adma.c4654
-rw-r--r--drivers/dma/ppc4xx/adma.h193
-rw-r--r--drivers/dma/ppc4xx/apm82181-adma.c2201
-rw-r--r--drivers/dma/ppc4xx/dma.h223
-rw-r--r--drivers/dma/ppc4xx/ppc460ex_4chan_dma.c1110
-rw-r--r--drivers/dma/ppc4xx/ppc460ex_4chan_dma.h531
-rw-r--r--drivers/dma/ppc4xx/xor.h110
-rw-r--r--drivers/dma/qcom_bam_dma.c1111
-rw-r--r--drivers/dma/s3c24xx-dma.c1430
-rw-r--r--drivers/dma/sa11x0-dma.c1101
-rw-r--r--drivers/dma/sh/Kconfig40
-rw-r--r--drivers/dma/sh/Makefile10
-rw-r--r--drivers/dma/sh/rcar-audmapp.c320
-rw-r--r--drivers/dma/sh/rcar-hpbdma.c666
-rw-r--r--drivers/dma/sh/shdma-arm.h51
-rw-r--r--drivers/dma/sh/shdma-base.c1016
-rw-r--r--drivers/dma/sh/shdma-of.c80
-rw-r--r--drivers/dma/sh/shdma-r8a73a4.c77
-rw-r--r--drivers/dma/sh/shdma.h72
-rw-r--r--drivers/dma/sh/shdmac.c960
-rw-r--r--drivers/dma/sh/sudmac.c425
-rw-r--r--drivers/dma/sirf-dma.c958
-rw-r--r--drivers/dma/ste_dma40.c3764
-rw-r--r--drivers/dma/ste_dma40_ll.c448
-rw-r--r--drivers/dma/ste_dma40_ll.h470
-rw-r--r--drivers/dma/tegra20-apb-dma.c1613
-rw-r--r--drivers/dma/timb_dma.c797
-rw-r--r--drivers/dma/txx9dmac.c1319
-rw-r--r--drivers/dma/txx9dmac.h307
-rw-r--r--drivers/dma/virt-dma.c123
-rw-r--r--drivers/dma/virt-dma.h154
-rw-r--r--drivers/dma/xilinx/Makefile1
-rw-r--r--drivers/dma/xilinx/xilinx_vdma.c1379
-rw-r--r--drivers/edac/Kconfig222
-rw-r--r--drivers/edac/Makefile37
-rw-r--r--drivers/edac/amd64_edac.c2974
-rw-r--r--drivers/edac/amd64_edac.h553
-rw-r--r--drivers/edac/amd64_edac_dbg.c73
-rw-r--r--drivers/edac/amd64_edac_inj.c241
-rw-r--r--drivers/edac/amd76x_edac.c77
-rw-r--r--drivers/edac/amd8111_edac.c610
-rw-r--r--drivers/edac/amd8111_edac.h130
-rw-r--r--drivers/edac/amd8131_edac.c379
-rw-r--r--drivers/edac/amd8131_edac.h119
-rw-r--r--drivers/edac/cell_edac.c78
-rw-r--r--drivers/edac/cpc925_edac.c1097
-rw-r--r--drivers/edac/e752x_edac.c299
-rw-r--r--drivers/edac/e7xxx_edac.c121
-rw-r--r--drivers/edac/edac_core.h451
-rw-r--r--drivers/edac/edac_device.c138
-rw-r--r--drivers/edac/edac_device_sysfs.c110
-rw-r--r--drivers/edac/edac_mc.c1124
-rw-r--r--drivers/edac/edac_mc_sysfs.c1343
-rw-r--r--drivers/edac/edac_module.c126
-rw-r--r--drivers/edac/edac_module.h33
-rw-r--r--drivers/edac/edac_pci.c83
-rw-r--r--drivers/edac/edac_pci_sysfs.c92
-rw-r--r--drivers/edac/edac_stub.c74
-rw-r--r--drivers/edac/ghes_edac.c547
-rw-r--r--drivers/edac/highbank_l2_edac.c154
-rw-r--r--drivers/edac/highbank_mc_edac.c281
-rw-r--r--drivers/edac/i3000_edac.c92
-rw-r--r--drivers/edac/i3200_edac.c551
-rw-r--r--drivers/edac/i5000_edac.c435
-rw-r--r--drivers/edac/i5100_edac.c551
-rw-r--r--drivers/edac/i5400_edac.c576
-rw-r--r--drivers/edac/i7300_edac.c1218
-rw-r--r--drivers/edac/i7core_edac.c2466
-rw-r--r--drivers/edac/i82443bxgx_edac.c97
-rw-r--r--drivers/edac/i82860_edac.c97
-rw-r--r--drivers/edac/i82875p_edac.c113
-rw-r--r--drivers/edac/i82975x_edac.c172
-rw-r--r--drivers/edac/mce_amd.c898
-rw-r--r--drivers/edac/mce_amd.h87
-rw-r--r--drivers/edac/mce_amd_inj.c173
-rw-r--r--drivers/edac/mpc85xx_edac.c643
-rw-r--r--drivers/edac/mpc85xx_edac.h13
-rw-r--r--drivers/edac/mv64x60_edac.c119
-rw-r--r--drivers/edac/mv64x60_edac.h2
-rw-r--r--drivers/edac/octeon_edac-l2c.c208
-rw-r--r--drivers/edac/octeon_edac-lmc.c353
-rw-r--r--drivers/edac/octeon_edac-pc.c143
-rw-r--r--drivers/edac/octeon_edac-pci.c111
-rw-r--r--drivers/edac/pasemi_edac.c66
-rw-r--r--drivers/edac/ppc4xx_edac.c1440
-rw-r--r--drivers/edac/ppc4xx_edac.h172
-rw-r--r--drivers/edac/r82600_edac.c99
-rw-r--r--drivers/edac/sb_edac.c2189
-rw-r--r--drivers/edac/tile_edac.c266
-rw-r--r--drivers/edac/x38_edac.c101
-rw-r--r--drivers/eisa/Kconfig6
-rw-r--r--drivers/eisa/eisa-bus.c269
-rw-r--r--drivers/eisa/eisa.ids9
-rw-r--r--drivers/eisa/pci_eisa.c74
-rw-r--r--drivers/eisa/virtual_root.c2
-rw-r--r--drivers/extcon/Kconfig73
-rw-r--r--drivers/extcon/Makefile12
-rw-r--r--drivers/extcon/extcon-adc-jack.c194
-rw-r--r--drivers/extcon/extcon-arizona.c1467
-rw-r--r--drivers/extcon/extcon-class.c1033
-rw-r--r--drivers/extcon/extcon-gpio.c194
-rw-r--r--drivers/extcon/extcon-max14577.c823
-rw-r--r--drivers/extcon/extcon-max77693.c1323
-rw-r--r--drivers/extcon/extcon-max8997.c808
-rw-r--r--drivers/extcon/extcon-palmas.c306
-rw-r--r--drivers/firewire/Kconfig102
-rw-r--r--drivers/firewire/Makefile14
-rw-r--r--drivers/firewire/core-card.c706
-rw-r--r--drivers/firewire/core-cdev.c1816
-rw-r--r--drivers/firewire/core-device.c1325
-rw-r--r--drivers/firewire/core-iso.c403
-rw-r--r--drivers/firewire/core-topology.c569
-rw-r--r--drivers/firewire/core-transaction.c1300
-rw-r--r--drivers/firewire/core.h258
-rw-r--r--drivers/firewire/fw-card.c540
-rw-r--r--drivers/firewire/fw-cdev.c1049
-rw-r--r--drivers/firewire/fw-device.c1004
-rw-r--r--drivers/firewire/fw-device.h186
-rw-r--r--drivers/firewire/fw-iso.c158
-rw-r--r--drivers/firewire/fw-ohci.c2619
-rw-r--r--drivers/firewire/fw-ohci.h157
-rw-r--r--drivers/firewire/fw-sbp2.c1642
-rw-r--r--drivers/firewire/fw-topology.c551
-rw-r--r--drivers/firewire/fw-topology.h76
-rw-r--r--drivers/firewire/fw-transaction.c979
-rw-r--r--drivers/firewire/fw-transaction.h473
-rw-r--r--drivers/firewire/init_ohci1394_dma.c (renamed from drivers/ieee1394/init_ohci1394_dma.c)80
-rw-r--r--drivers/firewire/net.c1719
-rw-r--r--drivers/firewire/nosy-user.h25
-rw-r--r--drivers/firewire/nosy.c709
-rw-r--r--drivers/firewire/nosy.h237
-rw-r--r--drivers/firewire/ohci.c3899
-rw-r--r--drivers/firewire/ohci.h158
-rw-r--r--drivers/firewire/sbp2.c1656
-rw-r--r--drivers/firmware/Kconfig49
-rw-r--r--drivers/firmware/Makefile6
-rw-r--r--drivers/firmware/dcdbas.c81
-rw-r--r--drivers/firmware/dell_rbu.c20
-rw-r--r--drivers/firmware/dmi-id.c7
-rw-r--r--drivers/firmware/dmi-sysfs.c697
-rw-r--r--drivers/firmware/dmi_scan.c528
-rw-r--r--drivers/firmware/edd.c52
-rw-r--r--drivers/firmware/efi/Kconfig60
-rw-r--r--drivers/firmware/efi/Makefile8
-rw-r--r--drivers/firmware/efi/arm-stub.c278
-rw-r--r--drivers/firmware/efi/cper.c410
-rw-r--r--drivers/firmware/efi/efi-pstore.c402
-rw-r--r--drivers/firmware/efi/efi-stub-helper.c634
-rw-r--r--drivers/firmware/efi/efi.c407
-rw-r--r--drivers/firmware/efi/efivars.c754
-rw-r--r--drivers/firmware/efi/fdt.c275
-rw-r--r--drivers/firmware/efi/runtime-map.c181
-rw-r--r--drivers/firmware/efi/vars.c1049
-rw-r--r--drivers/firmware/efivars.c761
-rw-r--r--drivers/firmware/google/Kconfig31
-rw-r--r--drivers/firmware/google/Makefile3
-rw-r--r--drivers/firmware/google/gsmi.c942
-rw-r--r--drivers/firmware/google/memconsole.c171
-rw-r--r--drivers/firmware/iscsi_ibft.c779
-rw-r--r--drivers/firmware/iscsi_ibft_find.c77
-rw-r--r--drivers/firmware/memmap.c279
-rw-r--r--drivers/firmware/pcdp.c8
-rw-r--r--drivers/firmware/pcdp.h4
-rw-r--r--drivers/fmc/Kconfig51
-rw-r--r--drivers/fmc/Makefile13
-rw-r--r--drivers/fmc/fmc-chardev.c201
-rw-r--r--drivers/fmc/fmc-core.c304
-rw-r--r--drivers/fmc/fmc-dump.c100
-rw-r--r--drivers/fmc/fmc-fakedev.c355
-rw-r--r--drivers/fmc/fmc-match.c114
-rw-r--r--drivers/fmc/fmc-sdb.c289
-rw-r--r--drivers/fmc/fmc-trivial.c107
-rw-r--r--drivers/fmc/fmc-write-eeprom.c176
-rw-r--r--drivers/fmc/fru-parse.c82
-rw-r--r--drivers/gpio/Kconfig744
-rw-r--r--drivers/gpio/Makefile107
-rw-r--r--drivers/gpio/bt8xxgpio.c348
-rw-r--r--drivers/gpio/devres.c247
-rw-r--r--drivers/gpio/gpio-74x164.c199
-rw-r--r--drivers/gpio/gpio-adnp.c629
-rw-r--r--drivers/gpio/gpio-adp5520.c197
-rw-r--r--drivers/gpio/gpio-adp5588.c503
-rw-r--r--drivers/gpio/gpio-amd8111.c246
-rw-r--r--drivers/gpio/gpio-arizona.c167
-rw-r--r--drivers/gpio/gpio-bcm-kona.c681
-rw-r--r--drivers/gpio/gpio-bt8xx.c326
-rw-r--r--drivers/gpio/gpio-clps711x.c101
-rw-r--r--drivers/gpio/gpio-cs5535.c389
-rw-r--r--drivers/gpio/gpio-da9052.c257
-rw-r--r--drivers/gpio/gpio-da9055.c204
-rw-r--r--drivers/gpio/gpio-davinci.c635
-rw-r--r--drivers/gpio/gpio-dwapb.c444
-rw-r--r--drivers/gpio/gpio-em.c452
-rw-r--r--drivers/gpio/gpio-ep93xx.c391
-rw-r--r--drivers/gpio/gpio-f7188x.c470
-rw-r--r--drivers/gpio/gpio-ge.c131
-rw-r--r--drivers/gpio/gpio-generic.c586
-rw-r--r--drivers/gpio/gpio-grgpio.c505
-rw-r--r--drivers/gpio/gpio-ich.c548
-rw-r--r--drivers/gpio/gpio-intel-mid.c489
-rw-r--r--drivers/gpio/gpio-iop.c132
-rw-r--r--drivers/gpio/gpio-it8761e.c234
-rw-r--r--drivers/gpio/gpio-janz-ttl.c223
-rw-r--r--drivers/gpio/gpio-kempld.c219
-rw-r--r--drivers/gpio/gpio-ks8695.c319
-rw-r--r--drivers/gpio/gpio-lp3943.c242
-rw-r--r--drivers/gpio/gpio-lpc32xx.c578
-rw-r--r--drivers/gpio/gpio-lynxpoint.c503
-rw-r--r--drivers/gpio/gpio-max7300.c91
-rw-r--r--drivers/gpio/gpio-max7301.c114
-rw-r--r--drivers/gpio/gpio-max730x.c251
-rw-r--r--drivers/gpio/gpio-max732x.c722
-rw-r--r--drivers/gpio/gpio-mc33880.c194
-rw-r--r--drivers/gpio/gpio-mc9s08dz60.c146
-rw-r--r--drivers/gpio/gpio-mcp23s08.c1066
-rw-r--r--drivers/gpio/gpio-ml-ioh.c617
-rw-r--r--drivers/gpio/gpio-mm-lantiq.c158
-rw-r--r--drivers/gpio/gpio-moxart.c154
-rw-r--r--drivers/gpio/gpio-mpc5200.c377
-rw-r--r--drivers/gpio/gpio-mpc8xxx.c393
-rw-r--r--drivers/gpio/gpio-msic.c338
-rw-r--r--drivers/gpio/gpio-msm-v1.c715
-rw-r--r--drivers/gpio/gpio-msm-v2.c466
-rw-r--r--drivers/gpio/gpio-mvebu.c739
-rw-r--r--drivers/gpio/gpio-mxc.c516
-rw-r--r--drivers/gpio/gpio-mxs.c358
-rw-r--r--drivers/gpio/gpio-octeon.c157
-rw-r--r--drivers/gpio/gpio-omap.c1639
-rw-r--r--drivers/gpio/gpio-palmas.c239
-rw-r--r--drivers/gpio/gpio-pca953x.c837
-rw-r--r--drivers/gpio/gpio-pcf857x.c480
-rw-r--r--drivers/gpio/gpio-pch.c545
-rw-r--r--drivers/gpio/gpio-pl061.c400
-rw-r--r--drivers/gpio/gpio-pxa.c732
-rw-r--r--drivers/gpio/gpio-rc5t583.c178
-rw-r--r--drivers/gpio/gpio-rcar.c500
-rw-r--r--drivers/gpio/gpio-rdc321x.c224
-rw-r--r--drivers/gpio/gpio-sa1100.c70
-rw-r--r--drivers/gpio/gpio-samsung.c2343
-rw-r--r--drivers/gpio/gpio-sch.c343
-rw-r--r--drivers/gpio/gpio-sch311x.c440
-rw-r--r--drivers/gpio/gpio-sodaville.c293
-rw-r--r--drivers/gpio/gpio-spear-spics.c208
-rw-r--r--drivers/gpio/gpio-sta2x11.c440
-rw-r--r--drivers/gpio/gpio-stmpe.c453
-rw-r--r--drivers/gpio/gpio-stp-xway.c300
-rw-r--r--drivers/gpio/gpio-sx150x.c663
-rw-r--r--drivers/gpio/gpio-syscon.c191
-rw-r--r--drivers/gpio/gpio-tb10x.c329
-rw-r--r--drivers/gpio/gpio-tc3589x.c352
-rw-r--r--drivers/gpio/gpio-tegra.c591
-rw-r--r--drivers/gpio/gpio-timberdale.c350
-rw-r--r--drivers/gpio/gpio-tps6586x.c165
-rw-r--r--drivers/gpio/gpio-tps65910.c219
-rw-r--r--drivers/gpio/gpio-tps65912.c147
-rw-r--r--drivers/gpio/gpio-ts5500.c466
-rw-r--r--drivers/gpio/gpio-twl4030.c631
-rw-r--r--drivers/gpio/gpio-twl6040.c133
-rw-r--r--drivers/gpio/gpio-tz1090-pdc.c243
-rw-r--r--drivers/gpio/gpio-tz1090.c606
-rw-r--r--drivers/gpio/gpio-ucb1400.c108
-rw-r--r--drivers/gpio/gpio-viperboard.c514
-rw-r--r--drivers/gpio/gpio-vr41xx.c594
-rw-r--r--drivers/gpio/gpio-vx855.c321
-rw-r--r--drivers/gpio/gpio-wm831x.c307
-rw-r--r--drivers/gpio/gpio-wm8350.c173
-rw-r--r--drivers/gpio/gpio-wm8994.c313
-rw-r--r--drivers/gpio/gpio-xilinx.c313
-rw-r--r--drivers/gpio/gpio-xtensa.c179
-rw-r--r--drivers/gpio/gpio-zevio.c224
-rw-r--r--drivers/gpio/gpiolib-acpi.c556
-rw-r--r--drivers/gpio/gpiolib-of.c313
-rw-r--r--drivers/gpio/gpiolib.c2546
-rw-r--r--drivers/gpio/gpiolib.h54
-rw-r--r--drivers/gpio/max7301.c341
-rw-r--r--drivers/gpio/max732x.c390
-rw-r--r--drivers/gpio/mcp23s08.c435
-rw-r--r--drivers/gpio/pca953x.c309
-rw-r--r--drivers/gpio/pcf857x.c370
-rw-r--r--drivers/gpio/twl4030-gpio.c513
-rw-r--r--drivers/gpio/xilinx_gpio.c235
-rw-r--r--drivers/gpu/Makefile4
-rw-r--r--drivers/gpu/drm/Kconfig172
-rw-r--r--drivers/gpu/drm/Makefile56
-rw-r--r--drivers/gpu/drm/armada/Kconfig25
-rw-r--r--drivers/gpu/drm/armada/Makefile7
-rw-r--r--drivers/gpu/drm/armada/armada_510.c87
-rw-r--r--drivers/gpu/drm/armada/armada_crtc.c1100
-rw-r--r--drivers/gpu/drm/armada/armada_crtc.h83
-rw-r--r--drivers/gpu/drm/armada/armada_debugfs.c177
-rw-r--r--drivers/gpu/drm/armada/armada_drm.h114
-rw-r--r--drivers/gpu/drm/armada/armada_drv.c419
-rw-r--r--drivers/gpu/drm/armada/armada_fb.c170
-rw-r--r--drivers/gpu/drm/armada/armada_fb.h24
-rw-r--r--drivers/gpu/drm/armada/armada_fbdev.c210
-rw-r--r--drivers/gpu/drm/armada/armada_gem.c610
-rw-r--r--drivers/gpu/drm/armada/armada_gem.h52
-rw-r--r--drivers/gpu/drm/armada/armada_hw.h318
-rw-r--r--drivers/gpu/drm/armada/armada_ioctlP.h18
-rw-r--r--drivers/gpu/drm/armada/armada_output.c158
-rw-r--r--drivers/gpu/drm/armada/armada_output.h39
-rw-r--r--drivers/gpu/drm/armada/armada_overlay.c477
-rw-r--r--drivers/gpu/drm/armada/armada_slave.c139
-rw-r--r--drivers/gpu/drm/armada/armada_slave.h26
-rw-r--r--drivers/gpu/drm/ast/Kconfig17
-rw-r--r--drivers/gpu/drm/ast/Makefile9
-rw-r--r--drivers/gpu/drm/ast/ast_dp501.c410
-rw-r--r--drivers/gpu/drm/ast/ast_dram_tables.h144
-rw-r--r--drivers/gpu/drm/ast/ast_drv.c240
-rw-r--r--drivers/gpu/drm/ast/ast_drv.h395
-rw-r--r--drivers/gpu/drm/ast/ast_fb.c369
-rw-r--r--drivers/gpu/drm/ast/ast_main.c530
-rw-r--r--drivers/gpu/drm/ast/ast_mode.c1236
-rw-r--r--drivers/gpu/drm/ast/ast_post.c1652
-rw-r--r--drivers/gpu/drm/ast/ast_tables.h296
-rw-r--r--drivers/gpu/drm/ast/ast_ttm.c431
-rw-r--r--drivers/gpu/drm/ati_pcigart.c55
-rw-r--r--drivers/gpu/drm/bochs/Kconfig12
-rw-r--r--drivers/gpu/drm/bochs/Makefile4
-rw-r--r--drivers/gpu/drm/bochs/bochs.h163
-rw-r--r--drivers/gpu/drm/bochs/bochs_drv.c222
-rw-r--r--drivers/gpu/drm/bochs/bochs_fbdev.c214
-rw-r--r--drivers/gpu/drm/bochs/bochs_hw.c177
-rw-r--r--drivers/gpu/drm/bochs/bochs_kms.c294
-rw-r--r--drivers/gpu/drm/bochs/bochs_mm.c544
-rw-r--r--drivers/gpu/drm/bridge/Kconfig5
-rw-r--r--drivers/gpu/drm/bridge/Makefile3
-rw-r--r--drivers/gpu/drm/bridge/ptn3460.c343
-rw-r--r--drivers/gpu/drm/cirrus/Kconfig13
-rw-r--r--drivers/gpu/drm/cirrus/Makefile5
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_drv.c178
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_drv.h260
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_fbdev.c335
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_main.c309
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_mode.c622
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_ttm.c416
-rw-r--r--drivers/gpu/drm/drm_agpsupport.c104
-rw-r--r--drivers/gpu/drm/drm_auth.c13
-rw-r--r--drivers/gpu/drm/drm_buffer.c185
-rw-r--r--drivers/gpu/drm/drm_bufs.c628
-rw-r--r--drivers/gpu/drm/drm_cache.c105
-rw-r--r--drivers/gpu/drm/drm_context.c51
-rw-r--r--drivers/gpu/drm/drm_crtc.c4189
-rw-r--r--drivers/gpu/drm/drm_crtc_helper.c1078
-rw-r--r--drivers/gpu/drm/drm_crtc_internal.h38
-rw-r--r--drivers/gpu/drm/drm_debugfs.c241
-rw-r--r--drivers/gpu/drm/drm_dma.c58
-rw-r--r--drivers/gpu/drm/drm_dp_helper.c770
-rw-r--r--drivers/gpu/drm/drm_drawable.c201
-rw-r--r--drivers/gpu/drm/drm_drv.c526
-rw-r--r--drivers/gpu/drm/drm_edid.c3774
-rw-r--r--drivers/gpu/drm/drm_edid_load.c294
-rw-r--r--drivers/gpu/drm/drm_encoder_slave.c184
-rw-r--r--drivers/gpu/drm/drm_fb_cma_helper.c449
-rw-r--r--drivers/gpu/drm/drm_fb_helper.c1673
-rw-r--r--drivers/gpu/drm/drm_flip_work.c124
-rw-r--r--drivers/gpu/drm/drm_fops.c532
-rw-r--r--drivers/gpu/drm/drm_gem.c738
-rw-r--r--drivers/gpu/drm/drm_gem_cma_helper.c371
-rw-r--r--drivers/gpu/drm/drm_global.c110
-rw-r--r--drivers/gpu/drm/drm_hashtab.c84
-rw-r--r--drivers/gpu/drm/drm_info.c284
-rw-r--r--drivers/gpu/drm/drm_ioc32.c110
-rw-r--r--drivers/gpu/drm/drm_ioctl.c266
-rw-r--r--drivers/gpu/drm/drm_irq.c1422
-rw-r--r--drivers/gpu/drm/drm_lock.c45
-rw-r--r--drivers/gpu/drm/drm_memory.c95
-rw-r--r--drivers/gpu/drm/drm_mipi_dsi.c329
-rw-r--r--drivers/gpu/drm/drm_mm.c892
-rw-r--r--drivers/gpu/drm/drm_modes.c1197
-rw-r--r--drivers/gpu/drm/drm_modeset_lock.c248
-rw-r--r--drivers/gpu/drm/drm_panel.c100
-rw-r--r--drivers/gpu/drm/drm_pci.c469
-rw-r--r--drivers/gpu/drm/drm_plane_helper.c370
-rw-r--r--drivers/gpu/drm/drm_platform.c126
-rw-r--r--drivers/gpu/drm/drm_prime.c761
-rw-r--r--drivers/gpu/drm/drm_probe_helper.c448
-rw-r--r--drivers/gpu/drm/drm_proc.c733
-rw-r--r--drivers/gpu/drm/drm_rect.c295
-rw-r--r--drivers/gpu/drm/drm_scatter.c71
-rw-r--r--drivers/gpu/drm/drm_sman.c353
-rw-r--r--drivers/gpu/drm/drm_stub.c864
-rw-r--r--drivers/gpu/drm/drm_sysfs.c316
-rw-r--r--drivers/gpu/drm/drm_trace.h66
-rw-r--r--drivers/gpu/drm/drm_trace_points.c4
-rw-r--r--drivers/gpu/drm/drm_usb.c88
-rw-r--r--drivers/gpu/drm/drm_vm.c162
-rw-r--r--drivers/gpu/drm/drm_vma_manager.c436
-rw-r--r--drivers/gpu/drm/exynos/Kconfig98
-rw-r--r--drivers/gpu/drm/exynos/Makefile25
-rw-r--r--drivers/gpu/drm/exynos/exynos_dp_core.c1393
-rw-r--r--drivers/gpu/drm/exynos/exynos_dp_core.h279
-rw-r--r--drivers/gpu/drm/exynos/exynos_dp_reg.c1263
-rw-r--r--drivers/gpu/drm/exynos/exynos_dp_reg.h366
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_buf.c186
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_buf.h33
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_connector.c258
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_connector.h20
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_core.c161
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_crtc.c510
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_crtc.h39
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_dmabuf.c285
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_dmabuf.h25
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_dpi.c347
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_drv.c795
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_drv.h383
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_dsi.c1546
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_encoder.c197
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_encoder.h25
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fb.c327
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fb.h35
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fbdev.c371
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fbdev.h23
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimc.c1901
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimc.h23
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_fimd.c1035
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_g2d.c1559
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_g2d.h36
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_gem.c728
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_gem.h192
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_gsc.c1802
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_gsc.h24
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_iommu.c143
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_iommu.h70
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_ipp.c1989
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_ipp.h252
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_plane.c281
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_plane.h20
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_rotator.c856
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_rotator.h19
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_vidi.c702
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_vidi.h22
-rw-r--r--drivers/gpu/drm/exynos/exynos_hdmi.c2515
-rw-r--r--drivers/gpu/drm/exynos/exynos_mixer.c1327
-rw-r--r--drivers/gpu/drm/exynos/exynos_mixer.h20
-rw-r--r--drivers/gpu/drm/exynos/regs-fimc.h668
-rw-r--r--drivers/gpu/drm/exynos/regs-gsc.h284
-rw-r--r--drivers/gpu/drm/exynos/regs-hdmi.h597
-rw-r--r--drivers/gpu/drm/exynos/regs-mixer.h152
-rw-r--r--drivers/gpu/drm/exynos/regs-rotator.h73
-rw-r--r--drivers/gpu/drm/exynos/regs-vp.h91
-rw-r--r--drivers/gpu/drm/gma500/Kconfig38
-rw-r--r--drivers/gpu/drm/gma500/Makefile55
-rw-r--r--drivers/gpu/drm/gma500/accel_2d.c364
-rw-r--r--drivers/gpu/drm/gma500/backlight.c94
-rw-r--r--drivers/gpu/drm/gma500/blitter.c51
-rw-r--r--drivers/gpu/drm/gma500/blitter.h22
-rw-r--r--drivers/gpu/drm/gma500/cdv_device.c626
-rw-r--r--drivers/gpu/drm/gma500/cdv_device.h30
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_crt.c317
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_display.c999
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_dp.c1952
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_hdmi.c369
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_lvds.c798
-rw-r--r--drivers/gpu/drm/gma500/framebuffer.c795
-rw-r--r--drivers/gpu/drm/gma500/framebuffer.h47
-rw-r--r--drivers/gpu/drm/gma500/gem.c229
-rw-r--r--drivers/gpu/drm/gma500/gem.h21
-rw-r--r--drivers/gpu/drm/gma500/gma_device.c56
-rw-r--r--drivers/gpu/drm/gma500/gma_device.h21
-rw-r--r--drivers/gpu/drm/gma500/gma_display.c791
-rw-r--r--drivers/gpu/drm/gma500/gma_display.h106
-rw-r--r--drivers/gpu/drm/gma500/gtt.c587
-rw-r--r--drivers/gpu/drm/gma500/gtt.h65
-rw-r--r--drivers/gpu/drm/gma500/intel_bios.c597
-rw-r--r--drivers/gpu/drm/gma500/intel_bios.h621
-rw-r--r--drivers/gpu/drm/gma500/intel_gmbus.c500
-rw-r--r--drivers/gpu/drm/gma500/intel_i2c.c169
-rw-r--r--drivers/gpu/drm/gma500/mdfld_device.c551
-rw-r--r--drivers/gpu/drm/gma500/mdfld_dsi_dpi.c1016
-rw-r--r--drivers/gpu/drm/gma500/mdfld_dsi_dpi.h79
-rw-r--r--drivers/gpu/drm/gma500/mdfld_dsi_output.c614
-rw-r--r--drivers/gpu/drm/gma500/mdfld_dsi_output.h377
-rw-r--r--drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c688
-rw-r--r--drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.h92
-rw-r--r--drivers/gpu/drm/gma500/mdfld_intel_display.c1035
-rw-r--r--drivers/gpu/drm/gma500/mdfld_output.c74
-rw-r--r--drivers/gpu/drm/gma500/mdfld_output.h77
-rw-r--r--drivers/gpu/drm/gma500/mdfld_tmd_vid.c201
-rw-r--r--drivers/gpu/drm/gma500/mdfld_tpo_vid.c124
-rw-r--r--drivers/gpu/drm/gma500/mid_bios.c338
-rw-r--r--drivers/gpu/drm/gma500/mid_bios.h21
-rw-r--r--drivers/gpu/drm/gma500/mmu.c812
-rw-r--r--drivers/gpu/drm/gma500/mmu.h93
-rw-r--r--drivers/gpu/drm/gma500/oaktrail.h257
-rw-r--r--drivers/gpu/drm/gma500/oaktrail_crtc.c672
-rw-r--r--drivers/gpu/drm/gma500/oaktrail_device.c575
-rw-r--r--drivers/gpu/drm/gma500/oaktrail_hdmi.c856
-rw-r--r--drivers/gpu/drm/gma500/oaktrail_hdmi_i2c.c327
-rw-r--r--drivers/gpu/drm/gma500/oaktrail_lvds.c425
-rw-r--r--drivers/gpu/drm/gma500/opregion.c357
-rw-r--r--drivers/gpu/drm/gma500/opregion.h54
-rw-r--r--drivers/gpu/drm/gma500/power.c332
-rw-r--r--drivers/gpu/drm/gma500/power.h70
-rw-r--r--drivers/gpu/drm/gma500/psb_device.c360
-rw-r--r--drivers/gpu/drm/gma500/psb_device.h24
-rw-r--r--drivers/gpu/drm/gma500/psb_drv.c529
-rw-r--r--drivers/gpu/drm/gma500/psb_drv.h922
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_display.c584
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_drv.h285
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_lvds.c850
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_modes.c75
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_reg.h1545
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_sdvo.c2643
-rw-r--r--drivers/gpu/drm/gma500/psb_intel_sdvo_regs.h723
-rw-r--r--drivers/gpu/drm/gma500/psb_irq.c684
-rw-r--r--drivers/gpu/drm/gma500/psb_irq.h47
-rw-r--r--drivers/gpu/drm/gma500/psb_lid.c94
-rw-r--r--drivers/gpu/drm/gma500/psb_reg.h582
-rw-r--r--drivers/gpu/drm/gma500/tc35876x-dsi-lvds.c829
-rw-r--r--drivers/gpu/drm/gma500/tc35876x-dsi-lvds.h38
-rw-r--r--drivers/gpu/drm/i2c/Kconfig28
-rw-r--r--drivers/gpu/drm/i2c/Makefile10
-rw-r--r--drivers/gpu/drm/i2c/ch7006_drv.c552
-rw-r--r--drivers/gpu/drm/i2c/ch7006_mode.c471
-rw-r--r--drivers/gpu/drm/i2c/ch7006_priv.h345
-rw-r--r--drivers/gpu/drm/i2c/sil164_drv.c464
-rw-r--r--drivers/gpu/drm/i2c/tda998x_drv.c1422
-rw-r--r--drivers/gpu/drm/i810/i810_dma.c179
-rw-r--r--drivers/gpu/drm/i810/i810_drv.c58
-rw-r--r--drivers/gpu/drm/i810/i810_drv.h73
-rw-r--r--drivers/gpu/drm/i830/Makefile8
-rw-r--r--drivers/gpu/drm/i830/i830_dma.c1553
-rw-r--r--drivers/gpu/drm/i830/i830_drv.c108
-rw-r--r--drivers/gpu/drm/i830/i830_drv.h292
-rw-r--r--drivers/gpu/drm/i830/i830_irq.c186
-rw-r--r--drivers/gpu/drm/i915/Kconfig83
-rw-r--r--drivers/gpu/drm/i915/Makefile80
-rw-r--r--drivers/gpu/drm/i915/dvo.h51
-rw-r--r--drivers/gpu/drm/i915/dvo_ch7017.c150
-rw-r--r--drivers/gpu/drm/i915/dvo_ch7xxx.c132
-rw-r--r--drivers/gpu/drm/i915/dvo_ivch.c112
-rw-r--r--drivers/gpu/drm/i915/dvo_ns2501.c517
-rw-r--r--drivers/gpu/drm/i915/dvo_sil164.c109
-rw-r--r--drivers/gpu/drm/i915/dvo_tfp410.c129
-rw-r--r--drivers/gpu/drm/i915/i915_cmd_parser.c1061
-rw-r--r--drivers/gpu/drm/i915/i915_debugfs.c3913
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c1845
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c1542
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h2851
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c6614
-rw-r--r--drivers/gpu/drm/i915/i915_gem_context.c810
-rw-r--r--drivers/gpu/drm/i915/i915_gem_debug.c235
-rw-r--r--drivers/gpu/drm/i915/i915_gem_dmabuf.c313
-rw-r--r--drivers/gpu/drm/i915/i915_gem_evict.c277
-rw-r--r--drivers/gpu/drm/i915/i915_gem_execbuffer.c1548
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.c2150
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.h284
-rw-r--r--drivers/gpu/drm/i915/i915_gem_proc.c334
-rw-r--r--drivers/gpu/drm/i915/i915_gem_render_state.c198
-rw-r--r--drivers/gpu/drm/i915/i915_gem_stolen.c508
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c363
-rw-r--r--drivers/gpu/drm/i915/i915_gem_userptr.c711
-rw-r--r--drivers/gpu/drm/i915/i915_gpu_error.c1264
-rw-r--r--drivers/gpu/drm/i915/i915_ioc32.c35
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c4509
-rw-r--r--drivers/gpu/drm/i915/i915_mem.c387
-rw-r--r--drivers/gpu/drm/i915/i915_opregion.c369
-rw-r--r--drivers/gpu/drm/i915/i915_params.c158
-rw-r--r--drivers/gpu/drm/i915/i915_reg.h5732
-rw-r--r--drivers/gpu/drm/i915/i915_suspend.c539
-rw-r--r--drivers/gpu/drm/i915/i915_sysfs.c609
-rw-r--r--drivers/gpu/drm/i915/i915_trace.h595
-rw-r--r--drivers/gpu/drm/i915/i915_trace_points.c13
-rw-r--r--drivers/gpu/drm/i915/i915_ums.c538
-rw-r--r--drivers/gpu/drm/i915/intel_acpi.c165
-rw-r--r--drivers/gpu/drm/i915/intel_bios.c1232
-rw-r--r--drivers/gpu/drm/i915/intel_bios.h602
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c855
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c1720
-rw-r--r--drivers/gpu/drm/i915/intel_display.c12888
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c4416
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h998
-rw-r--r--drivers/gpu/drm/i915/intel_dsi.c765
-rw-r--r--drivers/gpu/drm/i915/intel_dsi.h138
-rw-r--r--drivers/gpu/drm/i915/intel_dsi_cmd.c421
-rw-r--r--drivers/gpu/drm/i915/intel_dsi_cmd.h112
-rw-r--r--drivers/gpu/drm/i915/intel_dsi_panel_vbt.c589
-rw-r--r--drivers/gpu/drm/i915/intel_dsi_pll.c300
-rw-r--r--drivers/gpu/drm/i915/intel_dvo.c441
-rw-r--r--drivers/gpu/drm/i915/intel_fb.c925
-rw-r--r--drivers/gpu/drm/i915/intel_fbdev.c702
-rw-r--r--drivers/gpu/drm/i915/intel_hdmi.c1563
-rw-r--r--drivers/gpu/drm/i915/intel_i2c.c703
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c1171
-rw-r--r--drivers/gpu/drm/i915/intel_modes.c121
-rw-r--r--drivers/gpu/drm/i915/intel_opregion.c910
-rw-r--r--drivers/gpu/drm/i915/intel_overlay.c1533
-rw-r--r--drivers/gpu/drm/i915/intel_panel.c1221
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c6612
-rw-r--r--drivers/gpu/drm/i915/intel_renderstate.h48
-rw-r--r--drivers/gpu/drm/i915/intel_renderstate_gen6.c289
-rw-r--r--drivers/gpu/drm/i915/intel_renderstate_gen7.c253
-rw-r--r--drivers/gpu/drm/i915/intel_renderstate_gen8.c479
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.c2405
-rw-r--r--drivers/gpu/drm/i915/intel_ringbuffer.h341
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo.c3360
-rw-r--r--drivers/gpu/drm/i915/intel_sdvo_regs.h537
-rw-r--r--drivers/gpu/drm/i915/intel_sideband.c282
-rw-r--r--drivers/gpu/drm/i915/intel_sprite.c1314
-rw-r--r--drivers/gpu/drm/i915/intel_tv.c1167
-rw-r--r--drivers/gpu/drm/i915/intel_uncore.c1079
-rw-r--r--drivers/gpu/drm/mga/mga_dma.c157
-rw-r--r--drivers/gpu/drm/mga/mga_drv.c58
-rw-r--r--drivers/gpu/drm/mga/mga_drv.h199
-rw-r--r--drivers/gpu/drm/mga/mga_ioc32.c21
-rw-r--r--drivers/gpu/drm/mga/mga_irq.c24
-rw-r--r--drivers/gpu/drm/mga/mga_state.c90
-rw-r--r--drivers/gpu/drm/mga/mga_ucode.h11645
-rw-r--r--drivers/gpu/drm/mga/mga_warp.c188
-rw-r--r--drivers/gpu/drm/mgag200/Kconfig16
-rw-r--r--drivers/gpu/drm/mgag200/Makefile5
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_cursor.c277
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_drv.c137
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_drv.h310
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_fb.c320
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_i2c.c156
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_main.c367
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_mode.c1675
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_reg.h665
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_ttm.c432
-rw-r--r--drivers/gpu/drm/msm/Kconfig35
-rw-r--r--drivers/gpu/drm/msm/Makefile43
-rw-r--r--drivers/gpu/drm/msm/NOTES87
-rw-r--r--drivers/gpu/drm/msm/adreno/a2xx.xml.h1555
-rw-r--r--drivers/gpu/drm/msm/adreno/a3xx.xml.h2259
-rw-r--r--drivers/gpu/drm/msm/adreno/a3xx_gpu.c709
-rw-r--r--drivers/gpu/drm/msm/adreno/a3xx_gpu.h34
-rw-r--r--drivers/gpu/drm/msm/adreno/adreno_common.xml.h411
-rw-r--r--drivers/gpu/drm/msm/adreno/adreno_gpu.c402
-rw-r--r--drivers/gpu/drm/msm/adreno/adreno_gpu.h164
-rw-r--r--drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h266
-rw-r--r--drivers/gpu/drm/msm/dsi/dsi.xml.h504
-rw-r--r--drivers/gpu/drm/msm/dsi/mmss_cc.xml.h116
-rw-r--r--drivers/gpu/drm/msm/dsi/sfpb.xml.h50
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi.c397
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi.h181
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi.xml.h575
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi_audio.c273
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi_bridge.c234
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi_connector.c436
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi_i2c.c281
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi_phy_8960.c141
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi_phy_8x60.c214
-rw-r--r--drivers/gpu/drm/msm/hdmi/hdmi_phy_8x74.c157
-rw-r--r--drivers/gpu/drm/msm/hdmi/qfprom.xml.h52
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4.xml.h1033
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c804
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_dtv_encoder.c303
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_irq.c93
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c418
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.h218
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c255
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5.xml.h1036
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c575
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_encoder.c258
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_irq.c111
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.c372
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_kms.h214
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c394
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.c173
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_smp.h41
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp_common.xml.h78
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp_format.c71
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp_kms.c145
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp_kms.h97
-rw-r--r--drivers/gpu/drm/msm/msm_drv.c1049
-rw-r--r--drivers/gpu/drm/msm/msm_drv.h257
-rw-r--r--drivers/gpu/drm/msm/msm_fb.c203
-rw-r--r--drivers/gpu/drm/msm/msm_fbdev.c255
-rw-r--r--drivers/gpu/drm/msm/msm_gem.c702
-rw-r--r--drivers/gpu/drm/msm/msm_gem.h102
-rw-r--r--drivers/gpu/drm/msm/msm_gem_prime.c56
-rw-r--r--drivers/gpu/drm/msm/msm_gem_submit.c427
-rw-r--r--drivers/gpu/drm/msm/msm_gpu.c655
-rw-r--r--drivers/gpu/drm/msm/msm_gpu.h173
-rw-r--r--drivers/gpu/drm/msm/msm_iommu.c165
-rw-r--r--drivers/gpu/drm/msm/msm_kms.h68
-rw-r--r--drivers/gpu/drm/msm/msm_mmu.h48
-rw-r--r--drivers/gpu/drm/msm/msm_perf.c275
-rw-r--r--drivers/gpu/drm/msm/msm_rd.c337
-rw-r--r--drivers/gpu/drm/msm/msm_ringbuffer.c61
-rw-r--r--drivers/gpu/drm/msm/msm_ringbuffer.h43
-rw-r--r--drivers/gpu/drm/nouveau/Kconfig62
-rw-r--r--drivers/gpu/drm/nouveau/Makefile351
-rw-r--r--drivers/gpu/drm/nouveau/core/core/client.c112
-rw-r--r--drivers/gpu/drm/nouveau/core/core/engctx.c251
-rw-r--r--drivers/gpu/drm/nouveau/core/core/engine.c68
-rw-r--r--drivers/gpu/drm/nouveau/core/core/enum.c68
-rw-r--r--drivers/gpu/drm/nouveau/core/core/event.c196
-rw-r--r--drivers/gpu/drm/nouveau/core/core/gpuobj.c323
-rw-r--r--drivers/gpu/drm/nouveau/core/core/handle.c226
-rw-r--r--drivers/gpu/drm/nouveau/core/core/mm.c254
-rw-r--r--drivers/gpu/drm/nouveau/core/core/namedb.c203
-rw-r--r--drivers/gpu/drm/nouveau/core/core/object.c474
-rw-r--r--drivers/gpu/drm/nouveau/core/core/option.c122
-rw-r--r--drivers/gpu/drm/nouveau/core/core/parent.c128
-rw-r--r--drivers/gpu/drm/nouveau/core/core/printk.c98
-rw-r--r--drivers/gpu/drm/nouveau/core/core/ramht.c108
-rw-r--r--drivers/gpu/drm/nouveau/core/core/subdev.c112
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/bsp/nv84.c92
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/bsp/nv98.c111
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/bsp/nvc0.c110
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/bsp/nve0.c110
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/copy/fuc/nva3.fuc872
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/copy/fuc/nva3.fuc.h620
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/copy/fuc/nvc0.fuc.h606
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/copy/nva3.c157
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/copy/nvc0.c174
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/copy/nve0.c177
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/crypt/fuc/nv98.fuc698
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/crypt/fuc/nv98.fuc.h584
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/crypt/nv84.c189
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/crypt/nv98.c157
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/base.c566
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/ctrl.c144
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/gm100.c106
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/nv04.c89
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/nv10.c204
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/nv20.c131
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/nv30.c153
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/nv40.c427
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/nv50.c460
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/nvc0.c348
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/nve0.c280
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/device/priv.h8
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/base.c172
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/conn.c172
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/conn.h59
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/dacnv50.c98
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/dport.c399
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/dport.h75
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/gm107.c101
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/hdanva3.c50
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/hdanvd0.c55
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/hdminv84.c70
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/hdminva3.c70
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/hdminvd0.c62
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/nv04.c158
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/nv50.c1726
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/nv50.h212
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/nv84.c284
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/nv94.c151
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/nva0.c146
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/nva3.c118
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c1404
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/nve0.c266
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/nvf0.c101
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/outp.c137
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/outp.h59
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/outpdp.c278
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/outpdp.h65
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/piornv50.c180
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/priv.h42
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/sornv50.c108
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/sornv94.c152
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/sornvd0.c132
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/disp/vga.c220
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/dmaobj/base.c120
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/dmaobj/nv04.c143
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/dmaobj/nv50.c161
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/dmaobj/nvc0.c143
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/dmaobj/nvd0.c128
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/falcon.c278
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/base.c208
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/gk20a.c35
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nv04.c644
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nv04.h178
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nv10.c171
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nv108.c37
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nv17.c208
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nv40.c349
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nv50.c517
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nv50.h36
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nv84.c450
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nvc0.c955
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nve0.c1091
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/fifo/nve0.h18
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctx.h129
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxgk20a.c53
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxgm107.c991
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnv108.c599
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnv40.c695
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnv50.c3341
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c1319
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.h179
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc1.c797
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc4.c103
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc8.c354
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd7.c275
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd9.c522
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnve4.c1021
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvf0.c885
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/com.fuc335
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpc.fuc378
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcgm107.fuc542
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcgm107.fuc5.h473
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc542
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnv108.fuc5.h473
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc42
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h530
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvd7.fuc42
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvd7.fuc.h537
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnve0.fuc42
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnve0.fuc.h537
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc42
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvf0.fuc.h537
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hub.fuc696
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubgm107.fuc540
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubgm107.fuc5.h916
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc540
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnv108.fuc5.h916
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc40
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h1047
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvd7.fuc40
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvd7.fuc.h1047
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc40
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnve0.fuc.h1044
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc40
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvf0.fuc.h1044
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/macros.fuc229
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/os.h8
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/gk20a.c47
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/gm107.c465
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv04.c1389
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv10.c1320
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv108.c223
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv20.c384
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv20.h31
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv25.c167
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv2a.c134
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv30.c238
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv34.c168
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv35.c166
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv40.c537
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv40.h24
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv50.c1010
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nv50.h7
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c1414
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nvc0.h234
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nvc1.c133
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nvc4.c128
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nvc8.c115
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nvd7.c136
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nvd9.c191
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nve4.c360
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nvf0.c244
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/regs.h274
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/mpeg/nv31.c310
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/mpeg/nv31.h15
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/mpeg/nv40.c142
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/mpeg/nv44.c194
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/mpeg/nv50.c231
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/mpeg/nv84.c103
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/base.c449
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/daemon.c109
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/nv40.c143
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/nv40.h26
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/nv50.c70
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/nv84.c78
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/nva3.c96
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/nvc0.c173
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/nvc0.h17
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/nve0.c162
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/nvf0.c71
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/perfmon/priv.h91
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/ppp/nv98.c110
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/ppp/nvc0.c110
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/software/nv04.c147
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/software/nv10.c129
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/software/nv50.c243
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/software/nv50.h47
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/software/nvc0.c149
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/vp/nv84.c92
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/vp/nv98.c110
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/vp/nvc0.c110
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/vp/nve0.c110
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/xtensa.c176
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/class.h470
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/client.h46
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/debug.h20
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/device.h174
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/engctx.h54
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/engine.h57
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/enum.h24
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/event.h47
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/gpuobj.h71
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/handle.h31
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/mm.h36
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/namedb.h56
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/object.h202
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/option.h20
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/parent.h61
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/printk.h31
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/ramht.h23
-rw-r--r--drivers/gpu/drm/nouveau/core/include/core/subdev.h118
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/bsp.h9
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/copy.h13
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/crypt.h7
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/device.h33
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/disp.h42
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/dmaobj.h48
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/falcon.h83
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/fifo.h118
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/graph.h85
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/mpeg.h63
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/perfmon.h39
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/ppp.h7
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/software.h51
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/vp.h9
-rw-r--r--drivers/gpu/drm/nouveau/core/include/engine/xtensa.h38
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bar.h34
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios.h35
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/P0260.h23
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/bit.h13
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/bmp.h39
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/boost.h29
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/conn.h46
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/cstep.h28
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/dcb.h69
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/disp.h48
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/dp.h35
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/extdev.h30
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/gpio.h48
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/i2c.h25
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/init.h22
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/mxm.h9
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/perf.h47
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/pll.h79
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/ramcfg.h66
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/rammap.h25
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/therm.h69
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/timing.h14
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/vmap.h25
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/volt.h27
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bios/xpio.h19
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/bus.h53
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/clock.h153
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/devinit.h34
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/fb.h162
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/gpio.h41
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/i2c.h130
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/ibus.h35
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/instmem.h52
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/ltcg.h41
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/mc.h58
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/mxm.h37
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/pwr.h80
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/therm.h82
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/timer.h64
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/vga.h30
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/vm.h135
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/volt.h60
-rw-r--r--drivers/gpu/drm/nouveau/core/os.h41
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bar/base.c141
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bar/nv50.c273
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bar/nvc0.c221
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bar/priv.h26
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/P0260.c109
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/base.c552
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/bit.c52
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/boost.c127
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/conn.c100
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/cstep.c123
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/dcb.c231
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/disp.c178
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/dp.c209
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/extdev.c100
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/gpio.c150
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/i2c.c134
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/init.c2185
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/mxm.c135
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/perf.c201
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/pll.c416
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/ramcfg.c68
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/rammap.c173
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/therm.c215
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/timing.c127
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/vmap.c112
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/volt.c137
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bios/xpio.c76
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bus/hwsq.c145
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bus/hwsq.h113
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bus/nv04.c95
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bus/nv04.h23
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bus/nv31.c92
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bus/nv50.c105
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bus/nv94.c59
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/bus/nvc0.c81
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/base.c500
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/nv04.c105
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/nv40.c240
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/nv50.c559
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/nv50.h31
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/nv84.c48
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/nva3.c327
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/nva3.h14
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/nvaa.c446
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/nvc0.c462
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/nve0.c500
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/pll.h9
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/pllnv04.c246
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/pllnva3.c89
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/clock/seq.h17
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/base.c101
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/fbmem.h100
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/gm107.c56
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.c467
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.h23
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nv05.c139
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nv10.c110
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nv1a.c37
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nv20.c74
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.c163
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.h21
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nv84.c63
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nv98.c62
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nva3.c145
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nvaf.c63
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/nvc0.c118
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/devinit/priv.h38
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/base.c166
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/gddr5.c122
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/gk20a.c56
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/gm107.c38
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv04.c89
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv04.h55
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv10.c71
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv1a.c44
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv20.c95
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv25.c61
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv30.c139
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv35.c62
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv36.c62
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv40.c76
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv40.h17
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv41.c69
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv44.c78
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv46.c58
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv47.c45
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv49.c45
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv4e.c44
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv50.c313
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv50.h33
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nv84.c39
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nva3.c39
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nvaa.c39
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nvaf.c39
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nvc0.c116
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nvc0.h31
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/nve0.c38
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/priv.h74
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramfuc.h118
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramgk20a.c152
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramgm107.c56
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv04.c95
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv10.c61
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv1a.c71
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv20.c63
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv40.c215
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv41.c67
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv44.c65
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv49.c67
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv4e.c55
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnv50.c472
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnva3.c439
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnvaa.c66
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnvc0.c732
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramnve0.c1392
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/ramseq.h18
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/fb/sddr3.c99
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/base.c236
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/nv10.c116
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c129
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/nv92.c74
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/nvd0.c85
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/nve0.c74
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/priv.h67
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/anx9805.c292
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/aux.c114
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/base.c574
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/bit.c234
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/gf117.c39
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/nv04.c130
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/nv4e.c122
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/nv50.c135
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/nv50.h32
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/nv94.c291
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/nvd0.c112
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/nve0.c72
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/pad.c84
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/pad.h58
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/padnv04.c35
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/padnv94.c86
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/port.h15
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/i2c/priv.h85
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/ibus/gk20a.c103
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/ibus/nvc0.c123
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/ibus/nve0.c140
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/instmem/base.c157
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/instmem/nv04.c182
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/instmem/nv04.h40
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/instmem/nv40.c137
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/instmem/nv50.c171
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/instmem/priv.h56
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/ltcg/gf100.c226
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/ltcg/gf100.h21
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/ltcg/gm107.c142
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/base.c159
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/nv04.c79
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/nv04.h22
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/nv40.c45
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/nv44.c54
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/nv4c.c45
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/nv50.c71
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/nv94.c38
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/nv98.c59
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/nvc0.c70
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mc/nvc3.c38
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mxm/base.c274
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mxm/mxms.c193
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mxm/mxms.h22
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/mxm/nv50.c233
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/base.c247
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/host.fuc151
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/i2c_.fuc393
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/idle.fuc84
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/kernel.fuc454
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc252
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/memx.fuc219
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc66
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h1460
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc66
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h1589
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc66
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h1589
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc66
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h1524
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/os.h46
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/perf.fuc57
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/test.fuc64
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c121
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/nv108.c62
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/nva3.c71
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/nvc0.c62
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/pwr/nvd0.c62
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/base.c374
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/fan.c282
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/fannil.c54
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/fanpwm.c107
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/fantog.c122
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/ic.c121
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/nv40.c224
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/nv50.c197
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/nv84.c234
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/nva3.c99
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/nvd0.c172
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/priv.h156
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/therm/temp.c264
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/timer/base.c94
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/timer/gk20a.c57
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/timer/nv04.c264
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/timer/nv04.h27
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/timer/priv.h6
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/vm/base.c483
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/vm/nv04.c151
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/vm/nv04.h19
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/vm/nv41.c159
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/vm/nv44.c249
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/vm/nv50.c240
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/vm/nvc0.c242
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/volt/base.c198
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/volt/gpio.c96
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/volt/nv40.c56
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/Makefile11
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/arb.c265
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/crtc.c1145
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/cursor.c70
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/dac.c556
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/dfp.c722
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/disp.c208
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/disp.h188
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/hw.c829
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/hw.h409
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/nvreg.h517
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/overlay.c497
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/tvmodesnv17.c592
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/tvnv04.c251
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/tvnv17.c842
-rw-r--r--drivers/gpu/drm/nouveau/dispnv04/tvnv17.h163
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_abi16.c507
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_abi16.h115
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_acpi.c439
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_acpi.h26
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_agp.c198
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_agp.h10
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_backlight.c255
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bios.c2120
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bios.h179
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bo.c1535
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bo.h103
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_chan.c398
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_chan.h47
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_connector.c1241
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_connector.h112
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_crtc.h87
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_debugfs.c64
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_debugfs.h22
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_display.c890
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_display.h101
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_dma.c262
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_dma.h212
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_dp.c94
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_drm.c1059
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_drm.h168
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_encoder.h93
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_fbcon.c540
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_fbcon.h69
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_fence.c338
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_fence.h98
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_gem.c926
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_gem.h45
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_hwmon.c652
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_hwmon.h43
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_ioc32.c69
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_ioctl.h7
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_prime.c104
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_reg.h858
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_sgdma.c115
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_sysfs.c164
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_sysfs.h19
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_ttm.c440
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_ttm.h25
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_vga.c118
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_vga.h8
-rw-r--r--drivers/gpu/drm/nouveau/nv04_fbcon.c283
-rw-r--r--drivers/gpu/drm/nouveau/nv04_fence.c111
-rw-r--r--drivers/gpu/drm/nouveau/nv10_fence.c110
-rw-r--r--drivers/gpu/drm/nouveau/nv10_fence.h19
-rw-r--r--drivers/gpu/drm/nouveau/nv17_fence.c149
-rw-r--r--drivers/gpu/drm/nouveau/nv50_display.c2322
-rw-r--r--drivers/gpu/drm/nouveau/nv50_display.h45
-rw-r--r--drivers/gpu/drm/nouveau/nv50_fbcon.c259
-rw-r--r--drivers/gpu/drm/nouveau/nv50_fence.c123
-rw-r--r--drivers/gpu/drm/nouveau/nv84_fence.c276
-rw-r--r--drivers/gpu/drm/nouveau/nvc0_fbcon.c262
-rw-r--r--drivers/gpu/drm/nouveau/nvc0_fence.c90
-rw-r--r--drivers/gpu/drm/omapdrm/Kconfig26
-rw-r--r--drivers/gpu/drm/omapdrm/Makefile21
-rw-r--r--drivers/gpu/drm/omapdrm/TODO23
-rw-r--r--drivers/gpu/drm/omapdrm/omap_connector.c319
-rw-r--r--drivers/gpu/drm/omapdrm/omap_crtc.c739
-rw-r--r--drivers/gpu/drm/omapdrm/omap_debugfs.c125
-rw-r--r--drivers/gpu/drm/omapdrm/omap_dmm_priv.h188
-rw-r--r--drivers/gpu/drm/omapdrm/omap_dmm_tiler.c996
-rw-r--r--drivers/gpu/drm/omapdrm/omap_dmm_tiler.h141
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.c770
-rw-r--r--drivers/gpu/drm/omapdrm/omap_drv.h304
-rw-r--r--drivers/gpu/drm/omapdrm/omap_encoder.c191
-rw-r--r--drivers/gpu/drm/omapdrm/omap_fb.c485
-rw-r--r--drivers/gpu/drm/omapdrm/omap_fbdev.c386
-rw-r--r--drivers/gpu/drm/omapdrm/omap_gem.c1485
-rw-r--r--drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c201
-rw-r--r--drivers/gpu/drm/omapdrm/omap_irq.c342
-rw-r--r--drivers/gpu/drm/omapdrm/omap_plane.c455
-rw-r--r--drivers/gpu/drm/omapdrm/tcm-sita.c703
-rw-r--r--drivers/gpu/drm/omapdrm/tcm-sita.h95
-rw-r--r--drivers/gpu/drm/omapdrm/tcm.h328
-rw-r--r--drivers/gpu/drm/panel/Kconfig33
-rw-r--r--drivers/gpu/drm/panel/Makefile3
-rw-r--r--drivers/gpu/drm/panel/panel-ld9040.c379
-rw-r--r--drivers/gpu/drm/panel/panel-s6e8aa0.c1070
-rw-r--r--drivers/gpu/drm/panel/panel-simple.c702
-rw-r--r--drivers/gpu/drm/qxl/Kconfig15
-rw-r--r--drivers/gpu/drm/qxl/Makefile9
-rw-r--r--drivers/gpu/drm/qxl/qxl_cmd.c693
-rw-r--r--drivers/gpu/drm/qxl/qxl_debugfs.c141
-rw-r--r--drivers/gpu/drm/qxl/qxl_dev.h879
-rw-r--r--drivers/gpu/drm/qxl/qxl_display.c1043
-rw-r--r--drivers/gpu/drm/qxl/qxl_draw.c487
-rw-r--r--drivers/gpu/drm/qxl/qxl_drv.c264
-rw-r--r--drivers/gpu/drm/qxl/qxl_drv.h570
-rw-r--r--drivers/gpu/drm/qxl/qxl_dumb.c86
-rw-r--r--drivers/gpu/drm/qxl/qxl_fb.c715
-rw-r--r--drivers/gpu/drm/qxl/qxl_fence.c91
-rw-r--r--drivers/gpu/drm/qxl/qxl_gem.c117
-rw-r--r--drivers/gpu/drm/qxl/qxl_image.c237
-rw-r--r--drivers/gpu/drm/qxl/qxl_ioctl.c454
-rw-r--r--drivers/gpu/drm/qxl/qxl_irq.c100
-rw-r--r--drivers/gpu/drm/qxl/qxl_kms.c341
-rw-r--r--drivers/gpu/drm/qxl/qxl_object.c324
-rw-r--r--drivers/gpu/drm/qxl/qxl_object.h105
-rw-r--r--drivers/gpu/drm/qxl/qxl_release.c359
-rw-r--r--drivers/gpu/drm/qxl/qxl_ttm.c580
-rw-r--r--drivers/gpu/drm/r128/r128_cce.c208
-rw-r--r--drivers/gpu/drm/r128/r128_drv.c57
-rw-r--r--drivers/gpu/drm/r128/r128_drv.h136
-rw-r--r--drivers/gpu/drm/r128/r128_ioc32.c24
-rw-r--r--drivers/gpu/drm/r128/r128_irq.c11
-rw-r--r--drivers/gpu/drm/r128/r128_state.c317
-rw-r--r--drivers/gpu/drm/radeon/.gitignore3
-rw-r--r--drivers/gpu/drm/radeon/Kconfig8
-rw-r--r--drivers/gpu/drm/radeon/Makefile106
-rw-r--r--drivers/gpu/drm/radeon/ObjectID.h736
-rw-r--r--drivers/gpu/drm/radeon/atom-bits.h48
-rw-r--r--drivers/gpu/drm/radeon/atom-names.h100
-rw-r--r--drivers/gpu/drm/radeon/atom-types.h42
-rw-r--r--drivers/gpu/drm/radeon/atom.c1416
-rw-r--r--drivers/gpu/drm/radeon/atom.h159
-rw-r--r--drivers/gpu/drm/radeon/atombios.h7981
-rw-r--r--drivers/gpu/drm/radeon/atombios_crtc.c2223
-rw-r--r--drivers/gpu/drm/radeon/atombios_dp.c867
-rw-r--r--drivers/gpu/drm/radeon/atombios_encoders.c2713
-rw-r--r--drivers/gpu/drm/radeon/atombios_i2c.c157
-rw-r--r--drivers/gpu/drm/radeon/avivod.h62
-rw-r--r--drivers/gpu/drm/radeon/btc_dpm.c2815
-rw-r--r--drivers/gpu/drm/radeon/btc_dpm.h59
-rw-r--r--drivers/gpu/drm/radeon/btcd.h185
-rw-r--r--drivers/gpu/drm/radeon/cayman_blit_shaders.c320
-rw-r--r--drivers/gpu/drm/radeon/cayman_blit_shaders.h35
-rw-r--r--drivers/gpu/drm/radeon/ci_dpm.c5327
-rw-r--r--drivers/gpu/drm/radeon/ci_dpm.h332
-rw-r--r--drivers/gpu/drm/radeon/ci_smc.c280
-rw-r--r--drivers/gpu/drm/radeon/cik.c9466
-rw-r--r--drivers/gpu/drm/radeon/cik_blit_shaders.c246
-rw-r--r--drivers/gpu/drm/radeon/cik_blit_shaders.h32
-rw-r--r--drivers/gpu/drm/radeon/cik_reg.h150
-rw-r--r--drivers/gpu/drm/radeon/cik_sdma.c870
-rw-r--r--drivers/gpu/drm/radeon/cikd.h2072
-rw-r--r--drivers/gpu/drm/radeon/clearstate_cayman.h1081
-rw-r--r--drivers/gpu/drm/radeon/clearstate_ci.h944
-rw-r--r--drivers/gpu/drm/radeon/clearstate_defs.h44
-rw-r--r--drivers/gpu/drm/radeon/clearstate_evergreen.h1080
-rw-r--r--drivers/gpu/drm/radeon/clearstate_si.h941
-rw-r--r--drivers/gpu/drm/radeon/cypress_dpm.c2162
-rw-r--r--drivers/gpu/drm/radeon/cypress_dpm.h160
-rw-r--r--drivers/gpu/drm/radeon/dce3_1_afmt.c244
-rw-r--r--drivers/gpu/drm/radeon/dce6_afmt.c352
-rw-r--r--drivers/gpu/drm/radeon/evergreen.c5713
-rw-r--r--drivers/gpu/drm/radeon/evergreen_blit_shaders.c303
-rw-r--r--drivers/gpu/drm/radeon/evergreen_blit_shaders.h35
-rw-r--r--drivers/gpu/drm/radeon/evergreen_cs.c3517
-rw-r--r--drivers/gpu/drm/radeon/evergreen_dma.c184
-rw-r--r--drivers/gpu/drm/radeon/evergreen_hdmi.c489
-rw-r--r--drivers/gpu/drm/radeon/evergreen_reg.h254
-rw-r--r--drivers/gpu/drm/radeon/evergreen_smc.h67
-rw-r--r--drivers/gpu/drm/radeon/evergreend.h2572
-rw-r--r--drivers/gpu/drm/radeon/kv_dpm.c2830
-rw-r--r--drivers/gpu/drm/radeon/kv_dpm.h200
-rw-r--r--drivers/gpu/drm/radeon/kv_smc.c215
-rw-r--r--drivers/gpu/drm/radeon/mkregtable.c712
-rw-r--r--drivers/gpu/drm/radeon/ni.c2520
-rw-r--r--drivers/gpu/drm/radeon/ni_dma.c408
-rw-r--r--drivers/gpu/drm/radeon/ni_dpm.c4364
-rw-r--r--drivers/gpu/drm/radeon/ni_dpm.h250
-rw-r--r--drivers/gpu/drm/radeon/ni_reg.h86
-rw-r--r--drivers/gpu/drm/radeon/nid.h1286
-rw-r--r--drivers/gpu/drm/radeon/nislands_smc.h329
-rw-r--r--drivers/gpu/drm/radeon/ppsmc.h175
-rw-r--r--drivers/gpu/drm/radeon/pptable.h682
-rw-r--r--drivers/gpu/drm/radeon/r100.c4121
-rw-r--r--drivers/gpu/drm/radeon/r100_track.h97
-rw-r--r--drivers/gpu/drm/radeon/r100d.h869
-rw-r--r--drivers/gpu/drm/radeon/r200.c548
-rw-r--r--drivers/gpu/drm/radeon/r300.c1560
-rw-r--r--drivers/gpu/drm/radeon/r300_cmdbuf.c302
-rw-r--r--drivers/gpu/drm/radeon/r300_reg.h70
-rw-r--r--drivers/gpu/drm/radeon/r300d.h343
-rw-r--r--drivers/gpu/drm/radeon/r420.c503
-rw-r--r--drivers/gpu/drm/radeon/r420d.h249
-rw-r--r--drivers/gpu/drm/radeon/r500_reg.h801
-rw-r--r--drivers/gpu/drm/radeon/r520.c332
-rw-r--r--drivers/gpu/drm/radeon/r520d.h187
-rw-r--r--drivers/gpu/drm/radeon/r600.c4341
-rw-r--r--drivers/gpu/drm/radeon/r600_audio.c207
-rw-r--r--drivers/gpu/drm/radeon/r600_blit.c874
-rw-r--r--drivers/gpu/drm/radeon/r600_blit_shaders.c719
-rw-r--r--drivers/gpu/drm/radeon/r600_blit_shaders.h38
-rw-r--r--drivers/gpu/drm/radeon/r600_cp.c2660
-rw-r--r--drivers/gpu/drm/radeon/r600_cs.c2632
-rw-r--r--drivers/gpu/drm/radeon/r600_dma.c500
-rw-r--r--drivers/gpu/drm/radeon/r600_dpm.c1357
-rw-r--r--drivers/gpu/drm/radeon/r600_dpm.h233
-rw-r--r--drivers/gpu/drm/radeon/r600_hdmi.c586
-rw-r--r--drivers/gpu/drm/radeon/r600_reg.h180
-rw-r--r--drivers/gpu/drm/radeon/r600d.h2319
-rw-r--r--drivers/gpu/drm/radeon/radeon.h2947
-rw-r--r--drivers/gpu/drm/radeon/radeon_acpi.c790
-rw-r--r--drivers/gpu/drm/radeon/radeon_acpi.h445
-rw-r--r--drivers/gpu/drm/radeon/radeon_agp.c282
-rw-r--r--drivers/gpu/drm/radeon/radeon_asic.c2569
-rw-r--r--drivers/gpu/drm/radeon/radeon_asic.h892
-rw-r--r--drivers/gpu/drm/radeon/radeon_atombios.c4339
-rw-r--r--drivers/gpu/drm/radeon/radeon_atpx_handler.c583
-rw-r--r--drivers/gpu/drm/radeon/radeon_benchmark.c250
-rw-r--r--drivers/gpu/drm/radeon/radeon_bios.c701
-rw-r--r--drivers/gpu/drm/radeon/radeon_clocks.c912
-rw-r--r--drivers/gpu/drm/radeon/radeon_combios.c3603
-rw-r--r--drivers/gpu/drm/radeon/radeon_connectors.c2215
-rw-r--r--drivers/gpu/drm/radeon/radeon_cp.c780
-rw-r--r--drivers/gpu/drm/radeon/radeon_cs.c823
-rw-r--r--drivers/gpu/drm/radeon/radeon_cursor.c314
-rw-r--r--drivers/gpu/drm/radeon/radeon_device.c1762
-rw-r--r--drivers/gpu/drm/radeon/radeon_display.c1991
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.c582
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.h871
-rw-r--r--drivers/gpu/drm/radeon/radeon_encoders.c384
-rw-r--r--drivers/gpu/drm/radeon/radeon_family.h122
-rw-r--r--drivers/gpu/drm/radeon/radeon_fb.c405
-rw-r--r--drivers/gpu/drm/radeon/radeon_fence.c854
-rw-r--r--drivers/gpu/drm/radeon/radeon_gart.c394
-rw-r--r--drivers/gpu/drm/radeon/radeon_gem.c638
-rw-r--r--drivers/gpu/drm/radeon/radeon_i2c.c1166
-rw-r--r--drivers/gpu/drm/radeon/radeon_ioc32.c56
-rw-r--r--drivers/gpu/drm/radeon/radeon_irq.c59
-rw-r--r--drivers/gpu/drm/radeon/radeon_irq_kms.c508
-rw-r--r--drivers/gpu/drm/radeon/radeon_kms.c878
-rw-r--r--drivers/gpu/drm/radeon/radeon_legacy_crtc.c1126
-rw-r--r--drivers/gpu/drm/radeon/radeon_legacy_encoders.c1810
-rw-r--r--drivers/gpu/drm/radeon/radeon_legacy_tv.c923
-rw-r--r--drivers/gpu/drm/radeon/radeon_mem.c34
-rw-r--r--drivers/gpu/drm/radeon/radeon_microcode.h1844
-rw-r--r--drivers/gpu/drm/radeon/radeon_mode.h926
-rw-r--r--drivers/gpu/drm/radeon/radeon_object.c745
-rw-r--r--drivers/gpu/drm/radeon/radeon_object.h193
-rw-r--r--drivers/gpu/drm/radeon/radeon_pm.c1700
-rw-r--r--drivers/gpu/drm/radeon/radeon_prime.c105
-rw-r--r--drivers/gpu/drm/radeon/radeon_reg.h3725
-rw-r--r--drivers/gpu/drm/radeon/radeon_ring.c839
-rw-r--r--drivers/gpu/drm/radeon/radeon_sa.c419
-rw-r--r--drivers/gpu/drm/radeon/radeon_semaphore.c205
-rw-r--r--drivers/gpu/drm/radeon/radeon_state.c384
-rw-r--r--drivers/gpu/drm/radeon/radeon_test.c569
-rw-r--r--drivers/gpu/drm/radeon/radeon_trace.h191
-rw-r--r--drivers/gpu/drm/radeon/radeon_trace_points.c9
-rw-r--r--drivers/gpu/drm/radeon/radeon_ttm.c1030
-rw-r--r--drivers/gpu/drm/radeon/radeon_ucode.h156
-rw-r--r--drivers/gpu/drm/radeon/radeon_uvd.c964
-rw-r--r--drivers/gpu/drm/radeon/radeon_vce.c771
-rw-r--r--drivers/gpu/drm/radeon/radeon_vm.c1089
-rw-r--r--drivers/gpu/drm/radeon/reg_srcs/cayman642
-rw-r--r--drivers/gpu/drm/radeon/reg_srcs/evergreen644
-rw-r--r--drivers/gpu/drm/radeon/reg_srcs/r100105
-rw-r--r--drivers/gpu/drm/radeon/reg_srcs/r200186
-rw-r--r--drivers/gpu/drm/radeon/reg_srcs/r300714
-rw-r--r--drivers/gpu/drm/radeon/reg_srcs/r420780
-rw-r--r--drivers/gpu/drm/radeon/reg_srcs/r600756
-rw-r--r--drivers/gpu/drm/radeon/reg_srcs/rn5030
-rw-r--r--drivers/gpu/drm/radeon/reg_srcs/rs600780
-rw-r--r--drivers/gpu/drm/radeon/reg_srcs/rv515496
-rw-r--r--drivers/gpu/drm/radeon/rs100d.h40
-rw-r--r--drivers/gpu/drm/radeon/rs400.c576
-rw-r--r--drivers/gpu/drm/radeon/rs400d.h160
-rw-r--r--drivers/gpu/drm/radeon/rs600.c1143
-rw-r--r--drivers/gpu/drm/radeon/rs600d.h685
-rw-r--r--drivers/gpu/drm/radeon/rs690.c866
-rw-r--r--drivers/gpu/drm/radeon/rs690d.h313
-rw-r--r--drivers/gpu/drm/radeon/rs780_dpm.c1053
-rw-r--r--drivers/gpu/drm/radeon/rs780_dpm.h109
-rw-r--r--drivers/gpu/drm/radeon/rs780d.h171
-rw-r--r--drivers/gpu/drm/radeon/rv200d.h36
-rw-r--r--drivers/gpu/drm/radeon/rv250d.h123
-rw-r--r--drivers/gpu/drm/radeon/rv350d.h52
-rw-r--r--drivers/gpu/drm/radeon/rv515.c1303
-rw-r--r--drivers/gpu/drm/radeon/rv515d.h638
-rw-r--r--drivers/gpu/drm/radeon/rv6xx_dpm.c2112
-rw-r--r--drivers/gpu/drm/radeon/rv6xx_dpm.h95
-rw-r--r--drivers/gpu/drm/radeon/rv6xxd.h246
-rw-r--r--drivers/gpu/drm/radeon/rv730_dpm.c508
-rw-r--r--drivers/gpu/drm/radeon/rv730d.h165
-rw-r--r--drivers/gpu/drm/radeon/rv740_dpm.c416
-rw-r--r--drivers/gpu/drm/radeon/rv740d.h117
-rw-r--r--drivers/gpu/drm/radeon/rv770.c2060
-rw-r--r--drivers/gpu/drm/radeon/rv770_dma.c97
-rw-r--r--drivers/gpu/drm/radeon/rv770_dpm.c2537
-rw-r--r--drivers/gpu/drm/radeon/rv770_dpm.h286
-rw-r--r--drivers/gpu/drm/radeon/rv770_smc.c631
-rw-r--r--drivers/gpu/drm/radeon/rv770_smc.h207
-rw-r--r--drivers/gpu/drm/radeon/rv770d.h1011
-rw-r--r--drivers/gpu/drm/radeon/si.c7318
-rw-r--r--drivers/gpu/drm/radeon/si_blit_shaders.c253
-rw-r--r--drivers/gpu/drm/radeon/si_blit_shaders.h32
-rw-r--r--drivers/gpu/drm/radeon/si_dma.c243
-rw-r--r--drivers/gpu/drm/radeon/si_dpm.c6499
-rw-r--r--drivers/gpu/drm/radeon/si_dpm.h227
-rw-r--r--drivers/gpu/drm/radeon/si_reg.h105
-rw-r--r--drivers/gpu/drm/radeon/si_smc.c298
-rw-r--r--drivers/gpu/drm/radeon/sid.h1849
-rw-r--r--drivers/gpu/drm/radeon/sislands_smc.h395
-rw-r--r--drivers/gpu/drm/radeon/smu7.h170
-rw-r--r--drivers/gpu/drm/radeon/smu7_discrete.h486
-rw-r--r--drivers/gpu/drm/radeon/smu7_fusion.h300
-rw-r--r--drivers/gpu/drm/radeon/sumo_dpm.c1912
-rw-r--r--drivers/gpu/drm/radeon/sumo_dpm.h223
-rw-r--r--drivers/gpu/drm/radeon/sumo_smc.c221
-rw-r--r--drivers/gpu/drm/radeon/sumod.h372
-rw-r--r--drivers/gpu/drm/radeon/trinity_dpm.c1987
-rw-r--r--drivers/gpu/drm/radeon/trinity_dpm.h134
-rw-r--r--drivers/gpu/drm/radeon/trinity_smc.c127
-rw-r--r--drivers/gpu/drm/radeon/trinityd.h228
-rw-r--r--drivers/gpu/drm/radeon/uvd_v1_0.c444
-rw-r--r--drivers/gpu/drm/radeon/uvd_v2_2.c165
-rw-r--r--drivers/gpu/drm/radeon/uvd_v3_1.c57
-rw-r--r--drivers/gpu/drm/radeon/uvd_v4_2.c68
-rw-r--r--drivers/gpu/drm/radeon/vce_v1_0.c187
-rw-r--r--drivers/gpu/drm/radeon/vce_v2_0.c181
-rw-r--r--drivers/gpu/drm/rcar-du/Kconfig19
-rw-r--r--drivers/gpu/drm/rcar-du/Makefile12
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_crtc.c610
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_crtc.h55
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_drv.c320
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_drv.h107
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_encoder.c202
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_encoder.h49
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_group.c187
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_group.h50
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_kms.c293
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_kms.h39
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c124
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_lvdscon.h25
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.c192
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_lvdsenc.h46
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_plane.c516
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_plane.h81
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_regs.h513
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_vgacon.c89
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_vgacon.h23
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_lvds_regs.h69
-rw-r--r--drivers/gpu/drm/savage/savage_bci.c137
-rw-r--r--drivers/gpu/drm/savage/savage_drv.c52
-rw-r--r--drivers/gpu/drm/savage/savage_drv.h7
-rw-r--r--drivers/gpu/drm/savage/savage_state.c34
-rw-r--r--drivers/gpu/drm/shmobile/Kconfig13
-rw-r--r--drivers/gpu/drm/shmobile/Makefile7
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_backlight.c90
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_backlight.h23
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_crtc.c756
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_crtc.h60
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_drv.c360
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_drv.h47
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_kms.c160
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_kms.h34
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_plane.c263
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_plane.h22
-rw-r--r--drivers/gpu/drm/shmobile/shmob_drm_regs.h311
-rw-r--r--drivers/gpu/drm/sis/sis_drv.c95
-rw-r--r--drivers/gpu/drm/sis/sis_drv.h13
-rw-r--r--drivers/gpu/drm/sis/sis_mm.c249
-rw-r--r--drivers/gpu/drm/tdfx/tdfx_drv.c47
-rw-r--r--drivers/gpu/drm/tegra/Kconfig43
-rw-r--r--drivers/gpu/drm/tegra/Makefile18
-rw-r--r--drivers/gpu/drm/tegra/dc.c1446
-rw-r--r--drivers/gpu/drm/tegra/dc.h440
-rw-r--r--drivers/gpu/drm/tegra/dpaux.c573
-rw-r--r--drivers/gpu/drm/tegra/dpaux.h74
-rw-r--r--drivers/gpu/drm/tegra/drm.c776
-rw-r--r--drivers/gpu/drm/tegra/drm.h297
-rw-r--r--drivers/gpu/drm/tegra/dsi.c993
-rw-r--r--drivers/gpu/drm/tegra/dsi.h130
-rw-r--r--drivers/gpu/drm/tegra/fb.c400
-rw-r--r--drivers/gpu/drm/tegra/gem.c445
-rw-r--r--drivers/gpu/drm/tegra/gem.h59
-rw-r--r--drivers/gpu/drm/tegra/gr2d.c219
-rw-r--r--drivers/gpu/drm/tegra/gr2d.h28
-rw-r--r--drivers/gpu/drm/tegra/gr3d.c356
-rw-r--r--drivers/gpu/drm/tegra/gr3d.h27
-rw-r--r--drivers/gpu/drm/tegra/hdmi.c1581
-rw-r--r--drivers/gpu/drm/tegra/hdmi.h541
-rw-r--r--drivers/gpu/drm/tegra/mipi-phy.c124
-rw-r--r--drivers/gpu/drm/tegra/mipi-phy.h51
-rw-r--r--drivers/gpu/drm/tegra/output.c331
-rw-r--r--drivers/gpu/drm/tegra/rgb.c325
-rw-r--r--drivers/gpu/drm/tegra/sor.c1466
-rw-r--r--drivers/gpu/drm/tegra/sor.h282
-rw-r--r--drivers/gpu/drm/tilcdc/Kconfig14
-rw-r--r--drivers/gpu/drm/tilcdc/Makefile13
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_crtc.c685
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_drv.c642
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_drv.h173
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_panel.c437
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_panel.h26
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_regs.h155
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_slave.c406
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_slave.h26
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_tfp410.c419
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_tfp410.h26
-rw-r--r--drivers/gpu/drm/ttm/Makefile10
-rw-r--r--drivers/gpu/drm/ttm/ttm_agp_backend.c152
-rw-r--r--drivers/gpu/drm/ttm/ttm_bo.c1742
-rw-r--r--drivers/gpu/drm/ttm/ttm_bo_manager.c155
-rw-r--r--drivers/gpu/drm/ttm/ttm_bo_util.c719
-rw-r--r--drivers/gpu/drm/ttm/ttm_bo_vm.c368
-rw-r--r--drivers/gpu/drm/ttm/ttm_execbuf_util.c240
-rw-r--r--drivers/gpu/drm/ttm/ttm_lock.c302
-rw-r--r--drivers/gpu/drm/ttm/ttm_memory.c601
-rw-r--r--drivers/gpu/drm/ttm/ttm_module.c102
-rw-r--r--drivers/gpu/drm/ttm/ttm_object.c760
-rw-r--r--drivers/gpu/drm/ttm/ttm_page_alloc.c931
-rw-r--r--drivers/gpu/drm/ttm/ttm_page_alloc_dma.c1147
-rw-r--r--drivers/gpu/drm/ttm/ttm_tt.c399
-rw-r--r--drivers/gpu/drm/udl/Kconfig14
-rw-r--r--drivers/gpu/drm/udl/Makefile6
-rw-r--r--drivers/gpu/drm/udl/udl_connector.c164
-rw-r--r--drivers/gpu/drm/udl/udl_drv.c117
-rw-r--r--drivers/gpu/drm/udl/udl_drv.h144
-rw-r--r--drivers/gpu/drm/udl/udl_encoder.c80
-rw-r--r--drivers/gpu/drm/udl/udl_fb.c663
-rw-r--r--drivers/gpu/drm/udl/udl_gem.c292
-rw-r--r--drivers/gpu/drm/udl/udl_main.c335
-rw-r--r--drivers/gpu/drm/udl/udl_modeset.c438
-rw-r--r--drivers/gpu/drm/udl/udl_transfer.c264
-rw-r--r--drivers/gpu/drm/via/via_dma.c181
-rw-r--r--drivers/gpu/drm/via/via_dmablit.c104
-rw-r--r--drivers/gpu/drm/via/via_dmablit.h8
-rw-r--r--drivers/gpu/drm/via/via_drv.c78
-rw-r--r--drivers/gpu/drm/via/via_drv.h33
-rw-r--r--drivers/gpu/drm/via/via_irq.c38
-rw-r--r--drivers/gpu/drm/via/via_map.c24
-rw-r--r--drivers/gpu/drm/via/via_mm.c154
-rw-r--r--drivers/gpu/drm/via/via_verifier.c52
-rw-r--r--drivers/gpu/drm/via/via_verifier.h4
-rw-r--r--drivers/gpu/drm/via/via_video.c20
-rw-r--r--drivers/gpu/drm/vmwgfx/Kconfig25
-rw-r--r--drivers/gpu/drm/vmwgfx/Makefile11
-rw-r--r--drivers/gpu/drm/vmwgfx/svga3d_reg.h2627
-rw-r--r--drivers/gpu/drm/vmwgfx/svga3d_surfacedefs.h912
-rw-r--r--drivers/gpu/drm/vmwgfx/svga_escape.h89
-rw-r--r--drivers/gpu/drm/vmwgfx/svga_overlay.h201
-rw-r--r--drivers/gpu/drm/vmwgfx/svga_reg.h1565
-rw-r--r--drivers/gpu/drm/vmwgfx/svga_types.h45
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c859
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_context.c903
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c315
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_drv.c1483
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_drv.h1076
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c2771
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_fb.c656
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_fence.c1155
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_fence.h120
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c649
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c151
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c172
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c422
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_irq.c324
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_kms.c2074
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_kms.h167
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c448
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_marker.c171
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_mob.c656
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c619
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_prime.c137
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_reg.h57
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_resource.c1577
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h84
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c576
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_shader.c811
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_surface.c1431
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c98
-rw-r--r--drivers/gpu/host1x/Kconfig22
-rw-r--r--drivers/gpu/host1x/Makefile15
-rw-r--r--drivers/gpu/host1x/bus.c553
-rw-r--r--drivers/gpu/host1x/bus.h29
-rw-r--r--drivers/gpu/host1x/cdma.c491
-rw-r--r--drivers/gpu/host1x/cdma.h100
-rw-r--r--drivers/gpu/host1x/channel.c131
-rw-r--r--drivers/gpu/host1x/channel.h46
-rw-r--r--drivers/gpu/host1x/debug.c213
-rw-r--r--drivers/gpu/host1x/debug.h51
-rw-r--r--drivers/gpu/host1x/dev.c252
-rw-r--r--drivers/gpu/host1x/dev.h311
-rw-r--r--drivers/gpu/host1x/hw/cdma_hw.c326
-rw-r--r--drivers/gpu/host1x/hw/channel_hw.c188
-rw-r--r--drivers/gpu/host1x/hw/debug_hw.c314
-rw-r--r--drivers/gpu/host1x/hw/host1x01.c42
-rw-r--r--drivers/gpu/host1x/hw/host1x01.h25
-rw-r--r--drivers/gpu/host1x/hw/host1x01_hardware.h143
-rw-r--r--drivers/gpu/host1x/hw/host1x02.c42
-rw-r--r--drivers/gpu/host1x/hw/host1x02.h26
-rw-r--r--drivers/gpu/host1x/hw/host1x02_hardware.h142
-rw-r--r--drivers/gpu/host1x/hw/host1x04.c42
-rw-r--r--drivers/gpu/host1x/hw/host1x04.h26
-rw-r--r--drivers/gpu/host1x/hw/host1x04_hardware.h142
-rw-r--r--drivers/gpu/host1x/hw/hw_host1x01_channel.h120
-rw-r--r--drivers/gpu/host1x/hw/hw_host1x01_sync.h243
-rw-r--r--drivers/gpu/host1x/hw/hw_host1x01_uclass.h180
-rw-r--r--drivers/gpu/host1x/hw/hw_host1x02_channel.h121
-rw-r--r--drivers/gpu/host1x/hw/hw_host1x02_sync.h243
-rw-r--r--drivers/gpu/host1x/hw/hw_host1x02_uclass.h181
-rw-r--r--drivers/gpu/host1x/hw/hw_host1x04_channel.h121
-rw-r--r--drivers/gpu/host1x/hw/hw_host1x04_sync.h243
-rw-r--r--drivers/gpu/host1x/hw/hw_host1x04_uclass.h181
-rw-r--r--drivers/gpu/host1x/hw/intr_hw.c142
-rw-r--r--drivers/gpu/host1x/hw/syncpt_hw.c112
-rw-r--r--drivers/gpu/host1x/intr.c354
-rw-r--r--drivers/gpu/host1x/intr.h102
-rw-r--r--drivers/gpu/host1x/job.c598
-rw-r--r--drivers/gpu/host1x/job.h54
-rw-r--r--drivers/gpu/host1x/mipi.c275
-rw-r--r--drivers/gpu/host1x/syncpt.c461
-rw-r--r--drivers/gpu/host1x/syncpt.h130
-rw-r--r--drivers/gpu/ipu-v3/Kconfig7
-rw-r--r--drivers/gpu/ipu-v3/Makefile3
-rw-r--r--drivers/gpu/ipu-v3/ipu-common.c1362
-rw-r--r--drivers/gpu/ipu-v3/ipu-dc.c460
-rw-r--r--drivers/gpu/ipu-v3/ipu-di.c730
-rw-r--r--drivers/gpu/ipu-v3/ipu-dmfc.c436
-rw-r--r--drivers/gpu/ipu-v3/ipu-dp.c363
-rw-r--r--drivers/gpu/ipu-v3/ipu-prv.h215
-rw-r--r--drivers/gpu/ipu-v3/ipu-smfc.c97
-rw-r--r--drivers/gpu/vga/Kconfig30
-rw-r--r--drivers/gpu/vga/Makefile2
-rw-r--r--drivers/gpu/vga/vga_switcheroo.c705
-rw-r--r--drivers/gpu/vga/vgaarb.c1326
-rw-r--r--drivers/hid/Kconfig788
-rw-r--r--drivers/hid/Makefile103
-rw-r--r--drivers/hid/hid-a4tech.c46
-rw-r--r--drivers/hid/hid-apple.c238
-rw-r--r--drivers/hid/hid-appleir.c355
-rw-r--r--drivers/hid/hid-aureal.c42
-rw-r--r--drivers/hid/hid-axff.c198
-rw-r--r--drivers/hid/hid-belkin.c20
-rw-r--r--drivers/hid/hid-cherry.c27
-rw-r--r--drivers/hid/hid-chicony.c23
-rw-r--r--drivers/hid/hid-core.c1253
-rw-r--r--drivers/hid/hid-cp2112.c1073
-rw-r--r--drivers/hid/hid-cypress.c33
-rw-r--r--drivers/hid/hid-debug.c627
-rw-r--r--drivers/hid/hid-dr.c300
-rw-r--r--drivers/hid/hid-dummy.c78
-rw-r--r--drivers/hid/hid-elecom.c46
-rw-r--r--drivers/hid/hid-elo.c306
-rw-r--r--drivers/hid/hid-emsff.c154
-rw-r--r--drivers/hid/hid-ezkey.c16
-rw-r--r--drivers/hid/hid-gaff.c48
-rw-r--r--drivers/hid/hid-generic.c41
-rw-r--r--drivers/hid/hid-gyration.c27
-rw-r--r--drivers/hid/hid-holtek-kbd.c172
-rw-r--r--drivers/hid/hid-holtek-mouse.c88
-rw-r--r--drivers/hid/hid-holtekff.c225
-rw-r--r--drivers/hid/hid-huion.c177
-rw-r--r--drivers/hid/hid-hyperv.c609
-rw-r--r--drivers/hid/hid-icade.c242
-rw-r--r--drivers/hid/hid-ids.h640
-rw-r--r--drivers/hid/hid-input.c890
-rw-r--r--drivers/hid/hid-kensington.c52
-rw-r--r--drivers/hid/hid-keytouch.c55
-rw-r--r--drivers/hid/hid-kye.c468
-rw-r--r--drivers/hid/hid-lcpower.c59
-rw-r--r--drivers/hid/hid-lenovo-tpkbd.c462
-rw-r--r--drivers/hid/hid-lg.c571
-rw-r--r--drivers/hid/hid-lg.h23
-rw-r--r--drivers/hid/hid-lg2ff.c31
-rw-r--r--drivers/hid/hid-lg3ff.c156
-rw-r--r--drivers/hid/hid-lg4ff.c758
-rw-r--r--drivers/hid/hid-lgff.c42
-rw-r--r--drivers/hid/hid-logitech-dj.c964
-rw-r--r--drivers/hid/hid-logitech-dj.h124
-rw-r--r--drivers/hid/hid-magicmouse.c573
-rw-r--r--drivers/hid/hid-microsoft.c160
-rw-r--r--drivers/hid/hid-monterey.c26
-rw-r--r--drivers/hid/hid-multitouch.c1356
-rw-r--r--drivers/hid/hid-ntrig.c1014
-rw-r--r--drivers/hid/hid-ortek.c55
-rw-r--r--drivers/hid/hid-petalynx.c30
-rw-r--r--drivers/hid/hid-picolcd.h309
-rw-r--r--drivers/hid/hid-picolcd_backlight.c120
-rw-r--r--drivers/hid/hid-picolcd_cir.c151
-rw-r--r--drivers/hid/hid-picolcd_core.c676
-rw-r--r--drivers/hid/hid-picolcd_debugfs.c898
-rw-r--r--drivers/hid/hid-picolcd_fb.c617
-rw-r--r--drivers/hid/hid-picolcd_lcd.c105
-rw-r--r--drivers/hid/hid-picolcd_leds.c173
-rw-r--r--drivers/hid/hid-pl.c106
-rw-r--r--drivers/hid/hid-primax.c81
-rw-r--r--drivers/hid/hid-prodikeys.c892
-rw-r--r--drivers/hid/hid-rmi.c922
-rw-r--r--drivers/hid/hid-roccat-arvo.c460
-rw-r--r--drivers/hid/hid-roccat-arvo.h85
-rw-r--r--drivers/hid/hid-roccat-common.c180
-rw-r--r--drivers/hid/hid-roccat-common.h97
-rw-r--r--drivers/hid/hid-roccat-isku.c462
-rw-r--r--drivers/hid/hid-roccat-isku.h100
-rw-r--r--drivers/hid/hid-roccat-kone.c908
-rw-r--r--drivers/hid/hid-roccat-kone.h227
-rw-r--r--drivers/hid/hid-roccat-koneplus.c578
-rw-r--r--drivers/hid/hid-roccat-koneplus.h125
-rw-r--r--drivers/hid/hid-roccat-konepure.c232
-rw-r--r--drivers/hid/hid-roccat-kovaplus.c665
-rw-r--r--drivers/hid/hid-roccat-kovaplus.h133
-rw-r--r--drivers/hid/hid-roccat-lua.c215
-rw-r--r--drivers/hid/hid-roccat-lua.h29
-rw-r--r--drivers/hid/hid-roccat-pyra.c611
-rw-r--r--drivers/hid/hid-roccat-pyra.h152
-rw-r--r--drivers/hid/hid-roccat-ryos.c241
-rw-r--r--drivers/hid/hid-roccat-savu.c229
-rw-r--r--drivers/hid/hid-roccat-savu.h55
-rw-r--r--drivers/hid/hid-roccat.c461
-rw-r--r--drivers/hid/hid-saitek.c199
-rw-r--r--drivers/hid/hid-samsung.c149
-rw-r--r--drivers/hid/hid-sensor-hub.c751
-rw-r--r--drivers/hid/hid-sjoy.c182
-rw-r--r--drivers/hid/hid-sony.c1964
-rw-r--r--drivers/hid/hid-speedlink.c81
-rw-r--r--drivers/hid/hid-steelseries.c389
-rw-r--r--drivers/hid/hid-sunplus.c26
-rw-r--r--drivers/hid/hid-thingm.c312
-rw-r--r--drivers/hid/hid-tivo.c79
-rw-r--r--drivers/hid/hid-tmff.c75
-rw-r--r--drivers/hid/hid-topseed.c60
-rw-r--r--drivers/hid/hid-twinhan.c136
-rw-r--r--drivers/hid/hid-uclogic.c655
-rw-r--r--drivers/hid/hid-wacom.c973
-rw-r--r--drivers/hid/hid-waltop.c784
-rw-r--r--drivers/hid/hid-wiimote-core.c1875
-rw-r--r--drivers/hid/hid-wiimote-debug.c225
-rw-r--r--drivers/hid/hid-wiimote-modules.c2203
-rw-r--r--drivers/hid/hid-wiimote.h375
-rw-r--r--drivers/hid/hid-xinmo.c61
-rw-r--r--drivers/hid/hid-zpff.c55
-rw-r--r--drivers/hid/hid-zydacron.c211
-rw-r--r--drivers/hid/hidraw.c383
-rw-r--r--drivers/hid/i2c-hid/Kconfig18
-rw-r--r--drivers/hid/i2c-hid/Makefile5
-rw-r--r--drivers/hid/i2c-hid/i2c-hid.c1137
-rw-r--r--drivers/hid/uhid.c736
-rw-r--r--drivers/hid/usbhid/Kconfig10
-rw-r--r--drivers/hid/usbhid/Makefile6
-rw-r--r--drivers/hid/usbhid/hid-core.c935
-rw-r--r--drivers/hid/usbhid/hid-pidff.c244
-rw-r--r--drivers/hid/usbhid/hid-quirks.c72
-rw-r--r--drivers/hid/usbhid/hiddev.c382
-rw-r--r--drivers/hid/usbhid/usbhid.h14
-rw-r--r--drivers/hid/usbhid/usbkbd.c124
-rw-r--r--drivers/hid/usbhid/usbmouse.c30
-rw-r--r--drivers/hsi/Kconfig20
-rw-r--r--drivers/hsi/Makefile7
-rw-r--r--drivers/hsi/clients/Kconfig30
-rw-r--r--drivers/hsi/clients/Makefile7
-rw-r--r--drivers/hsi/clients/hsi_char.c802
-rw-r--r--drivers/hsi/clients/nokia-modem.c285
-rw-r--r--drivers/hsi/clients/ssi_protocol.c1191
-rw-r--r--drivers/hsi/controllers/Kconfig19
-rw-r--r--drivers/hsi/controllers/Makefile6
-rw-r--r--drivers/hsi/controllers/omap_ssi.c625
-rw-r--r--drivers/hsi/controllers/omap_ssi.h166
-rw-r--r--drivers/hsi/controllers/omap_ssi_port.c1399
-rw-r--r--drivers/hsi/controllers/omap_ssi_regs.h171
-rw-r--r--drivers/hsi/hsi.c772
-rw-r--r--drivers/hsi/hsi_boardinfo.c62
-rw-r--r--drivers/hsi/hsi_core.h35
-rw-r--r--drivers/hv/Kconfig22
-rw-r--r--drivers/hv/Makefile8
-rw-r--r--drivers/hv/channel.c829
-rw-r--r--drivers/hv/channel_mgmt.c873
-rw-r--r--drivers/hv/connection.c455
-rw-r--r--drivers/hv/hv.c426
-rw-r--r--drivers/hv/hv_balloon.c1553
-rw-r--r--drivers/hv/hv_fcopy.c414
-rw-r--r--drivers/hv/hv_kvp.c715
-rw-r--r--drivers/hv/hv_snapshot.c281
-rw-r--r--drivers/hv/hv_util.c446
-rw-r--r--drivers/hv/hyperv_vmbus.h682
-rw-r--r--drivers/hv/ring_buffer.c561
-rw-r--r--drivers/hv/vmbus_drv.c973
-rw-r--r--drivers/hwmon/Kconfig1227
-rw-r--r--drivers/hwmon/Makefile87
-rw-r--r--drivers/hwmon/ab8500.c206
-rw-r--r--drivers/hwmon/abituguru.c690
-rw-r--r--drivers/hwmon/abituguru3.c437
-rw-r--r--drivers/hwmon/abx500.c491
-rw-r--r--drivers/hwmon/abx500.h69
-rw-r--r--drivers/hwmon/acpi_power_meter.c1015
-rw-r--r--drivers/hwmon/ad7314.c170
-rw-r--r--drivers/hwmon/ad7414.c55
-rw-r--r--drivers/hwmon/ad7418.c70
-rw-r--r--drivers/hwmon/adc128d818.c491
-rw-r--r--drivers/hwmon/adcxx.c153
-rw-r--r--drivers/hwmon/adm1021.c396
-rw-r--r--drivers/hwmon/adm1025.c178
-rw-r--r--drivers/hwmon/adm1026.c654
-rw-r--r--drivers/hwmon/adm1029.c147
-rw-r--r--drivers/hwmon/adm1031.c409
-rw-r--r--drivers/hwmon/adm9240.c204
-rw-r--r--drivers/hwmon/ads1015.c322
-rw-r--r--drivers/hwmon/ads7828.c312
-rw-r--r--drivers/hwmon/ads7871.c251
-rw-r--r--drivers/hwmon/adt7310.c118
-rw-r--r--drivers/hwmon/adt7410.c80
-rw-r--r--drivers/hwmon/adt7411.c354
-rw-r--r--drivers/hwmon/adt7462.c148
-rw-r--r--drivers/hwmon/adt7470.c133
-rw-r--r--drivers/hwmon/adt7473.c1187
-rw-r--r--drivers/hwmon/adt7475.c690
-rw-r--r--drivers/hwmon/adt7x10.c511
-rw-r--r--drivers/hwmon/adt7x10.h37
-rw-r--r--drivers/hwmon/amc6821.c1088
-rw-r--r--drivers/hwmon/applesmc.c1612
-rw-r--r--drivers/hwmon/asb100.c331
-rw-r--r--drivers/hwmon/asc7621.c1247
-rw-r--r--drivers/hwmon/asus_atk0110.c1465
-rw-r--r--drivers/hwmon/atxp1.c232
-rw-r--r--drivers/hwmon/coretemp.c858
-rw-r--r--drivers/hwmon/da9052-hwmon.c330
-rw-r--r--drivers/hwmon/da9055-hwmon.c332
-rw-r--r--drivers/hwmon/dme1737.c1054
-rw-r--r--drivers/hwmon/ds1621.c483
-rw-r--r--drivers/hwmon/ds620.c298
-rw-r--r--drivers/hwmon/emc1403.c499
-rw-r--r--drivers/hwmon/emc2103.c730
-rw-r--r--drivers/hwmon/emc6w201.c553
-rw-r--r--drivers/hwmon/f71805f.c283
-rw-r--r--drivers/hwmon/f71882fg.c1353
-rw-r--r--drivers/hwmon/f75375s.c466
-rw-r--r--drivers/hwmon/fam15h_power.c267
-rw-r--r--drivers/hwmon/fscher.c680
-rw-r--r--drivers/hwmon/fschmd.c523
-rw-r--r--drivers/hwmon/fscpos.c654
-rw-r--r--drivers/hwmon/g760a.c254
-rw-r--r--drivers/hwmon/g762.c1149
-rw-r--r--drivers/hwmon/gl518sm.c185
-rw-r--r--drivers/hwmon/gl520sm.c288
-rw-r--r--drivers/hwmon/gpio-fan.c606
-rw-r--r--drivers/hwmon/hih6130.c306
-rw-r--r--drivers/hwmon/hp_accel.c334
-rw-r--r--drivers/hwmon/htu21.c199
-rw-r--r--drivers/hwmon/hwmon-vid.c210
-rw-r--r--drivers/hwmon/hwmon.c268
-rw-r--r--drivers/hwmon/i5k_amb.c93
-rw-r--r--drivers/hwmon/ibmaem.c170
-rw-r--r--drivers/hwmon/ibmpex.c28
-rw-r--r--drivers/hwmon/iio_hwmon.c186
-rw-r--r--drivers/hwmon/ina209.c626
-rw-r--r--drivers/hwmon/ina2xx.c292
-rw-r--r--drivers/hwmon/it87.c2526
-rw-r--r--drivers/hwmon/jc42.c554
-rw-r--r--drivers/hwmon/jz4740-hwmon.c184
-rw-r--r--drivers/hwmon/k10temp.c227
-rw-r--r--drivers/hwmon/k8temp.c141
-rw-r--r--drivers/hwmon/lineage-pem.c575
-rw-r--r--drivers/hwmon/lis3lv02d.c356
-rw-r--r--drivers/hwmon/lis3lv02d.h182
-rw-r--r--drivers/hwmon/lm63.c1063
-rw-r--r--drivers/hwmon/lm70.c163
-rw-r--r--drivers/hwmon/lm73.c287
-rw-r--r--drivers/hwmon/lm75.c426
-rw-r--r--drivers/hwmon/lm75.h10
-rw-r--r--drivers/hwmon/lm77.c558
-rw-r--r--drivers/hwmon/lm78.c611
-rw-r--r--drivers/hwmon/lm80.c763
-rw-r--r--drivers/hwmon/lm83.c291
-rw-r--r--drivers/hwmon/lm85.c722
-rw-r--r--drivers/hwmon/lm87.c1017
-rw-r--r--drivers/hwmon/lm90.c1516
-rw-r--r--drivers/hwmon/lm92.c356
-rw-r--r--drivers/hwmon/lm93.c869
-rw-r--r--drivers/hwmon/lm95234.c729
-rw-r--r--drivers/hwmon/lm95241.c424
-rw-r--r--drivers/hwmon/lm95245.c507
-rw-r--r--drivers/hwmon/ltc2945.c519
-rw-r--r--drivers/hwmon/ltc4151.c215
-rw-r--r--drivers/hwmon/ltc4215.c280
-rw-r--r--drivers/hwmon/ltc4222.c237
-rw-r--r--drivers/hwmon/ltc4245.c440
-rw-r--r--drivers/hwmon/ltc4260.c200
-rw-r--r--drivers/hwmon/ltc4261.c266
-rw-r--r--drivers/hwmon/max1111.c151
-rw-r--r--drivers/hwmon/max16065.c676
-rw-r--r--drivers/hwmon/max1619.c399
-rw-r--r--drivers/hwmon/max1668.c460
-rw-r--r--drivers/hwmon/max197.c347
-rw-r--r--drivers/hwmon/max6639.c613
-rw-r--r--drivers/hwmon/max6642.c327
-rw-r--r--drivers/hwmon/max6650.c557
-rw-r--r--drivers/hwmon/max6697.c680
-rw-r--r--drivers/hwmon/mc13783-adc.c280
-rw-r--r--drivers/hwmon/mcp3021.c201
-rw-r--r--drivers/hwmon/nct6683.c1457
-rw-r--r--drivers/hwmon/nct6775.c4228
-rw-r--r--drivers/hwmon/ntc_thermistor.c552
-rw-r--r--drivers/hwmon/pc87360.c754
-rw-r--r--drivers/hwmon/pc87427.c936
-rw-r--r--drivers/hwmon/pcf8591.c337
-rw-r--r--drivers/hwmon/pmbus/Kconfig124
-rw-r--r--drivers/hwmon/pmbus/Makefile15
-rw-r--r--drivers/hwmon/pmbus/adm1275.c397
-rw-r--r--drivers/hwmon/pmbus/lm25066.c530
-rw-r--r--drivers/hwmon/pmbus/ltc2978.c507
-rw-r--r--drivers/hwmon/pmbus/max16064.c127
-rw-r--r--drivers/hwmon/pmbus/max34440.c435
-rw-r--r--drivers/hwmon/pmbus/max8688.c204
-rw-r--r--drivers/hwmon/pmbus/pmbus.c217
-rw-r--r--drivers/hwmon/pmbus/pmbus.h387
-rw-r--r--drivers/hwmon/pmbus/pmbus_core.c1803
-rw-r--r--drivers/hwmon/pmbus/ucd9000.c246
-rw-r--r--drivers/hwmon/pmbus/ucd9200.c180
-rw-r--r--drivers/hwmon/pmbus/zl6100.c419
-rw-r--r--drivers/hwmon/s3c-hwmon.c392
-rw-r--r--drivers/hwmon/sch5627.c605
-rw-r--r--drivers/hwmon/sch5636.c535
-rw-r--r--drivers/hwmon/sch56xx-common.c619
-rw-r--r--drivers/hwmon/sch56xx-common.h32
-rw-r--r--drivers/hwmon/sht15.c1099
-rw-r--r--drivers/hwmon/sht21.c264
-rw-r--r--drivers/hwmon/shtc1.c251
-rw-r--r--drivers/hwmon/sis5595.c372
-rw-r--r--drivers/hwmon/smm665.c721
-rw-r--r--drivers/hwmon/smsc47b397.c126
-rw-r--r--drivers/hwmon/smsc47m1.c498
-rw-r--r--drivers/hwmon/smsc47m192.c206
-rw-r--r--drivers/hwmon/thmc50.c158
-rw-r--r--drivers/hwmon/tmp102.c307
-rw-r--r--drivers/hwmon/tmp401.c761
-rw-r--r--drivers/hwmon/tmp421.c309
-rw-r--r--drivers/hwmon/twl4030-madc-hwmon.c145
-rw-r--r--drivers/hwmon/ultra45_env.c76
-rw-r--r--drivers/hwmon/vexpress.c260
-rw-r--r--drivers/hwmon/via-cputemp.c382
-rw-r--r--drivers/hwmon/via686a.c474
-rw-r--r--drivers/hwmon/vt1211.c472
-rw-r--r--drivers/hwmon/vt8231.c357
-rw-r--r--drivers/hwmon/w83627ehf.c2210
-rw-r--r--drivers/hwmon/w83627hf.c549
-rw-r--r--drivers/hwmon/w83781d.c779
-rw-r--r--drivers/hwmon/w83791d.c447
-rw-r--r--drivers/hwmon/w83792d.c547
-rw-r--r--drivers/hwmon/w83793.c976
-rw-r--r--drivers/hwmon/w83795.c2287
-rw-r--r--drivers/hwmon/w83l785ts.c154
-rw-r--r--drivers/hwmon/w83l786ng.c292
-rw-r--r--drivers/hwmon/wm831x-hwmon.c216
-rw-r--r--drivers/hwmon/wm8350-hwmon.c141
-rw-r--r--drivers/hwspinlock/Kconfig32
-rw-r--r--drivers/hwspinlock/Makefile7
-rw-r--r--drivers/hwspinlock/hwspinlock_core.c601
-rw-r--r--drivers/hwspinlock/hwspinlock_internal.h77
-rw-r--r--drivers/hwspinlock/omap_hwspinlock.c190
-rw-r--r--drivers/hwspinlock/u8500_hsem.c197
-rw-r--r--drivers/i2c/Kconfig58
-rw-r--r--drivers/i2c/Makefile10
-rw-r--r--drivers/i2c/algos/Kconfig6
-rw-r--r--drivers/i2c/algos/Makefile5
-rw-r--r--drivers/i2c/algos/i2c-algo-bit.c112
-rw-r--r--drivers/i2c/algos/i2c-algo-pca.c306
-rw-r--r--drivers/i2c/algos/i2c-algo-pcf.c266
-rw-r--r--drivers/i2c/algos/i2c-algo-pcf.h3
-rw-r--r--drivers/i2c/algos/i2c-algo-sgi.c179
-rw-r--r--drivers/i2c/busses/Kconfig552
-rw-r--r--drivers/i2c/busses/Makefile55
-rw-r--r--drivers/i2c/busses/i2c-acorn.c11
-rw-r--r--drivers/i2c/busses/i2c-ali1535.c126
-rw-r--r--drivers/i2c/busses/i2c-ali1563.c118
-rw-r--r--drivers/i2c/busses/i2c-ali15x3.c29
-rw-r--r--drivers/i2c/busses/i2c-amd756-s4882.c10
-rw-r--r--drivers/i2c/busses/i2c-amd756.c32
-rw-r--r--drivers/i2c/busses/i2c-amd8111.c198
-rw-r--r--drivers/i2c/busses/i2c-at91.c972
-rw-r--r--drivers/i2c/busses/i2c-au1550.c300
-rw-r--r--drivers/i2c/busses/i2c-bcm-kona.c908
-rw-r--r--drivers/i2c/busses/i2c-bcm2835.c325
-rw-r--r--drivers/i2c/busses/i2c-bfin-twi.c480
-rw-r--r--drivers/i2c/busses/i2c-cadence.c905
-rw-r--r--drivers/i2c/busses/i2c-cbus-gpio.c304
-rw-r--r--drivers/i2c/busses/i2c-cpm.c111
-rw-r--r--drivers/i2c/busses/i2c-cros-ec-tunnel.c318
-rw-r--r--drivers/i2c/busses/i2c-davinci.c458
-rw-r--r--drivers/i2c/busses/i2c-designware-core.c842
-rw-r--r--drivers/i2c/busses/i2c-designware-core.h125
-rw-r--r--drivers/i2c/busses/i2c-designware-pcidrv.c371
-rw-r--r--drivers/i2c/busses/i2c-designware-platdrv.c306
-rw-r--r--drivers/i2c/busses/i2c-diolan-u2c.c528
-rw-r--r--drivers/i2c/busses/i2c-efm32.c479
-rw-r--r--drivers/i2c/busses/i2c-eg20t.c939
-rw-r--r--drivers/i2c/busses/i2c-elektor.c14
-rw-r--r--drivers/i2c/busses/i2c-exynos5.c811
-rw-r--r--drivers/i2c/busses/i2c-gpio.c167
-rw-r--r--drivers/i2c/busses/i2c-highlander.c38
-rw-r--r--drivers/i2c/busses/i2c-hydra.c29
-rw-r--r--drivers/i2c/busses/i2c-i801.c1057
-rw-r--r--drivers/i2c/busses/i2c-ibm_iic.c91
-rw-r--r--drivers/i2c/busses/i2c-imx.c792
-rw-r--r--drivers/i2c/busses/i2c-iop3xx.c160
-rw-r--r--drivers/i2c/busses/i2c-iop3xx.h2
-rw-r--r--drivers/i2c/busses/i2c-isch.c104
-rw-r--r--drivers/i2c/busses/i2c-ismt.c1005
-rw-r--r--drivers/i2c/busses/i2c-ixp2000.c168
-rw-r--r--drivers/i2c/busses/i2c-kempld.c410
-rw-r--r--drivers/i2c/busses/i2c-mpc.c646
-rw-r--r--drivers/i2c/busses/i2c-mv64xxx.c680
-rw-r--r--drivers/i2c/busses/i2c-mxs.c916
-rw-r--r--drivers/i2c/busses/i2c-nforce2-s4985.c10
-rw-r--r--drivers/i2c/busses/i2c-nforce2.c213
-rw-r--r--drivers/i2c/busses/i2c-nomadik.c1135
-rw-r--r--drivers/i2c/busses/i2c-ocores.c297
-rw-r--r--drivers/i2c/busses/i2c-octeon.c637
-rw-r--r--drivers/i2c/busses/i2c-omap.c1112
-rw-r--r--drivers/i2c/busses/i2c-parport-light.c67
-rw-r--r--drivers/i2c/busses/i2c-parport.c104
-rw-r--r--drivers/i2c/busses/i2c-parport.h78
-rw-r--r--drivers/i2c/busses/i2c-pasemi.c26
-rw-r--r--drivers/i2c/busses/i2c-pca-isa.c56
-rw-r--r--drivers/i2c/busses/i2c-pca-platform.c95
-rw-r--r--drivers/i2c/busses/i2c-piix4.c360
-rw-r--r--drivers/i2c/busses/i2c-pmcmsp.c39
-rw-r--r--drivers/i2c/busses/i2c-pnx.c471
-rw-r--r--drivers/i2c/busses/i2c-powermac.c402
-rw-r--r--drivers/i2c/busses/i2c-puv3.c282
-rw-r--r--drivers/i2c/busses/i2c-pxa-pci.c168
-rw-r--r--drivers/i2c/busses/i2c-pxa.c364
-rw-r--r--drivers/i2c/busses/i2c-qup.c768
-rw-r--r--drivers/i2c/busses/i2c-rcar.c609
-rw-r--r--drivers/i2c/busses/i2c-riic.c427
-rw-r--r--drivers/i2c/busses/i2c-rk3x.c763
-rw-r--r--drivers/i2c/busses/i2c-robotfuzz-osif.c202
-rw-r--r--drivers/i2c/busses/i2c-s3c2410.c718
-rw-r--r--drivers/i2c/busses/i2c-s6000.c404
-rw-r--r--drivers/i2c/busses/i2c-s6000.h79
-rw-r--r--drivers/i2c/busses/i2c-scmi.c432
-rw-r--r--drivers/i2c/busses/i2c-sh7760.c36
-rw-r--r--drivers/i2c/busses/i2c-sh_mobile.c554
-rw-r--r--drivers/i2c/busses/i2c-sibyte.c8
-rw-r--r--drivers/i2c/busses/i2c-simtec.c29
-rw-r--r--drivers/i2c/busses/i2c-sirf.c468
-rw-r--r--drivers/i2c/busses/i2c-sis5595.c13
-rw-r--r--drivers/i2c/busses/i2c-sis630.c401
-rw-r--r--drivers/i2c/busses/i2c-sis96x.c31
-rw-r--r--drivers/i2c/busses/i2c-st.c872
-rw-r--r--drivers/i2c/busses/i2c-stu300.c1014
-rw-r--r--drivers/i2c/busses/i2c-stub.c193
-rw-r--r--drivers/i2c/busses/i2c-sun6i-p2wi.c344
-rw-r--r--drivers/i2c/busses/i2c-taos-evm.c57
-rw-r--r--drivers/i2c/busses/i2c-tegra.c884
-rw-r--r--drivers/i2c/busses/i2c-tiny-usb.c83
-rw-r--r--drivers/i2c/busses/i2c-versatile.c25
-rw-r--r--drivers/i2c/busses/i2c-via.c26
-rw-r--r--drivers/i2c/busses/i2c-viapro.c43
-rw-r--r--drivers/i2c/busses/i2c-viperboard.c471
-rw-r--r--drivers/i2c/busses/i2c-voodoo3.c251
-rw-r--r--drivers/i2c/busses/i2c-wmt.c475
-rw-r--r--drivers/i2c/busses/i2c-xiic.c785
-rw-r--r--drivers/i2c/busses/i2c-xlr.c275
-rw-r--r--drivers/i2c/busses/scx200_acb.c230
-rw-r--r--drivers/i2c/busses/scx200_i2c.c21
-rw-r--r--drivers/i2c/chips/Kconfig142
-rw-r--r--drivers/i2c/chips/Makefile26
-rw-r--r--drivers/i2c/chips/at24.c582
-rw-r--r--drivers/i2c/chips/eeprom.c257
-rw-r--r--drivers/i2c/chips/max6875.c246
-rw-r--r--drivers/i2c/chips/pca9539.c152
-rw-r--r--drivers/i2c/chips/pcf8574.c215
-rw-r--r--drivers/i2c/chips/pcf8575.c198
-rw-r--r--drivers/i2c/chips/pcf8591.c325
-rw-r--r--drivers/i2c/i2c-boardinfo.c14
-rw-r--r--drivers/i2c/i2c-core.c2154
-rw-r--r--drivers/i2c/i2c-core.h7
-rw-r--r--drivers/i2c/i2c-dev.c248
-rw-r--r--drivers/i2c/i2c-mux.c204
-rw-r--r--drivers/i2c/i2c-smbus.c251
-rw-r--r--drivers/i2c/i2c-stub.c220
-rw-r--r--drivers/i2c/muxes/Kconfig63
-rw-r--r--drivers/i2c/muxes/Makefile11
-rw-r--r--drivers/i2c/muxes/i2c-arb-gpio-challenge.c249
-rw-r--r--drivers/i2c/muxes/i2c-mux-gpio.c294
-rw-r--r--drivers/i2c/muxes/i2c-mux-pca9541.c400
-rw-r--r--drivers/i2c/muxes/i2c-mux-pca954x.c290
-rw-r--r--drivers/i2c/muxes/i2c-mux-pinctrl.c278
-rw-r--r--drivers/ide/Kconfig152
-rw-r--r--drivers/ide/Makefile11
-rw-r--r--drivers/ide/aec62xx.c25
-rw-r--r--drivers/ide/ali14xx.c9
-rw-r--r--drivers/ide/alim15x3.c220
-rw-r--r--drivers/ide/amd74xx.c38
-rw-r--r--drivers/ide/atiixp.c26
-rw-r--r--drivers/ide/au1xxx-ide.c188
-rw-r--r--drivers/ide/buddha.c59
-rw-r--r--drivers/ide/cmd640.c28
-rw-r--r--drivers/ide/cmd64x.c245
-rw-r--r--drivers/ide/cs5520.c23
-rw-r--r--drivers/ide/cs5530.c24
-rw-r--r--drivers/ide/cs5535.c20
-rw-r--r--drivers/ide/cs5536.c306
-rw-r--r--drivers/ide/cy82c693.c190
-rw-r--r--drivers/ide/delkin_cb.c27
-rw-r--r--drivers/ide/dtc2278.c11
-rw-r--r--drivers/ide/falconide.c68
-rw-r--r--drivers/ide/gayle.c183
-rw-r--r--drivers/ide/hpt366.c192
-rw-r--r--drivers/ide/ht6560b.c61
-rw-r--r--drivers/ide/icside.c84
-rw-r--r--drivers/ide/ide-4drives.c11
-rw-r--r--drivers/ide/ide-acpi.c295
-rw-r--r--drivers/ide/ide-atapi.c505
-rw-r--r--drivers/ide/ide-cd.c1165
-rw-r--r--drivers/ide/ide-cd.h13
-rw-r--r--drivers/ide/ide-cd_ioctl.c17
-rw-r--r--drivers/ide/ide-cd_verbose.c2
-rw-r--r--drivers/ide/ide-cs.c243
-rw-r--r--drivers/ide/ide-devsets.c191
-rw-r--r--drivers/ide/ide-disk.c353
-rw-r--r--drivers/ide/ide-disk_ioctl.c10
-rw-r--r--drivers/ide/ide-disk_proc.c165
-rw-r--r--drivers/ide/ide-dma-sff.c62
-rw-r--r--drivers/ide/ide-dma.c180
-rw-r--r--drivers/ide/ide-eh.c442
-rw-r--r--drivers/ide/ide-floppy.c264
-rw-r--r--drivers/ide/ide-floppy_ioctl.c60
-rw-r--r--drivers/ide/ide-floppy_proc.c33
-rw-r--r--drivers/ide/ide-gd.c111
-rw-r--r--drivers/ide/ide-gd.h6
-rw-r--r--drivers/ide/ide-generic.c93
-rw-r--r--drivers/ide/ide-h8300.c216
-rw-r--r--drivers/ide/ide-io-std.c261
-rw-r--r--drivers/ide/ide-io.c750
-rw-r--r--drivers/ide/ide-ioctls.c77
-rw-r--r--drivers/ide/ide-iops.c889
-rw-r--r--drivers/ide/ide-legacy.c8
-rw-r--r--drivers/ide/ide-lib.c304
-rw-r--r--drivers/ide/ide-park.c43
-rw-r--r--drivers/ide/ide-pci-generic.c22
-rw-r--r--drivers/ide/ide-pio-blacklist.c1
-rw-r--r--drivers/ide/ide-pm.c97
-rw-r--r--drivers/ide/ide-pnp.c11
-rw-r--r--drivers/ide/ide-probe.c579
-rw-r--r--drivers/ide/ide-proc.c367
-rw-r--r--drivers/ide/ide-scan-pci.c2
-rw-r--r--drivers/ide/ide-sysfs.c35
-rw-r--r--drivers/ide/ide-tape.c1313
-rw-r--r--drivers/ide/ide-taskfile.c680
-rw-r--r--drivers/ide/ide-timings.c26
-rw-r--r--drivers/ide/ide-xfer-mode.c266
-rw-r--r--drivers/ide/ide.c198
-rw-r--r--drivers/ide/ide_arm.c49
-rw-r--r--drivers/ide/ide_platform.c38
-rw-r--r--drivers/ide/it8172.c21
-rw-r--r--drivers/ide/it8213.c26
-rw-r--r--drivers/ide/it821x.c35
-rw-r--r--drivers/ide/jmicron.c10
-rw-r--r--drivers/ide/macide.c43
-rw-r--r--drivers/ide/ns87415.c115
-rw-r--r--drivers/ide/opti621.c87
-rw-r--r--drivers/ide/palm_bk3710.c142
-rw-r--r--drivers/ide/pdc202xx_new.c48
-rw-r--r--drivers/ide/pdc202xx_old.c185
-rw-r--r--drivers/ide/piix.c66
-rw-r--r--drivers/ide/pmac.c330
-rw-r--r--drivers/ide/q40ide.c46
-rw-r--r--drivers/ide/qd65xx.c49
-rw-r--r--drivers/ide/qd65xx.h13
-rw-r--r--drivers/ide/rapide.c16
-rw-r--r--drivers/ide/rz1000.c6
-rw-r--r--drivers/ide/sc1200.c22
-rw-r--r--drivers/ide/scc_pata.c206
-rw-r--r--drivers/ide/serverworks.c67
-rw-r--r--drivers/ide/setup-pci.c97
-rw-r--r--drivers/ide/sgiioc4.c179
-rw-r--r--drivers/ide/siimage.c78
-rw-r--r--drivers/ide/sis5513.c45
-rw-r--r--drivers/ide/sl82c105.c87
-rw-r--r--drivers/ide/slc90e66.c28
-rw-r--r--drivers/ide/tc86c001.c27
-rw-r--r--drivers/ide/triflex.c33
-rw-r--r--drivers/ide/trm290.c73
-rw-r--r--drivers/ide/tx4938ide.c149
-rw-r--r--drivers/ide/tx4939ide.c223
-rw-r--r--drivers/ide/umc8672.c13
-rw-r--r--drivers/ide/via82cxxx.c91
-rw-r--r--drivers/idle/Kconfig11
-rw-r--r--drivers/idle/Makefile1
-rw-r--r--drivers/idle/i7300_idle.c61
-rw-r--r--drivers/idle/intel_idle.c917
-rw-r--r--drivers/ieee1394/Kconfig164
-rw-r--r--drivers/ieee1394/Makefile18
-rw-r--r--drivers/ieee1394/config_roms.c194
-rw-r--r--drivers/ieee1394/config_roms.h19
-rw-r--r--drivers/ieee1394/csr.c843
-rw-r--r--drivers/ieee1394/csr.h99
-rw-r--r--drivers/ieee1394/csr1212.c1465
-rw-r--r--drivers/ieee1394/csr1212.h383
-rw-r--r--drivers/ieee1394/dma.c290
-rw-r--r--drivers/ieee1394/dma.h88
-rw-r--r--drivers/ieee1394/dv1394-private.h587
-rw-r--r--drivers/ieee1394/dv1394.c2596
-rw-r--r--drivers/ieee1394/dv1394.h305
-rw-r--r--drivers/ieee1394/eth1394.c1748
-rw-r--r--drivers/ieee1394/eth1394.h234
-rw-r--r--drivers/ieee1394/highlevel.c691
-rw-r--r--drivers/ieee1394/highlevel.h141
-rw-r--r--drivers/ieee1394/hosts.c249
-rw-r--r--drivers/ieee1394/hosts.h201
-rw-r--r--drivers/ieee1394/ieee1394-ioctl.h106
-rw-r--r--drivers/ieee1394/ieee1394.h222
-rw-r--r--drivers/ieee1394/ieee1394_core.c1379
-rw-r--r--drivers/ieee1394/ieee1394_core.h168
-rw-r--r--drivers/ieee1394/ieee1394_hotplug.h19
-rw-r--r--drivers/ieee1394/ieee1394_transactions.c572
-rw-r--r--drivers/ieee1394/ieee1394_transactions.h38
-rw-r--r--drivers/ieee1394/ieee1394_types.h69
-rw-r--r--drivers/ieee1394/iso.c568
-rw-r--r--drivers/ieee1394/iso.h194
-rw-r--r--drivers/ieee1394/nodemgr.c1893
-rw-r--r--drivers/ieee1394/nodemgr.h168
-rw-r--r--drivers/ieee1394/ohci1394.c3594
-rw-r--r--drivers/ieee1394/ohci1394.h453
-rw-r--r--drivers/ieee1394/pcilynx.c1555
-rw-r--r--drivers/ieee1394/pcilynx.h468
-rw-r--r--drivers/ieee1394/raw1394-private.h81
-rw-r--r--drivers/ieee1394/raw1394.c3089
-rw-r--r--drivers/ieee1394/raw1394.h191
-rw-r--r--drivers/ieee1394/sbp2.c2131
-rw-r--r--drivers/ieee1394/sbp2.h340
-rw-r--r--drivers/ieee1394/video1394.c1531
-rw-r--r--drivers/ieee1394/video1394.h67
-rw-r--r--drivers/iio/Kconfig81
-rw-r--r--drivers/iio/Makefile29
-rw-r--r--drivers/iio/accel/Kconfig80
-rw-r--r--drivers/iio/accel/Makefile16
-rw-r--r--drivers/iio/accel/bma180.c680
-rw-r--r--drivers/iio/accel/hid-sensor-accel-3d.c431
-rw-r--r--drivers/iio/accel/kxsd9.c276
-rw-r--r--drivers/iio/accel/mma8452.c445
-rw-r--r--drivers/iio/accel/st_accel.h56
-rw-r--r--drivers/iio/accel/st_accel_buffer.c105
-rw-r--r--drivers/iio/accel/st_accel_core.c532
-rw-r--r--drivers/iio/accel/st_accel_i2c.c79
-rw-r--r--drivers/iio/accel/st_accel_spi.c78
-rw-r--r--drivers/iio/adc/Kconfig263
-rw-r--r--drivers/iio/adc/Makefile30
-rw-r--r--drivers/iio/adc/ad7266.c522
-rw-r--r--drivers/iio/adc/ad7298.c394
-rw-r--r--drivers/iio/adc/ad7476.c316
-rw-r--r--drivers/iio/adc/ad7791.c453
-rw-r--r--drivers/iio/adc/ad7793.c865
-rw-r--r--drivers/iio/adc/ad7887.c370
-rw-r--r--drivers/iio/adc/ad7923.c371
-rw-r--r--drivers/iio/adc/ad799x.c795
-rw-r--r--drivers/iio/adc/ad_sigma_delta.c553
-rw-r--r--drivers/iio/adc/at91_adc.c1437
-rw-r--r--drivers/iio/adc/exynos_adc.c456
-rw-r--r--drivers/iio/adc/lp8788_adc.c255
-rw-r--r--drivers/iio/adc/max1363.c1701
-rw-r--r--drivers/iio/adc/mcp320x.c249
-rw-r--r--drivers/iio/adc/mcp3422.c426
-rw-r--r--drivers/iio/adc/men_z188_adc.c172
-rw-r--r--drivers/iio/adc/nau7802.c582
-rw-r--r--drivers/iio/adc/ti-adc081c.c154
-rw-r--r--drivers/iio/adc/ti_am335x_adc.c559
-rw-r--r--drivers/iio/adc/twl4030-madc.c896
-rw-r--r--drivers/iio/adc/twl6030-gpadc.c1010
-rw-r--r--drivers/iio/adc/vf610_adc.c711
-rw-r--r--drivers/iio/adc/viperboard_adc.c158
-rw-r--r--drivers/iio/adc/xilinx-xadc-core.c1333
-rw-r--r--drivers/iio/adc/xilinx-xadc-events.c254
-rw-r--r--drivers/iio/adc/xilinx-xadc.h209
-rw-r--r--drivers/iio/amplifiers/Kconfig19
-rw-r--r--drivers/iio/amplifiers/Makefile6
-rw-r--r--drivers/iio/amplifiers/ad8366.c213
-rw-r--r--drivers/iio/buffer_cb.c124
-rw-r--r--drivers/iio/common/Kconfig6
-rw-r--r--drivers/iio/common/Makefile11
-rw-r--r--drivers/iio/common/hid-sensors/Kconfig28
-rw-r--r--drivers/iio/common/hid-sensors/Makefile7
-rw-r--r--drivers/iio/common/hid-sensors/hid-sensor-attributes.c396
-rw-r--r--drivers/iio/common/hid-sensors/hid-sensor-trigger.c138
-rw-r--r--drivers/iio/common/hid-sensors/hid-sensor-trigger.h27
-rw-r--r--drivers/iio/common/st_sensors/Kconfig14
-rw-r--r--drivers/iio/common/st_sensors/Makefile10
-rw-r--r--drivers/iio/common/st_sensors/st_sensors_buffer.c128
-rw-r--r--drivers/iio/common/st_sensors/st_sensors_core.c541
-rw-r--r--drivers/iio/common/st_sensors/st_sensors_i2c.c81
-rw-r--r--drivers/iio/common/st_sensors/st_sensors_spi.c121
-rw-r--r--drivers/iio/common/st_sensors/st_sensors_trigger.c77
-rw-r--r--drivers/iio/dac/Kconfig166
-rw-r--r--drivers/iio/dac/Makefile20
-rw-r--r--drivers/iio/dac/ad5064.c684
-rw-r--r--drivers/iio/dac/ad5360.c562
-rw-r--r--drivers/iio/dac/ad5380.c654
-rw-r--r--drivers/iio/dac/ad5421.c536
-rw-r--r--drivers/iio/dac/ad5446.c623
-rw-r--r--drivers/iio/dac/ad5449.c369
-rw-r--r--drivers/iio/dac/ad5504.c381
-rw-r--r--drivers/iio/dac/ad5624r.h79
-rw-r--r--drivers/iio/dac/ad5624r_spi.c322
-rw-r--r--drivers/iio/dac/ad5686.c409
-rw-r--r--drivers/iio/dac/ad5755.c622
-rw-r--r--drivers/iio/dac/ad5764.c370
-rw-r--r--drivers/iio/dac/ad5791.c475
-rw-r--r--drivers/iio/dac/ad7303.c303
-rw-r--r--drivers/iio/dac/max517.c222
-rw-r--r--drivers/iio/dac/mcp4725.c349
-rw-r--r--drivers/iio/frequency/Kconfig42
-rw-r--r--drivers/iio/frequency/Makefile7
-rw-r--r--drivers/iio/frequency/ad9523.c1040
-rw-r--r--drivers/iio/frequency/adf4350.c642
-rw-r--r--drivers/iio/gyro/Kconfig101
-rw-r--r--drivers/iio/gyro/Makefile23
-rw-r--r--drivers/iio/gyro/adis16080.c241
-rw-r--r--drivers/iio/gyro/adis16130.c179
-rw-r--r--drivers/iio/gyro/adis16136.c577
-rw-r--r--drivers/iio/gyro/adis16260.c421
-rw-r--r--drivers/iio/gyro/adxrs450.c468
-rw-r--r--drivers/iio/gyro/hid-sensor-gyro-3d.c428
-rw-r--r--drivers/iio/gyro/itg3200_buffer.c153
-rw-r--r--drivers/iio/gyro/itg3200_core.c389
-rw-r--r--drivers/iio/gyro/st_gyro.h53
-rw-r--r--drivers/iio/gyro/st_gyro_buffer.c105
-rw-r--r--drivers/iio/gyro/st_gyro_core.c380
-rw-r--r--drivers/iio/gyro/st_gyro_i2c.c77
-rw-r--r--drivers/iio/gyro/st_gyro_spi.c76
-rw-r--r--drivers/iio/humidity/Kconfig25
-rw-r--r--drivers/iio/humidity/Makefile6
-rw-r--r--drivers/iio/humidity/dht11.c294
-rw-r--r--drivers/iio/humidity/si7005.c189
-rw-r--r--drivers/iio/iio_core.h73
-rw-r--r--drivers/iio/iio_core_trigger.h43
-rw-r--r--drivers/iio/imu/Kconfig42
-rw-r--r--drivers/iio/imu/Makefile16
-rw-r--r--drivers/iio/imu/adis.c440
-rw-r--r--drivers/iio/imu/adis16400.h213
-rw-r--r--drivers/iio/imu/adis16400_buffer.c91
-rw-r--r--drivers/iio/imu/adis16400_core.c967
-rw-r--r--drivers/iio/imu/adis16480.c920
-rw-r--r--drivers/iio/imu/adis_buffer.c171
-rw-r--r--drivers/iio/imu/adis_trigger.c89
-rw-r--r--drivers/iio/imu/inv_mpu6050/Kconfig16
-rw-r--r--drivers/iio/imu/inv_mpu6050/Makefile6
-rw-r--r--drivers/iio/imu/inv_mpu6050/inv_mpu_core.c791
-rw-r--r--drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h247
-rw-r--r--drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c192
-rw-r--r--drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c155
-rw-r--r--drivers/iio/industrialio-buffer.c1109
-rw-r--r--drivers/iio/industrialio-core.c1280
-rw-r--r--drivers/iio/industrialio-event.c519
-rw-r--r--drivers/iio/industrialio-trigger.c583
-rw-r--r--drivers/iio/industrialio-triggered-buffer.c112
-rw-r--r--drivers/iio/inkern.c610
-rw-r--r--drivers/iio/kfifo_buf.c192
-rw-r--r--drivers/iio/light/Kconfig161
-rw-r--r--drivers/iio/light/Makefile18
-rw-r--r--drivers/iio/light/adjd_s311.c321
-rw-r--r--drivers/iio/light/apds9300.c531
-rw-r--r--drivers/iio/light/cm32181.c380
-rw-r--r--drivers/iio/light/cm36651.c750
-rw-r--r--drivers/iio/light/gp2ap020a00f.c1654
-rw-r--r--drivers/iio/light/hid-sensor-als.c393
-rw-r--r--drivers/iio/light/hid-sensor-prox.c385
-rw-r--r--drivers/iio/light/lm3533-als.c928
-rw-r--r--drivers/iio/light/ltr501.c445
-rw-r--r--drivers/iio/light/tcs3472.c379
-rw-r--r--drivers/iio/light/tsl2563.c901
-rw-r--r--drivers/iio/light/tsl4531.c258
-rw-r--r--drivers/iio/light/vcnl4000.c198
-rw-r--r--drivers/iio/magnetometer/Kconfig72
-rw-r--r--drivers/iio/magnetometer/Makefile15
-rw-r--r--drivers/iio/magnetometer/ak8975.c631
-rw-r--r--drivers/iio/magnetometer/hid-sensor-magn-3d.c433
-rw-r--r--drivers/iio/magnetometer/mag3110.c438
-rw-r--r--drivers/iio/magnetometer/st_magn.h46
-rw-r--r--drivers/iio/magnetometer/st_magn_buffer.c89
-rw-r--r--drivers/iio/magnetometer/st_magn_core.c423
-rw-r--r--drivers/iio/magnetometer/st_magn_i2c.c73
-rw-r--r--drivers/iio/magnetometer/st_magn_spi.c72
-rw-r--r--drivers/iio/orientation/Kconfig31
-rw-r--r--drivers/iio/orientation/Makefile7
-rw-r--r--drivers/iio/orientation/hid-sensor-incl-3d.c449
-rw-r--r--drivers/iio/orientation/hid-sensor-rotation.c346
-rw-r--r--drivers/iio/pressure/Kconfig73
-rw-r--r--drivers/iio/pressure/Makefile14
-rw-r--r--drivers/iio/pressure/hid-sensor-press.c394
-rw-r--r--drivers/iio/pressure/mpl115.c211
-rw-r--r--drivers/iio/pressure/mpl3115.c329
-rw-r--r--drivers/iio/pressure/st_pressure.h50
-rw-r--r--drivers/iio/pressure/st_pressure_buffer.c96
-rw-r--r--drivers/iio/pressure/st_pressure_core.c473
-rw-r--r--drivers/iio/pressure/st_pressure_i2c.c72
-rw-r--r--drivers/iio/pressure/st_pressure_spi.c71
-rw-r--r--drivers/iio/proximity/Kconfig19
-rw-r--r--drivers/iio/proximity/Makefile6
-rw-r--r--drivers/iio/proximity/as3935.c456
-rw-r--r--drivers/iio/temperature/Kconfig26
-rw-r--r--drivers/iio/temperature/Makefile6
-rw-r--r--drivers/iio/temperature/mlx90614.c150
-rw-r--r--drivers/iio/temperature/tmp006.c290
-rw-r--r--drivers/iio/trigger/Kconfig28
-rw-r--r--drivers/iio/trigger/Makefile7
-rw-r--r--drivers/iio/trigger/iio-trig-interrupt.c121
-rw-r--r--drivers/iio/trigger/iio-trig-sysfs.c227
-rw-r--r--drivers/infiniband/Kconfig18
-rw-r--r--drivers/infiniband/Makefile12
-rw-r--r--drivers/infiniband/core/Makefile9
-rw-r--r--drivers/infiniband/core/addr.c427
-rw-r--r--drivers/infiniband/core/agent.c32
-rw-r--r--drivers/infiniband/core/cache.c50
-rw-r--r--drivers/infiniband/core/cm.c195
-rw-r--r--drivers/infiniband/core/cm_msgs.h45
-rw-r--r--drivers/infiniband/core/cma.c2219
-rw-r--r--drivers/infiniband/core/core_priv.h6
-rw-r--r--drivers/infiniband/core/device.c66
-rw-r--r--drivers/infiniband/core/fmr_pool.c4
-rw-r--r--drivers/infiniband/core/iwcm.c52
-rw-r--r--drivers/infiniband/core/iwpm_msg.c685
-rw-r--r--drivers/infiniband/core/iwpm_util.c607
-rw-r--r--drivers/infiniband/core/iwpm_util.h238
-rw-r--r--drivers/infiniband/core/mad.c197
-rw-r--r--drivers/infiniband/core/mad_priv.h3
-rw-r--r--drivers/infiniband/core/mad_rmpp.c21
-rw-r--r--drivers/infiniband/core/multicast.c35
-rw-r--r--drivers/infiniband/core/netlink.c216
-rw-r--r--drivers/infiniband/core/packer.c1
-rw-r--r--drivers/infiniband/core/sa_query.c218
-rw-r--r--drivers/infiniband/core/smi.c8
-rw-r--r--drivers/infiniband/core/sysfs.c184
-rw-r--r--drivers/infiniband/core/ucm.c114
-rw-r--r--drivers/infiniband/core/ucma.c633
-rw-r--r--drivers/infiniband/core/ud_header.c117
-rw-r--r--drivers/infiniband/core/umem.c134
-rw-r--r--drivers/infiniband/core/user_mad.c271
-rw-r--r--drivers/infiniband/core/uverbs.h75
-rw-r--r--drivers/infiniband/core/uverbs_cmd.c1323
-rw-r--r--drivers/infiniband/core/uverbs_main.c455
-rw-r--r--drivers/infiniband/core/uverbs_marshall.c5
-rw-r--r--drivers/infiniband/core/verbs.c615
-rw-r--r--drivers/infiniband/hw/Makefile12
-rw-r--r--drivers/infiniband/hw/amso1100/Kbuild4
-rw-r--r--drivers/infiniband/hw/amso1100/c2.c90
-rw-r--r--drivers/infiniband/hw/amso1100/c2.h13
-rw-r--r--drivers/infiniband/hw/amso1100/c2_ae.c28
-rw-r--r--drivers/infiniband/hw/amso1100/c2_alloc.c5
-rw-r--r--drivers/infiniband/hw/amso1100/c2_cm.c18
-rw-r--r--drivers/infiniband/hw/amso1100/c2_cq.c10
-rw-r--r--drivers/infiniband/hw/amso1100/c2_intr.c12
-rw-r--r--drivers/infiniband/hw/amso1100/c2_mm.c2
-rw-r--r--drivers/infiniband/hw/amso1100/c2_mq.h2
-rw-r--r--drivers/infiniband/hw/amso1100/c2_pd.c5
-rw-r--r--drivers/infiniband/hw/amso1100/c2_provider.c88
-rw-r--r--drivers/infiniband/hw/amso1100/c2_provider.h2
-rw-r--r--drivers/infiniband/hw/amso1100/c2_qp.c39
-rw-r--r--drivers/infiniband/hw/amso1100/c2_rnic.c27
-rw-r--r--drivers/infiniband/hw/amso1100/c2_vq.c6
-rw-r--r--drivers/infiniband/hw/amso1100/c2_wr.h4
-rw-r--r--drivers/infiniband/hw/cxgb3/Kconfig2
-rw-r--r--drivers/infiniband/hw/cxgb3/Makefile6
-rw-r--r--drivers/infiniband/hw/cxgb3/cxio_dbg.c1
-rw-r--r--drivers/infiniband/hw/cxgb3/cxio_hal.c86
-rw-r--r--drivers/infiniband/hw/cxgb3/cxio_hal.h26
-rw-r--r--drivers/infiniband/hw/cxgb3/cxio_resource.c79
-rw-r--r--drivers/infiniband/hw/cxgb3/cxio_wr.h53
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch.c117
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch.h31
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_cm.c468
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_cm.h8
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_ev.c30
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_mem.c22
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_provider.c157
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_provider.h5
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_qp.c211
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_user.h8
-rw-r--r--drivers/infiniband/hw/cxgb4/Kconfig18
-rw-r--r--drivers/infiniband/hw/cxgb4/Makefile5
-rw-r--r--drivers/infiniband/hw/cxgb4/cm.c3933
-rw-r--r--drivers/infiniband/hw/cxgb4/cq.c1011
-rw-r--r--drivers/infiniband/hw/cxgb4/device.c1362
-rw-r--r--drivers/infiniband/hw/cxgb4/ev.c191
-rw-r--r--drivers/infiniband/hw/cxgb4/id_table.c112
-rw-r--r--drivers/infiniband/hw/cxgb4/iw_cxgb4.h1000
-rw-r--r--drivers/infiniband/hw/cxgb4/mem.c955
-rw-r--r--drivers/infiniband/hw/cxgb4/provider.c586
-rw-r--r--drivers/infiniband/hw/cxgb4/qp.c1808
-rw-r--r--drivers/infiniband/hw/cxgb4/resource.c453
-rw-r--r--drivers/infiniband/hw/cxgb4/t4.h680
-rw-r--r--drivers/infiniband/hw/cxgb4/t4fw_ri_api.h854
-rw-r--r--drivers/infiniband/hw/cxgb4/user.h80
-rw-r--r--drivers/infiniband/hw/ehca/ehca_av.c2
-rw-r--r--drivers/infiniband/hw/ehca/ehca_classes.h9
-rw-r--r--drivers/infiniband/hw/ehca/ehca_classes_pSeries.h28
-rw-r--r--drivers/infiniband/hw/ehca/ehca_cq.c32
-rw-r--r--drivers/infiniband/hw/ehca/ehca_eq.c23
-rw-r--r--drivers/infiniband/hw/ehca/ehca_hca.c6
-rw-r--r--drivers/infiniband/hw/ehca/ehca_irq.c266
-rw-r--r--drivers/infiniband/hw/ehca/ehca_irq.h6
-rw-r--r--drivers/infiniband/hw/ehca/ehca_iverbs.h2
-rw-r--r--drivers/infiniband/hw/ehca/ehca_main.c79
-rw-r--r--drivers/infiniband/hw/ehca/ehca_mrmw.c775
-rw-r--r--drivers/infiniband/hw/ehca/ehca_mrmw.h13
-rw-r--r--drivers/infiniband/hw/ehca/ehca_pd.c2
-rw-r--r--drivers/infiniband/hw/ehca/ehca_qes.h4
-rw-r--r--drivers/infiniband/hw/ehca/ehca_qp.c165
-rw-r--r--drivers/infiniband/hw/ehca/ehca_reqs.c78
-rw-r--r--drivers/infiniband/hw/ehca/ehca_sqp.c57
-rw-r--r--drivers/infiniband/hw/ehca/ehca_tools.h3
-rw-r--r--drivers/infiniband/hw/ehca/ehca_uverbs.c8
-rw-r--r--drivers/infiniband/hw/ehca/hcp_if.c66
-rw-r--r--drivers/infiniband/hw/ehca/hcp_if.h4
-rw-r--r--drivers/infiniband/hw/ehca/hcp_phyp.c16
-rw-r--r--drivers/infiniband/hw/ehca/hcp_phyp.h4
-rw-r--r--drivers/infiniband/hw/ehca/ipz_pt_fn.c25
-rw-r--r--drivers/infiniband/hw/ipath/Kconfig8
-rw-r--r--drivers/infiniband/hw/ipath/Makefile8
-rw-r--r--drivers/infiniband/hw/ipath/ipath_7220.h57
-rw-r--r--drivers/infiniband/hw/ipath/ipath_cq.c1
-rw-r--r--drivers/infiniband/hw/ipath/ipath_diag.c73
-rw-r--r--drivers/infiniband/hw/ipath/ipath_dma.c44
-rw-r--r--drivers/infiniband/hw/ipath/ipath_driver.c117
-rw-r--r--drivers/infiniband/hw/ipath/ipath_eeprom.c4
-rw-r--r--drivers/infiniband/hw/ipath/ipath_file_ops.c44
-rw-r--r--drivers/infiniband/hw/ipath/ipath_fs.c46
-rw-r--r--drivers/infiniband/hw/ipath/ipath_iba6110.c9
-rw-r--r--drivers/infiniband/hw/ipath/ipath_iba6120.c1862
-rw-r--r--drivers/infiniband/hw/ipath/ipath_iba7220.c2630
-rw-r--r--drivers/infiniband/hw/ipath/ipath_init_chip.c22
-rw-r--r--drivers/infiniband/hw/ipath/ipath_intr.c8
-rw-r--r--drivers/infiniband/hw/ipath/ipath_kernel.h4
-rw-r--r--drivers/infiniband/hw/ipath/ipath_mad.c241
-rw-r--r--drivers/infiniband/hw/ipath/ipath_mmap.c3
-rw-r--r--drivers/infiniband/hw/ipath/ipath_mr.c41
-rw-r--r--drivers/infiniband/hw/ipath/ipath_qp.c4
-rw-r--r--drivers/infiniband/hw/ipath/ipath_rc.c2
-rw-r--r--drivers/infiniband/hw/ipath/ipath_ruc.c1
-rw-r--r--drivers/infiniband/hw/ipath/ipath_sd7220.c1462
-rw-r--r--drivers/infiniband/hw/ipath/ipath_sd7220_img.c1082
-rw-r--r--drivers/infiniband/hw/ipath/ipath_sdma.c9
-rw-r--r--drivers/infiniband/hw/ipath/ipath_srq.c6
-rw-r--r--drivers/infiniband/hw/ipath/ipath_sysfs.c4
-rw-r--r--drivers/infiniband/hw/ipath/ipath_uc.c2
-rw-r--r--drivers/infiniband/hw/ipath/ipath_ud.c9
-rw-r--r--drivers/infiniband/hw/ipath/ipath_user_pages.c25
-rw-r--r--drivers/infiniband/hw/ipath/ipath_user_sdma.c16
-rw-r--r--drivers/infiniband/hw/ipath/ipath_verbs.c27
-rw-r--r--drivers/infiniband/hw/ipath/ipath_verbs.h10
-rw-r--r--drivers/infiniband/hw/ipath/ipath_verbs_mcast.c2
-rw-r--r--drivers/infiniband/hw/mlx4/Kconfig2
-rw-r--r--drivers/infiniband/hw/mlx4/Makefile2
-rw-r--r--drivers/infiniband/hw/mlx4/ah.c145
-rw-r--r--drivers/infiniband/hw/mlx4/alias_GUID.c688
-rw-r--r--drivers/infiniband/hw/mlx4/cm.c478
-rw-r--r--drivers/infiniband/hw/mlx4/cq.c169
-rw-r--r--drivers/infiniband/hw/mlx4/doorbell.c4
-rw-r--r--drivers/infiniband/hw/mlx4/mad.c1935
-rw-r--r--drivers/infiniband/hw/mlx4/main.c1960
-rw-r--r--drivers/infiniband/hw/mlx4/mcg.c1257
-rw-r--r--drivers/infiniband/hw/mlx4/mlx4_ib.h484
-rw-r--r--drivers/infiniband/hw/mlx4/mr.c144
-rw-r--r--drivers/infiniband/hw/mlx4/qp.c1609
-rw-r--r--drivers/infiniband/hw/mlx4/srq.c26
-rw-r--r--drivers/infiniband/hw/mlx4/sysfs.c906
-rw-r--r--drivers/infiniband/hw/mlx4/user.h12
-rw-r--r--drivers/infiniband/hw/mlx5/Kconfig10
-rw-r--r--drivers/infiniband/hw/mlx5/Makefile3
-rw-r--r--drivers/infiniband/hw/mlx5/ah.c92
-rw-r--r--drivers/infiniband/hw/mlx5/cq.c1187
-rw-r--r--drivers/infiniband/hw/mlx5/doorbell.c98
-rw-r--r--drivers/infiniband/hw/mlx5/mad.c139
-rw-r--r--drivers/infiniband/hw/mlx5/main.c1543
-rw-r--r--drivers/infiniband/hw/mlx5/mem.c162
-rw-r--r--drivers/infiniband/hw/mlx5/mlx5_ib.h574
-rw-r--r--drivers/infiniband/hw/mlx5/mr.c1250
-rw-r--r--drivers/infiniband/hw/mlx5/qp.c3048
-rw-r--r--drivers/infiniband/hw/mlx5/srq.c485
-rw-r--r--drivers/infiniband/hw/mlx5/user.h133
-rw-r--r--drivers/infiniband/hw/mthca/Kconfig2
-rw-r--r--drivers/infiniband/hw/mthca/mthca_allocator.c8
-rw-r--r--drivers/infiniband/hw/mthca/mthca_catas.c18
-rw-r--r--drivers/infiniband/hw/mthca/mthca_cmd.c290
-rw-r--r--drivers/infiniband/hw/mthca/mthca_cmd.h93
-rw-r--r--drivers/infiniband/hw/mthca/mthca_config_reg.h2
-rw-r--r--drivers/infiniband/hw/mthca/mthca_cq.c19
-rw-r--r--drivers/infiniband/hw/mthca/mthca_dev.h2
-rw-r--r--drivers/infiniband/hw/mthca/mthca_eq.c75
-rw-r--r--drivers/infiniband/hw/mthca/mthca_mad.c42
-rw-r--r--drivers/infiniband/hw/mthca/mthca_main.c231
-rw-r--r--drivers/infiniband/hw/mthca/mthca_mcg.c103
-rw-r--r--drivers/infiniband/hw/mthca/mthca_memfree.c44
-rw-r--r--drivers/infiniband/hw/mthca/mthca_mr.c68
-rw-r--r--drivers/infiniband/hw/mthca/mthca_profile.c4
-rw-r--r--drivers/infiniband/hw/mthca/mthca_provider.c131
-rw-r--r--drivers/infiniband/hw/mthca/mthca_provider.h3
-rw-r--r--drivers/infiniband/hw/mthca/mthca_qp.c72
-rw-r--r--drivers/infiniband/hw/mthca/mthca_reset.c11
-rw-r--r--drivers/infiniband/hw/mthca/mthca_srq.c33
-rw-r--r--drivers/infiniband/hw/nes/Kconfig9
-rw-r--r--drivers/infiniband/hw/nes/Makefile2
-rw-r--r--drivers/infiniband/hw/nes/nes.c143
-rw-r--r--drivers/infiniband/hw/nes/nes.h64
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.c2402
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.h101
-rw-r--r--drivers/infiniband/hw/nes/nes_context.h2
-rw-r--r--drivers/infiniband/hw/nes/nes_hw.c1652
-rw-r--r--drivers/infiniband/hw/nes/nes_hw.h192
-rw-r--r--drivers/infiniband/hw/nes/nes_mgt.c1160
-rw-r--r--drivers/infiniband/hw/nes/nes_mgt.h97
-rw-r--r--drivers/infiniband/hw/nes/nes_nic.c717
-rw-r--r--drivers/infiniband/hw/nes/nes_user.h8
-rw-r--r--drivers/infiniband/hw/nes/nes_utils.c78
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.c1747
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.h52
-rw-r--r--drivers/infiniband/hw/ocrdma/Kconfig8
-rw-r--r--drivers/infiniband/hw/ocrdma/Makefile5
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma.h521
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_abi.h134
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_ah.c175
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_ah.h42
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_hw.c2737
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_hw.h138
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_main.c585
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_sli.h1953
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_stats.c616
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_stats.h54
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_verbs.c3054
-rw-r--r--drivers/infiniband/hw/ocrdma/ocrdma_verbs.h99
-rw-r--r--drivers/infiniband/hw/qib/Kconfig15
-rw-r--r--drivers/infiniband/hw/qib/Makefile16
-rw-r--r--drivers/infiniband/hw/qib/qib.h1548
-rw-r--r--drivers/infiniband/hw/qib/qib_6120_regs.h977
-rw-r--r--drivers/infiniband/hw/qib/qib_7220.h149
-rw-r--r--drivers/infiniband/hw/qib/qib_7220_regs.h1496
-rw-r--r--drivers/infiniband/hw/qib/qib_7322_regs.h3163
-rw-r--r--drivers/infiniband/hw/qib/qib_common.h812
-rw-r--r--drivers/infiniband/hw/qib/qib_cq.c540
-rw-r--r--drivers/infiniband/hw/qib/qib_debugfs.c283
-rw-r--r--drivers/infiniband/hw/qib/qib_debugfs.h45
-rw-r--r--drivers/infiniband/hw/qib/qib_diag.c911
-rw-r--r--drivers/infiniband/hw/qib/qib_dma.c169
-rw-r--r--drivers/infiniband/hw/qib/qib_driver.c817
-rw-r--r--drivers/infiniband/hw/qib/qib_eeprom.c456
-rw-r--r--drivers/infiniband/hw/qib/qib_file_ops.c2410
-rw-r--r--drivers/infiniband/hw/qib/qib_fs.c621
-rw-r--r--drivers/infiniband/hw/qib/qib_iba6120.c3599
-rw-r--r--drivers/infiniband/hw/qib/qib_iba7220.c4659
-rw-r--r--drivers/infiniband/hw/qib/qib_iba7322.c8554
-rw-r--r--drivers/infiniband/hw/qib/qib_init.c1857
-rw-r--r--drivers/infiniband/hw/qib/qib_intr.c241
-rw-r--r--drivers/infiniband/hw/qib/qib_keys.c387
-rw-r--r--drivers/infiniband/hw/qib/qib_mad.c2533
-rw-r--r--drivers/infiniband/hw/qib/qib_mad.h431
-rw-r--r--drivers/infiniband/hw/qib/qib_mmap.c174
-rw-r--r--drivers/infiniband/hw/qib/qib_mr.c532
-rw-r--r--drivers/infiniband/hw/qib/qib_pcie.c715
-rw-r--r--drivers/infiniband/hw/qib/qib_pio_copy.c64
-rw-r--r--drivers/infiniband/hw/qib/qib_qp.c1384
-rw-r--r--drivers/infiniband/hw/qib/qib_qsfp.c556
-rw-r--r--drivers/infiniband/hw/qib/qib_qsfp.h189
-rw-r--r--drivers/infiniband/hw/qib/qib_rc.c2290
-rw-r--r--drivers/infiniband/hw/qib/qib_ruc.c819
-rw-r--r--drivers/infiniband/hw/qib/qib_sd7220.c1449
-rw-r--r--drivers/infiniband/hw/qib/qib_sdma.c1039
-rw-r--r--drivers/infiniband/hw/qib/qib_srq.c380
-rw-r--r--drivers/infiniband/hw/qib/qib_sysfs.c842
-rw-r--r--drivers/infiniband/hw/qib/qib_twsi.c500
-rw-r--r--drivers/infiniband/hw/qib/qib_tx.c571
-rw-r--r--drivers/infiniband/hw/qib/qib_uc.c536
-rw-r--r--drivers/infiniband/hw/qib/qib_ud.c590
-rw-r--r--drivers/infiniband/hw/qib/qib_user_pages.c157
-rw-r--r--drivers/infiniband/hw/qib/qib_user_sdma.c1465
-rw-r--r--drivers/infiniband/hw/qib/qib_user_sdma.h52
-rw-r--r--drivers/infiniband/hw/qib/qib_verbs.c2336
-rw-r--r--drivers/infiniband/hw/qib/qib_verbs.h1173
-rw-r--r--drivers/infiniband/hw/qib/qib_verbs_mcast.c368
-rw-r--r--drivers/infiniband/hw/qib/qib_wc_ppc64.c62
-rw-r--r--drivers/infiniband/hw/qib/qib_wc_x86_64.c171
-rw-r--r--drivers/infiniband/hw/usnic/Kconfig10
-rw-r--r--drivers/infiniband/hw/usnic/Makefile15
-rw-r--r--drivers/infiniband/hw/usnic/usnic.h29
-rw-r--r--drivers/infiniband/hw/usnic/usnic_abi.h73
-rw-r--r--drivers/infiniband/hw/usnic/usnic_common_pkt_hdr.h27
-rw-r--r--drivers/infiniband/hw/usnic/usnic_common_util.h68
-rw-r--r--drivers/infiniband/hw/usnic/usnic_debugfs.c154
-rw-r--r--drivers/infiniband/hw/usnic/usnic_debugfs.h29
-rw-r--r--drivers/infiniband/hw/usnic/usnic_fwd.c350
-rw-r--r--drivers/infiniband/hw/usnic/usnic_fwd.h113
-rw-r--r--drivers/infiniband/hw/usnic/usnic_ib.h118
-rw-r--r--drivers/infiniband/hw/usnic/usnic_ib_main.c682
-rw-r--r--drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c761
-rw-r--r--drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h117
-rw-r--r--drivers/infiniband/hw/usnic/usnic_ib_sysfs.c341
-rw-r--r--drivers/infiniband/hw/usnic/usnic_ib_sysfs.h29
-rw-r--r--drivers/infiniband/hw/usnic/usnic_ib_verbs.c768
-rw-r--r--drivers/infiniband/hw/usnic/usnic_ib_verbs.h72
-rw-r--r--drivers/infiniband/hw/usnic/usnic_log.h58
-rw-r--r--drivers/infiniband/hw/usnic/usnic_transport.c202
-rw-r--r--drivers/infiniband/hw/usnic/usnic_transport.h51
-rw-r--r--drivers/infiniband/hw/usnic/usnic_uiom.c604
-rw-r--r--drivers/infiniband/hw/usnic/usnic_uiom.h80
-rw-r--r--drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c254
-rw-r--r--drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.h73
-rw-r--r--drivers/infiniband/hw/usnic/usnic_vnic.c467
-rw-r--r--drivers/infiniband/hw/usnic/usnic_vnic.h103
-rw-r--r--drivers/infiniband/ulp/Makefile5
-rw-r--r--drivers/infiniband/ulp/ipoib/Kconfig3
-rw-r--r--drivers/infiniband/ulp/ipoib/Makefile3
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib.h104
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_cm.c138
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_ethtool.c83
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_fs.c9
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_ib.c203
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c904
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_multicast.c130
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_netlink.c182
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_verbs.c5
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_vlan.c152
-rw-r--r--drivers/infiniband/ulp/iser/Kconfig2
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.c410
-rw-r--r--drivers/infiniband/ulp/iser/iscsi_iser.h273
-rw-r--r--drivers/infiniband/ulp/iser/iser_initiator.c749
-rw-r--r--drivers/infiniband/ulp/iser/iser_memory.c728
-rw-r--r--drivers/infiniband/ulp/iser/iser_verbs.c864
-rw-r--r--drivers/infiniband/ulp/isert/Kconfig5
-rw-r--r--drivers/infiniband/ulp/isert/Makefile2
-rw-r--r--drivers/infiniband/ulp/isert/ib_isert.c3308
-rw-r--r--drivers/infiniband/ulp/isert/ib_isert.h190
-rw-r--r--drivers/infiniband/ulp/isert/isert_proto.h47
-rw-r--r--drivers/infiniband/ulp/srp/ib_srp.c2561
-rw-r--r--drivers/infiniband/ulp/srp/ib_srp.h190
-rw-r--r--drivers/infiniband/ulp/srpt/Kconfig12
-rw-r--r--drivers/infiniband/ulp/srpt/Makefile2
-rw-r--r--drivers/infiniband/ulp/srpt/ib_dm_mad.h139
-rw-r--r--drivers/infiniband/ulp/srpt/ib_srpt.c4042
-rw-r--r--drivers/infiniband/ulp/srpt/ib_srpt.h443
-rw-r--r--drivers/input/Kconfig60
-rw-r--r--drivers/input/Makefile6
-rw-r--r--drivers/input/apm-power.c16
-rw-r--r--drivers/input/evbug.c18
-rw-r--r--drivers/input/evdev.c786
-rw-r--r--drivers/input/ff-core.c50
-rw-r--r--drivers/input/ff-memless.c123
-rw-r--r--drivers/input/fixp-arith.h87
-rw-r--r--drivers/input/gameport/emu10k1-gp.c66
-rw-r--r--drivers/input/gameport/fm801-gp.c36
-rw-r--r--drivers/input/gameport/gameport.c303
-rw-r--r--drivers/input/gameport/lightning.c1
-rw-r--r--drivers/input/gameport/ns558.c2
-rw-r--r--drivers/input/input-compat.c5
-rw-r--r--drivers/input/input-compat.h6
-rw-r--r--drivers/input/input-mt.c432
-rw-r--r--drivers/input/input-polldev.c305
-rw-r--r--drivers/input/input.c1356
-rw-r--r--drivers/input/joydev.c341
-rw-r--r--drivers/input/joystick/Kconfig11
-rw-r--r--drivers/input/joystick/Makefile1
-rw-r--r--drivers/input/joystick/a3d.c21
-rw-r--r--drivers/input/joystick/adi.c20
-rw-r--r--drivers/input/joystick/amijoy.c8
-rw-r--r--drivers/input/joystick/analog.c18
-rw-r--r--drivers/input/joystick/as5011.c374
-rw-r--r--drivers/input/joystick/cobra.c14
-rw-r--r--drivers/input/joystick/db9.c1
-rw-r--r--drivers/input/joystick/gamecon.c673
-rw-r--r--drivers/input/joystick/gf2k.c36
-rw-r--r--drivers/input/joystick/grip.c14
-rw-r--r--drivers/input/joystick/grip_mp.c14
-rw-r--r--drivers/input/joystick/guillemot.c14
-rw-r--r--drivers/input/joystick/iforce/Makefile15
-rw-r--r--drivers/input/joystick/iforce/iforce-main.c39
-rw-r--r--drivers/input/joystick/iforce/iforce-packets.c16
-rw-r--r--drivers/input/joystick/iforce/iforce-usb.c49
-rw-r--r--drivers/input/joystick/iforce/iforce.h4
-rw-r--r--drivers/input/joystick/interact.c28
-rw-r--r--drivers/input/joystick/joydump.c14
-rw-r--r--drivers/input/joystick/magellan.c18
-rw-r--r--drivers/input/joystick/maplecontrol.c14
-rw-r--r--drivers/input/joystick/sidewinder.c32
-rw-r--r--drivers/input/joystick/spaceball.c18
-rw-r--r--drivers/input/joystick/spaceorb.c18
-rw-r--r--drivers/input/joystick/stinger.c18
-rw-r--r--drivers/input/joystick/tmdc.c14
-rw-r--r--drivers/input/joystick/turbografx.c2
-rw-r--r--drivers/input/joystick/twidjoy.c18
-rw-r--r--drivers/input/joystick/walkera0701.c87
-rw-r--r--drivers/input/joystick/warrior.c18
-rw-r--r--drivers/input/joystick/xpad.c586
-rw-r--r--drivers/input/joystick/zhenhua.c18
-rw-r--r--drivers/input/keyboard/Kconfig587
-rw-r--r--drivers/input/keyboard/Makefile62
-rw-r--r--drivers/input/keyboard/aaed2000_kbd.c186
-rw-r--r--drivers/input/keyboard/adp5520-keys.c197
-rw-r--r--drivers/input/keyboard/adp5588-keys.c673
-rw-r--r--drivers/input/keyboard/adp5589-keys.c1114
-rw-r--r--drivers/input/keyboard/amikbd.c88
-rw-r--r--drivers/input/keyboard/atakbd.c5
-rw-r--r--drivers/input/keyboard/atkbd.c863
-rw-r--r--drivers/input/keyboard/bf54x-keys.c67
-rw-r--r--drivers/input/keyboard/clps711x-keypad.c207
-rw-r--r--drivers/input/keyboard/corgikbd.c416
-rw-r--r--drivers/input/keyboard/cros_ec_keyb.c341
-rw-r--r--drivers/input/keyboard/davinci_keyscan.c334
-rw-r--r--drivers/input/keyboard/ep93xx_keypad.c387
-rw-r--r--drivers/input/keyboard/goldfish_events.c193
-rw-r--r--drivers/input/keyboard/gpio_keys.c844
-rw-r--r--drivers/input/keyboard/gpio_keys_polled.c319
-rw-r--r--drivers/input/keyboard/hil_kbd.c614
-rw-r--r--drivers/input/keyboard/hilkbd.c141
-rw-r--r--drivers/input/keyboard/imx_keypad.c596
-rw-r--r--drivers/input/keyboard/jornada680_kbd.c84
-rw-r--r--drivers/input/keyboard/jornada720_kbd.c27
-rw-r--r--drivers/input/keyboard/lkkbd.c508
-rw-r--r--drivers/input/keyboard/lm8323.c861
-rw-r--r--drivers/input/keyboard/lm8333.c236
-rw-r--r--drivers/input/keyboard/locomokbd.c40
-rw-r--r--drivers/input/keyboard/lpc32xx-keys.c395
-rw-r--r--drivers/input/keyboard/maple_keyb.c37
-rw-r--r--drivers/input/keyboard/matrix_keypad.c577
-rw-r--r--drivers/input/keyboard/max7359_keypad.c324
-rw-r--r--drivers/input/keyboard/mcs_touchkey.c283
-rw-r--r--drivers/input/keyboard/mpr121_touchkey.c337
-rw-r--r--drivers/input/keyboard/newtonkbd.c14
-rw-r--r--drivers/input/keyboard/nomadik-ske-keypad.c439
-rw-r--r--drivers/input/keyboard/nspire-keypad.c280
-rw-r--r--drivers/input/keyboard/omap-keypad.c219
-rw-r--r--drivers/input/keyboard/omap4-keypad.c473
-rw-r--r--drivers/input/keyboard/opencores-kbd.c168
-rw-r--r--drivers/input/keyboard/pmic8xxx-keypad.c701
-rw-r--r--drivers/input/keyboard/pxa27x_keypad.c585
-rw-r--r--drivers/input/keyboard/pxa930_rotary.c29
-rw-r--r--drivers/input/keyboard/qt1070.c292
-rw-r--r--drivers/input/keyboard/qt2160.c512
-rw-r--r--drivers/input/keyboard/samsung-keypad.c616
-rw-r--r--drivers/input/keyboard/sh_keysc.c260
-rw-r--r--drivers/input/keyboard/spear-keyboard.c397
-rw-r--r--drivers/input/keyboard/spitzkbd.c498
-rw-r--r--drivers/input/keyboard/st-keyscan.c276
-rw-r--r--drivers/input/keyboard/stmpe-keypad.c398
-rw-r--r--drivers/input/keyboard/stowaway.c14
-rw-r--r--drivers/input/keyboard/sunkbd.c161
-rw-r--r--drivers/input/keyboard/tc3589x-keypad.c519
-rw-r--r--drivers/input/keyboard/tca6416-keypad.c383
-rw-r--r--drivers/input/keyboard/tca8418_keypad.c428
-rw-r--r--drivers/input/keyboard/tegra-kbc.c835
-rw-r--r--drivers/input/keyboard/tosakbd.c430
-rw-r--r--drivers/input/keyboard/twl4030_keypad.c471
-rw-r--r--drivers/input/keyboard/w90p910_keypad.c269
-rw-r--r--drivers/input/keyboard/xtkbd.c14
-rw-r--r--drivers/input/matrix-keymap.c207
-rw-r--r--drivers/input/misc/88pm80x_onkey.c168
-rw-r--r--drivers/input/misc/88pm860x_onkey.c150
-rw-r--r--drivers/input/misc/Kconfig493
-rw-r--r--drivers/input/misc/Makefile70
-rw-r--r--drivers/input/misc/ab8500-ponkey.c135
-rw-r--r--drivers/input/misc/ad714x-i2c.c123
-rw-r--r--drivers/input/misc/ad714x-spi.c129
-rw-r--r--drivers/input/misc/ad714x.c1260
-rw-r--r--drivers/input/misc/ad714x.h55
-rw-r--r--drivers/input/misc/adxl34x-i2c.c155
-rw-r--r--drivers/input/misc/adxl34x-spi.c136
-rw-r--r--drivers/input/misc/adxl34x.c913
-rw-r--r--drivers/input/misc/adxl34x.h30
-rw-r--r--drivers/input/misc/apanel.c2
-rw-r--r--drivers/input/misc/arizona-haptics.c236
-rw-r--r--drivers/input/misc/ati_remote.c863
-rw-r--r--drivers/input/misc/ati_remote2.c399
-rw-r--r--drivers/input/misc/atlas_btns.c60
-rw-r--r--drivers/input/misc/bfin_rotary.c270
-rw-r--r--drivers/input/misc/bma150.c671
-rw-r--r--drivers/input/misc/cm109.c75
-rw-r--r--drivers/input/misc/cma3000_d0x.c399
-rw-r--r--drivers/input/misc/cma3000_d0x.h42
-rw-r--r--drivers/input/misc/cma3000_d0x_i2c.c132
-rw-r--r--drivers/input/misc/cobalt_btns.c30
-rw-r--r--drivers/input/misc/da9052_onkey.c160
-rw-r--r--drivers/input/misc/da9055_onkey.c169
-rw-r--r--drivers/input/misc/dm355evm_keys.c272
-rw-r--r--drivers/input/misc/gp2ap002a00f.c288
-rw-r--r--drivers/input/misc/gpio-beeper.c124
-rw-r--r--drivers/input/misc/gpio_tilt_polled.c211
-rw-r--r--drivers/input/misc/hp_sdc_rtc.c121
-rw-r--r--drivers/input/misc/ideapad_slidebar.c358
-rw-r--r--drivers/input/misc/ims-pcu.c2144
-rw-r--r--drivers/input/misc/ixp4xx-beeper.c58
-rw-r--r--drivers/input/misc/keyspan_remote.c51
-rw-r--r--drivers/input/misc/kxtj9.c675
-rw-r--r--drivers/input/misc/m68kspkr.c7
-rw-r--r--drivers/input/misc/max8925_onkey.c180
-rw-r--r--drivers/input/misc/max8997_haptic.c416
-rw-r--r--drivers/input/misc/mc13783-pwrbutton.c270
-rw-r--r--drivers/input/misc/mma8450.c256
-rw-r--r--drivers/input/misc/mpu3050.c482
-rw-r--r--drivers/input/misc/pcap_keys.c132
-rw-r--r--drivers/input/misc/pcf50633-input.c28
-rw-r--r--drivers/input/misc/pcf8574_keypad.c225
-rw-r--r--drivers/input/misc/pcspkr.c44
-rw-r--r--drivers/input/misc/pm8xxx-vibrator.c237
-rw-r--r--drivers/input/misc/pmic8xxx-pwrkey.c208
-rw-r--r--drivers/input/misc/powermate.c48
-rw-r--r--drivers/input/misc/pwm-beeper.c200
-rw-r--r--drivers/input/misc/rb532_button.c107
-rw-r--r--drivers/input/misc/retu-pwrbutton.c98
-rw-r--r--drivers/input/misc/rotary_encoder.c337
-rw-r--r--drivers/input/misc/sgi_btns.c28
-rw-r--r--drivers/input/misc/sirfsoc-onkey.c219
-rw-r--r--drivers/input/misc/soc_button_array.c218
-rw-r--r--drivers/input/misc/sparcspkr.c63
-rw-r--r--drivers/input/misc/twl4030-pwrbutton.c115
-rw-r--r--drivers/input/misc/twl4030-vibra.c265
-rw-r--r--drivers/input/misc/twl6040-vibra.c401
-rw-r--r--drivers/input/misc/uinput.c470
-rw-r--r--drivers/input/misc/wistron_btns.c422
-rw-r--r--drivers/input/misc/wm831x-on.c150
-rw-r--r--drivers/input/misc/xen-kbdfront.c (renamed from drivers/input/xen-kbdfront.c)114
-rw-r--r--drivers/input/misc/yealink.c74
-rw-r--r--drivers/input/misc/yealink.h2
-rw-r--r--drivers/input/mouse/Kconfig115
-rw-r--r--drivers/input/mouse/Makefile14
-rw-r--r--drivers/input/mouse/alps.c1979
-rw-r--r--drivers/input/mouse/alps.h158
-rw-r--r--drivers/input/mouse/amimouse.c90
-rw-r--r--drivers/input/mouse/appletouch.c254
-rw-r--r--drivers/input/mouse/atarimouse.c16
-rw-r--r--drivers/input/mouse/bcm5974.c603
-rw-r--r--drivers/input/mouse/cyapa.c973
-rw-r--r--drivers/input/mouse/cypress_ps2.c717
-rw-r--r--drivers/input/mouse/cypress_ps2.h191
-rw-r--r--drivers/input/mouse/elantech.c1097
-rw-r--r--drivers/input/mouse/elantech.h80
-rw-r--r--drivers/input/mouse/gpio_mouse.c38
-rw-r--r--drivers/input/mouse/hgpk.c806
-rw-r--r--drivers/input/mouse/hgpk.h48
-rw-r--r--drivers/input/mouse/hil_ptr.c447
-rw-r--r--drivers/input/mouse/lifebook.c108
-rw-r--r--drivers/input/mouse/lifebook.h8
-rw-r--r--drivers/input/mouse/logips2pp.c164
-rw-r--r--drivers/input/mouse/logips2pp.h4
-rw-r--r--drivers/input/mouse/maplemouse.c150
-rw-r--r--drivers/input/mouse/navpoint.c368
-rw-r--r--drivers/input/mouse/pc110pad.c10
-rw-r--r--drivers/input/mouse/psmouse-base.c639
-rw-r--r--drivers/input/mouse/psmouse.h62
-rw-r--r--drivers/input/mouse/pxa930_trkball.c31
-rw-r--r--drivers/input/mouse/rpcmouse.c4
-rw-r--r--drivers/input/mouse/sentelic.c1087
-rw-r--r--drivers/input/mouse/sentelic.h138
-rw-r--r--drivers/input/mouse/sermouse.c14
-rw-r--r--drivers/input/mouse/synaptics.c1255
-rw-r--r--drivers/input/mouse/synaptics.h85
-rw-r--r--drivers/input/mouse/synaptics_i2c.c675
-rw-r--r--drivers/input/mouse/synaptics_usb.c556
-rw-r--r--drivers/input/mouse/touchkit_ps2.c10
-rw-r--r--drivers/input/mouse/touchkit_ps2.h4
-rw-r--r--drivers/input/mouse/trackpoint.c298
-rw-r--r--drivers/input/mouse/trackpoint.h8
-rw-r--r--drivers/input/mouse/vsxxxaa.c383
-rw-r--r--drivers/input/mousedev.c367
-rw-r--r--drivers/input/serio/Kconfig103
-rw-r--r--drivers/input/serio/Makefile7
-rw-r--r--drivers/input/serio/altera_ps2.c201
-rw-r--r--drivers/input/serio/ambakmi.c41
-rw-r--r--drivers/input/serio/ams_delta_serio.c191
-rw-r--r--drivers/input/serio/apbps2.c228
-rw-r--r--drivers/input/serio/arc_ps2.c280
-rw-r--r--drivers/input/serio/at32psif.c45
-rw-r--r--drivers/input/serio/ct82c710.c23
-rw-r--r--drivers/input/serio/gscps2.c11
-rw-r--r--drivers/input/serio/hil_mlc.c33
-rw-r--r--drivers/input/serio/hp_sdc.c37
-rw-r--r--drivers/input/serio/hp_sdc_mlc.c22
-rw-r--r--drivers/input/serio/hyperv-keyboard.c439
-rw-r--r--drivers/input/serio/i8042-io.h7
-rw-r--r--drivers/input/serio/i8042-ppcio.h75
-rw-r--r--drivers/input/serio/i8042-sparcio.h34
-rw-r--r--drivers/input/serio/i8042-unicore32io.h73
-rw-r--r--drivers/input/serio/i8042-x86ia64io.h481
-rw-r--r--drivers/input/serio/i8042.c650
-rw-r--r--drivers/input/serio/i8042.h40
-rw-r--r--drivers/input/serio/libps2.c48
-rw-r--r--drivers/input/serio/maceps2.c9
-rw-r--r--drivers/input/serio/olpc_apsp.c283
-rw-r--r--drivers/input/serio/parkbd.c1
-rw-r--r--drivers/input/serio/pcips2.c26
-rw-r--r--drivers/input/serio/ps2mult.c307
-rw-r--r--drivers/input/serio/q40kbd.c151
-rw-r--r--drivers/input/serio/rpckbd.c69
-rw-r--r--drivers/input/serio/sa1111ps2.c82
-rw-r--r--drivers/input/serio/serio.c586
-rw-r--r--drivers/input/serio/serio_raw.c292
-rw-r--r--drivers/input/serio/serport.c28
-rw-r--r--drivers/input/serio/xilinx_ps2.c91
-rw-r--r--drivers/input/sparse-keymap.c332
-rw-r--r--drivers/input/tablet/Kconfig14
-rw-r--r--drivers/input/tablet/Makefile1
-rw-r--r--drivers/input/tablet/acecad.c122
-rw-r--r--drivers/input/tablet/aiptek.c144
-rw-r--r--drivers/input/tablet/gtco.c156
-rw-r--r--drivers/input/tablet/hanwang.c461
-rw-r--r--drivers/input/tablet/kbtab.c89
-rw-r--r--drivers/input/tablet/wacom.h64
-rw-r--r--drivers/input/tablet/wacom_sys.c1530
-rw-r--r--drivers/input/tablet/wacom_wac.c2809
-rw-r--r--drivers/input/tablet/wacom_wac.h126
-rw-r--r--drivers/input/touchscreen/88pm860x-ts.c305
-rw-r--r--drivers/input/touchscreen/Kconfig608
-rw-r--r--drivers/input/touchscreen/Makefile51
-rw-r--r--drivers/input/touchscreen/ad7877.c860
-rw-r--r--drivers/input/touchscreen/ad7879-i2c.c109
-rw-r--r--drivers/input/touchscreen/ad7879-spi.c164
-rw-r--r--drivers/input/touchscreen/ad7879.c653
-rw-r--r--drivers/input/touchscreen/ad7879.h30
-rw-r--r--drivers/input/touchscreen/ads7846.c1359
-rw-r--r--drivers/input/touchscreen/atmel-wm97xx.c437
-rw-r--r--drivers/input/touchscreen/atmel_mxt_ts.c1619
-rw-r--r--drivers/input/touchscreen/atmel_tsadcc.c343
-rw-r--r--drivers/input/touchscreen/auo-pixcir-ts.c704
-rw-r--r--drivers/input/touchscreen/bu21013_ts.c733
-rw-r--r--drivers/input/touchscreen/corgi_ts.c385
-rw-r--r--drivers/input/touchscreen/cy8ctmg110_ts.c365
-rw-r--r--drivers/input/touchscreen/cyttsp4_core.c2160
-rw-r--r--drivers/input/touchscreen/cyttsp4_core.h472
-rw-r--r--drivers/input/touchscreen/cyttsp4_i2c.c90
-rw-r--r--drivers/input/touchscreen/cyttsp4_spi.c200
-rw-r--r--drivers/input/touchscreen/cyttsp_core.c641
-rw-r--r--drivers/input/touchscreen/cyttsp_core.h154
-rw-r--r--drivers/input/touchscreen/cyttsp_i2c.c90
-rw-r--r--drivers/input/touchscreen/cyttsp_i2c_common.c95
-rw-r--r--drivers/input/touchscreen/cyttsp_spi.c197
-rw-r--r--drivers/input/touchscreen/da9034-ts.c87
-rw-r--r--drivers/input/touchscreen/da9052_tsi.c349
-rw-r--r--drivers/input/touchscreen/dynapro.c190
-rw-r--r--drivers/input/touchscreen/edt-ft5x06.c1154
-rw-r--r--drivers/input/touchscreen/eeti_ts.c329
-rw-r--r--drivers/input/touchscreen/egalax_ts.c285
-rw-r--r--drivers/input/touchscreen/elo.c243
-rw-r--r--drivers/input/touchscreen/fujitsu_ts.c14
-rw-r--r--drivers/input/touchscreen/gunze.c18
-rw-r--r--drivers/input/touchscreen/h3600_ts_input.c490
-rw-r--r--drivers/input/touchscreen/hampshire.c189
-rw-r--r--drivers/input/touchscreen/hp680_ts_input.c24
-rw-r--r--drivers/input/touchscreen/htcpen.c21
-rw-r--r--drivers/input/touchscreen/ili210x.c360
-rw-r--r--drivers/input/touchscreen/inexio.c18
-rw-r--r--drivers/input/touchscreen/intel-mid-touch.c655
-rw-r--r--drivers/input/touchscreen/jornada720_ts.c28
-rw-r--r--drivers/input/touchscreen/lpc32xx_ts.c409
-rw-r--r--drivers/input/touchscreen/mainstone-wm97xx.c91
-rw-r--r--drivers/input/touchscreen/max11801_ts.c242
-rw-r--r--drivers/input/touchscreen/mc13783_ts.c256
-rw-r--r--drivers/input/touchscreen/mcs5000_ts.c296
-rw-r--r--drivers/input/touchscreen/migor_ts.c152
-rw-r--r--drivers/input/touchscreen/mk712.c2
-rw-r--r--drivers/input/touchscreen/mms114.c595
-rw-r--r--drivers/input/touchscreen/mtouch.c18
-rw-r--r--drivers/input/touchscreen/of_touchscreen.c45
-rw-r--r--drivers/input/touchscreen/pcap_ts.c259
-rw-r--r--drivers/input/touchscreen/penmount.c217
-rw-r--r--drivers/input/touchscreen/pixcir_i2c_ts.c441
-rw-r--r--drivers/input/touchscreen/s3c2410_ts.c440
-rw-r--r--drivers/input/touchscreen/st1232.c312
-rw-r--r--drivers/input/touchscreen/stmpe-ts.c397
-rw-r--r--drivers/input/touchscreen/sun4i-ts.c339
-rw-r--r--drivers/input/touchscreen/sur40.c466
-rw-r--r--drivers/input/touchscreen/ti_am335x_tsc.c530
-rw-r--r--drivers/input/touchscreen/touchit213.c18
-rw-r--r--drivers/input/touchscreen/touchright.c18
-rw-r--r--drivers/input/touchscreen/touchwin.c18
-rw-r--r--drivers/input/touchscreen/tps6507x-ts.c327
-rw-r--r--drivers/input/touchscreen/tsc2005.c829
-rw-r--r--drivers/input/touchscreen/tsc2007.c477
-rw-r--r--drivers/input/touchscreen/tsc40.c172
-rw-r--r--drivers/input/touchscreen/ucb1400_ts.c317
-rw-r--r--drivers/input/touchscreen/usbtouchscreen.c862
-rw-r--r--drivers/input/touchscreen/w90p910_ts.c337
-rw-r--r--drivers/input/touchscreen/wacom_i2c.c288
-rw-r--r--drivers/input/touchscreen/wacom_w8001.c507
-rw-r--r--drivers/input/touchscreen/wm831x-ts.c406
-rw-r--r--drivers/input/touchscreen/wm9705.c27
-rw-r--r--drivers/input/touchscreen/wm9712.c55
-rw-r--r--drivers/input/touchscreen/wm9713.c27
-rw-r--r--drivers/input/touchscreen/wm97xx-core.c63
-rw-r--r--drivers/input/touchscreen/zforce_ts.c905
-rw-r--r--drivers/input/touchscreen/zylonite-wm97xx.c231
-rw-r--r--drivers/iommu/Kconfig308
-rw-r--r--drivers/iommu/Makefile21
-rw-r--r--drivers/iommu/amd_iommu.c4355
-rw-r--r--drivers/iommu/amd_iommu_init.c2357
-rw-r--r--drivers/iommu/amd_iommu_proto.h93
-rw-r--r--drivers/iommu/amd_iommu_types.h771
-rw-r--r--drivers/iommu/amd_iommu_v2.c982
-rw-r--r--drivers/iommu/arm-smmu.c2064
-rw-r--r--drivers/iommu/dmar.c1664
-rw-r--r--drivers/iommu/exynos-iommu.c1227
-rw-r--r--drivers/iommu/fsl_pamu.c1308
-rw-r--r--drivers/iommu/fsl_pamu.h410
-rw-r--r--drivers/iommu/fsl_pamu_domain.c1170
-rw-r--r--drivers/iommu/fsl_pamu_domain.h85
-rw-r--r--drivers/iommu/intel-iommu.c4602
-rw-r--r--drivers/iommu/intel_irq_remapping.c1146
-rw-r--r--drivers/iommu/iommu-traces.c27
-rw-r--r--drivers/iommu/iommu.c997
-rw-r--r--drivers/iommu/iova.c (renamed from drivers/pci/iova.c)134
-rw-r--r--drivers/iommu/ipmmu-vmsa.c1255
-rw-r--r--drivers/iommu/irq_remapping.c391
-rw-r--r--drivers/iommu/irq_remapping.h97
-rw-r--r--drivers/iommu/msm_iommu.c737
-rw-r--r--drivers/iommu/msm_iommu.h120
-rw-r--r--drivers/iommu/msm_iommu_dev.c394
-rw-r--r--drivers/iommu/msm_iommu_hw-8xxx.h1865
-rw-r--r--drivers/iommu/of_iommu.c91
-rw-r--r--drivers/iommu/omap-iommu-debug.c444
-rw-r--r--drivers/iommu/omap-iommu.c1337
-rw-r--r--drivers/iommu/omap-iommu.h230
-rw-r--r--drivers/iommu/omap-iommu2.c337
-rw-r--r--drivers/iommu/omap-iopgtable.h95
-rw-r--r--drivers/iommu/omap-iovmm.c791
-rw-r--r--drivers/iommu/pci.h29
-rw-r--r--drivers/iommu/shmobile-iommu.c394
-rw-r--r--drivers/iommu/shmobile-ipmmu.c130
-rw-r--r--drivers/iommu/shmobile-ipmmu.h34
-rw-r--r--drivers/iommu/tegra-gart.c452
-rw-r--r--drivers/iommu/tegra-smmu.c1295
-rw-r--r--drivers/ipack/Kconfig24
-rw-r--r--drivers/ipack/Makefile6
-rw-r--r--drivers/ipack/carriers/Kconfig7
-rw-r--r--drivers/ipack/carriers/Makefile1
-rw-r--r--drivers/ipack/carriers/tpci200.c639
-rw-r--r--drivers/ipack/carriers/tpci200.h167
-rw-r--r--drivers/ipack/devices/Kconfig6
-rw-r--r--drivers/ipack/devices/Makefile1
-rw-r--r--drivers/ipack/devices/ipoctal.c733
-rw-r--r--drivers/ipack/devices/ipoctal.h42
-rw-r--r--drivers/ipack/devices/scc2698.h228
-rw-r--r--drivers/ipack/ipack.c505
-rw-r--r--drivers/irqchip/Kconfig93
-rw-r--r--drivers/irqchip/Makefile32
-rw-r--r--drivers/irqchip/exynos-combiner.c226
-rw-r--r--drivers/irqchip/irq-armada-370-xp.c541
-rw-r--r--drivers/irqchip/irq-bcm2835.c222
-rw-r--r--drivers/irqchip/irq-brcmstb-l2.c202
-rw-r--r--drivers/irqchip/irq-clps711x.c243
-rw-r--r--drivers/irqchip/irq-crossbar.c208
-rw-r--r--drivers/irqchip/irq-dw-apb-ictl.c150
-rw-r--r--drivers/irqchip/irq-gic.c1084
-rw-r--r--drivers/irqchip/irq-imgpdc.c499
-rw-r--r--drivers/irqchip/irq-metag-ext.c868
-rw-r--r--drivers/irqchip/irq-metag.c343
-rw-r--r--drivers/irqchip/irq-mmp.c493
-rw-r--r--drivers/irqchip/irq-moxart.c117
-rw-r--r--drivers/irqchip/irq-mxs.c115
-rw-r--r--drivers/irqchip/irq-nvic.c117
-rw-r--r--drivers/irqchip/irq-orion.c208
-rw-r--r--drivers/irqchip/irq-renesas-intc-irqpin.c556
-rw-r--r--drivers/irqchip/irq-renesas-irqc.c302
-rw-r--r--drivers/irqchip/irq-s3c24xx.c1354
-rw-r--r--drivers/irqchip/irq-sirfsoc.c130
-rw-r--r--drivers/irqchip/irq-sun4i.c161
-rw-r--r--drivers/irqchip/irq-sunxi-nmi.c208
-rw-r--r--drivers/irqchip/irq-tb10x.c195
-rw-r--r--drivers/irqchip/irq-versatile-fpga.c214
-rw-r--r--drivers/irqchip/irq-vic.c547
-rw-r--r--drivers/irqchip/irq-vt8500.c260
-rw-r--r--drivers/irqchip/irq-xtensa-mx.c164
-rw-r--r--drivers/irqchip/irq-xtensa-pic.c108
-rw-r--r--drivers/irqchip/irq-zevio.c127
-rw-r--r--drivers/irqchip/irqchip.c29
-rw-r--r--drivers/irqchip/irqchip.h28
-rw-r--r--drivers/irqchip/spear-shirq.c321
-rw-r--r--drivers/isdn/Kconfig52
-rw-r--r--drivers/isdn/act2000/Kconfig4
-rw-r--r--drivers/isdn/act2000/act2000.h34
-rw-r--r--drivers/isdn/act2000/act2000_isa.c400
-rw-r--r--drivers/isdn/act2000/act2000_isa.h32
-rw-r--r--drivers/isdn/act2000/capi.c1001
-rw-r--r--drivers/isdn/act2000/capi.h50
-rw-r--r--drivers/isdn/act2000/module.c832
-rw-r--r--drivers/isdn/capi/Kconfig50
-rw-r--r--drivers/isdn/capi/Makefile1
-rw-r--r--drivers/isdn/capi/capi.c1515
-rw-r--r--drivers/isdn/capi/capidrv.c1317
-rw-r--r--drivers/isdn/capi/capidrv.h42
-rw-r--r--drivers/isdn/capi/capifs.c221
-rw-r--r--drivers/isdn/capi/capifs.h11
-rw-r--r--drivers/isdn/capi/capilib.c17
-rw-r--r--drivers/isdn/capi/capiutil.c722
-rw-r--r--drivers/isdn/capi/kcapi.c1087
-rw-r--r--drivers/isdn/capi/kcapi.h24
-rw-r--r--drivers/isdn/capi/kcapi_proc.c64
-rw-r--r--drivers/isdn/divert/divert_init.c80
-rw-r--r--drivers/isdn/divert/divert_procfs.c174
-rw-r--r--drivers/isdn/divert/isdn_divert.c1483
-rw-r--r--drivers/isdn/divert/isdn_divert.h122
-rw-r--r--drivers/isdn/gigaset/Kconfig44
-rw-r--r--drivers/isdn/gigaset/Makefile5
-rw-r--r--drivers/isdn/gigaset/asyncdata.c686
-rw-r--r--drivers/isdn/gigaset/bas-gigaset.c729
-rw-r--r--drivers/isdn/gigaset/capi.c2428
-rw-r--r--drivers/isdn/gigaset/common.c454
-rw-r--r--drivers/isdn/gigaset/dummyll.c77
-rw-r--r--drivers/isdn/gigaset/ev-layer.c991
-rw-r--r--drivers/isdn/gigaset/gigaset.h275
-rw-r--r--drivers/isdn/gigaset/i4l.c691
-rw-r--r--drivers/isdn/gigaset/interface.c365
-rw-r--r--drivers/isdn/gigaset/isocdata.c514
-rw-r--r--drivers/isdn/gigaset/proc.c11
-rw-r--r--drivers/isdn/gigaset/ser-gigaset.c107
-rw-r--r--drivers/isdn/gigaset/usb-gigaset.c190
-rw-r--r--drivers/isdn/hardware/avm/Kconfig3
-rw-r--r--drivers/isdn/hardware/avm/avm_cs.c292
-rw-r--r--drivers/isdn/hardware/avm/avmcard.h292
-rw-r--r--drivers/isdn/hardware/avm/b1.c249
-rw-r--r--drivers/isdn/hardware/avm/b1dma.c254
-rw-r--r--drivers/isdn/hardware/avm/b1isa.c20
-rw-r--r--drivers/isdn/hardware/avm/b1pci.c56
-rw-r--r--drivers/isdn/hardware/avm/b1pcmcia.c30
-rw-r--r--drivers/isdn/hardware/avm/c4.c412
-rw-r--r--drivers/isdn/hardware/avm/t1isa.c105
-rw-r--r--drivers/isdn/hardware/avm/t1pci.c38
-rw-r--r--drivers/isdn/hardware/eicon/capi20.h514
-rw-r--r--drivers/isdn/hardware/eicon/capidtmf.c1094
-rw-r--r--drivers/isdn/hardware/eicon/capidtmf.h78
-rw-r--r--drivers/isdn/hardware/eicon/capifunc.c228
-rw-r--r--drivers/isdn/hardware/eicon/capifunc.h4
-rw-r--r--drivers/isdn/hardware/eicon/capimain.c55
-rw-r--r--drivers/isdn/hardware/eicon/cardtype.h1476
-rw-r--r--drivers/isdn/hardware/eicon/cp_vers.h32
-rw-r--r--drivers/isdn/hardware/eicon/dadapter.c576
-rw-r--r--drivers/isdn/hardware/eicon/dadapter.h36
-rw-r--r--drivers/isdn/hardware/eicon/debug.c3520
-rw-r--r--drivers/isdn/hardware/eicon/debug_if.h82
-rw-r--r--drivers/isdn/hardware/eicon/debuglib.c176
-rw-r--r--drivers/isdn/hardware/eicon/debuglib.h272
-rw-r--r--drivers/isdn/hardware/eicon/dfifo.h56
-rw-r--r--drivers/isdn/hardware/eicon/di.c1430
-rw-r--r--drivers/isdn/hardware/eicon/di.h156
-rw-r--r--drivers/isdn/hardware/eicon/di_dbg.h34
-rw-r--r--drivers/isdn/hardware/eicon/di_defs.h144
-rw-r--r--drivers/isdn/hardware/eicon/did_vers.h32
-rw-r--r--drivers/isdn/hardware/eicon/diddfunc.c30
-rw-r--r--drivers/isdn/hardware/eicon/diva.c160
-rw-r--r--drivers/isdn/hardware/eicon/diva_didd.c67
-rw-r--r--drivers/isdn/hardware/eicon/diva_dma.c116
-rw-r--r--drivers/isdn/hardware/eicon/diva_dma.h62
-rw-r--r--drivers/isdn/hardware/eicon/diva_pci.h6
-rw-r--r--drivers/isdn/hardware/eicon/divacapi.h636
-rw-r--r--drivers/isdn/hardware/eicon/divamnt.c28
-rw-r--r--drivers/isdn/hardware/eicon/divasfunc.c43
-rw-r--r--drivers/isdn/hardware/eicon/divasi.c115
-rw-r--r--drivers/isdn/hardware/eicon/divasmain.c186
-rw-r--r--drivers/isdn/hardware/eicon/divasproc.c256
-rw-r--r--drivers/isdn/hardware/eicon/divasync.h562
-rw-r--r--drivers/isdn/hardware/eicon/dqueue.c14
-rw-r--r--drivers/isdn/hardware/eicon/dqueue.h14
-rw-r--r--drivers/isdn/hardware/eicon/dsp_defs.h256
-rw-r--r--drivers/isdn/hardware/eicon/dsp_tst.h8
-rw-r--r--drivers/isdn/hardware/eicon/dspdids.h30
-rw-r--r--drivers/isdn/hardware/eicon/dsrv4bri.h34
-rw-r--r--drivers/isdn/hardware/eicon/dsrv_bri.h44
-rw-r--r--drivers/isdn/hardware/eicon/dsrv_pri.h46
-rw-r--r--drivers/isdn/hardware/eicon/entity.h14
-rw-r--r--drivers/isdn/hardware/eicon/helpers.h68
-rw-r--r--drivers/isdn/hardware/eicon/idifunc.c32
-rw-r--r--drivers/isdn/hardware/eicon/io.c1414
-rw-r--r--drivers/isdn/hardware/eicon/io.h514
-rw-r--r--drivers/isdn/hardware/eicon/istream.c352
-rw-r--r--drivers/isdn/hardware/eicon/kst_ifc.h227
-rw-r--r--drivers/isdn/hardware/eicon/maintidi.c2282
-rw-r--r--drivers/isdn/hardware/eicon/maintidi.h105
-rw-r--r--drivers/isdn/hardware/eicon/man_defs.h36
-rw-r--r--drivers/isdn/hardware/eicon/mdm_msg.h72
-rw-r--r--drivers/isdn/hardware/eicon/message.c28482
-rw-r--r--drivers/isdn/hardware/eicon/mi_pc.h86
-rw-r--r--drivers/isdn/hardware/eicon/mntfunc.c194
-rw-r--r--drivers/isdn/hardware/eicon/os_4bri.c355
-rw-r--r--drivers/isdn/hardware/eicon/os_4bri.h2
-rw-r--r--drivers/isdn/hardware/eicon/os_bri.c262
-rw-r--r--drivers/isdn/hardware/eicon/os_bri.h2
-rw-r--r--drivers/isdn/hardware/eicon/os_capi.h10
-rw-r--r--drivers/isdn/hardware/eicon/os_pri.c390
-rw-r--r--drivers/isdn/hardware/eicon/os_pri.h2
-rw-r--r--drivers/isdn/hardware/eicon/pc.h274
-rw-r--r--drivers/isdn/hardware/eicon/pc_init.h48
-rw-r--r--drivers/isdn/hardware/eicon/pc_maint.h158
-rw-r--r--drivers/isdn/hardware/eicon/pkmaint.h43
-rw-r--r--drivers/isdn/hardware/eicon/platform.h159
-rw-r--r--drivers/isdn/hardware/eicon/pr_pc.h116
-rw-r--r--drivers/isdn/hardware/eicon/s_4bri.c488
-rw-r--r--drivers/isdn/hardware/eicon/s_bri.c288
-rw-r--r--drivers/isdn/hardware/eicon/s_pri.c314
-rw-r--r--drivers/isdn/hardware/eicon/sdp_hdr.h130
-rw-r--r--drivers/isdn/hardware/eicon/um_idi.c226
-rw-r--r--drivers/isdn/hardware/eicon/um_idi.h2
-rw-r--r--drivers/isdn/hardware/eicon/xdi_adapter.h12
-rw-r--r--drivers/isdn/hardware/eicon/xdi_msg.h2
-rw-r--r--drivers/isdn/hardware/eicon/xdi_vers.h32
-rw-r--r--drivers/isdn/hardware/mISDN/Kconfig64
-rw-r--r--drivers/isdn/hardware/mISDN/Makefile8
-rw-r--r--drivers/isdn/hardware/mISDN/avmfritz.c1176
-rw-r--r--drivers/isdn/hardware/mISDN/hfc_multi.h107
-rw-r--r--drivers/isdn/hardware/mISDN/hfc_multi_8xx.h167
-rw-r--r--drivers/isdn/hardware/mISDN/hfc_pci.h18
-rw-r--r--drivers/isdn/hardware/mISDN/hfcmulti.c2488
-rw-r--r--drivers/isdn/hardware/mISDN/hfcpci.c624
-rw-r--r--drivers/isdn/hardware/mISDN/hfcsusb.c618
-rw-r--r--drivers/isdn/hardware/mISDN/hfcsusb.h134
-rw-r--r--drivers/isdn/hardware/mISDN/iohelper.h109
-rw-r--r--drivers/isdn/hardware/mISDN/ipac.h405
-rw-r--r--drivers/isdn/hardware/mISDN/isar.h269
-rw-r--r--drivers/isdn/hardware/mISDN/mISDNinfineon.c1173
-rw-r--r--drivers/isdn/hardware/mISDN/mISDNipac.c1647
-rw-r--r--drivers/isdn/hardware/mISDN/mISDNisar.c1708
-rw-r--r--drivers/isdn/hardware/mISDN/netjet.c1169
-rw-r--r--drivers/isdn/hardware/mISDN/netjet.h57
-rw-r--r--drivers/isdn/hardware/mISDN/speedfax.c532
-rw-r--r--drivers/isdn/hardware/mISDN/w6692.c1437
-rw-r--r--drivers/isdn/hardware/mISDN/w6692.h190
-rw-r--r--drivers/isdn/hisax/Kconfig50
-rw-r--r--drivers/isdn/hisax/Makefile6
-rw-r--r--drivers/isdn/hisax/amd7930_fn.c793
-rw-r--r--drivers/isdn/hisax/arcofi.c93
-rw-r--r--drivers/isdn/hisax/arcofi.h2
-rw-r--r--drivers/isdn/hisax/asuscom.c119
-rw-r--r--drivers/isdn/hisax/avm_a1.c45
-rw-r--r--drivers/isdn/hisax/avm_a1p.c154
-rw-r--r--drivers/isdn/hisax/avm_pci.c354
-rw-r--r--drivers/isdn/hisax/avma1_cs.c297
-rw-r--r--drivers/isdn/hisax/bkm_a4t.c110
-rw-r--r--drivers/isdn/hisax/bkm_a8.c204
-rw-r--r--drivers/isdn/hisax/bkm_ax.h78
-rw-r--r--drivers/isdn/hisax/callc.c1088
-rw-r--r--drivers/isdn/hisax/config.c263
-rw-r--r--drivers/isdn/hisax/diva.c385
-rw-r--r--drivers/isdn/hisax/elsa.c545
-rw-r--r--drivers/isdn/hisax/elsa_cs.c341
-rw-r--r--drivers/isdn/hisax/elsa_ser.c209
-rw-r--r--drivers/isdn/hisax/enternow_pci.c218
-rw-r--r--drivers/isdn/hisax/fsm.c41
-rw-r--r--drivers/isdn/hisax/fsm.h4
-rw-r--r--drivers/isdn/hisax/gazel.c537
-rw-r--r--drivers/isdn/hisax/hfc4s8s_l1.c744
-rw-r--r--drivers/isdn/hisax/hfc4s8s_l1.h8
-rw-r--r--drivers/isdn/hisax/hfc_2bds0.c490
-rw-r--r--drivers/isdn/hisax/hfc_2bds0.h28
-rw-r--r--drivers/isdn/hisax/hfc_2bs0.c287
-rw-r--r--drivers/isdn/hisax/hfc_2bs0.h6
-rw-r--r--drivers/isdn/hisax/hfc_pci.c764
-rw-r--r--drivers/isdn/hisax/hfc_pci.h96
-rw-r--r--drivers/isdn/hisax/hfc_sx.c1141
-rw-r--r--drivers/isdn/hisax/hfc_sx.h30
-rw-r--r--drivers/isdn/hisax/hfc_usb.c611
-rw-r--r--drivers/isdn/hisax/hfc_usb.h12
-rw-r--r--drivers/isdn/hisax/hfcscard.c107
-rw-r--r--drivers/isdn/hisax/hisax.h210
-rw-r--r--drivers/isdn/hisax/hisax_cfg.h6
-rw-r--r--drivers/isdn/hisax/hisax_debug.h42
-rw-r--r--drivers/isdn/hisax/hisax_fcpcipnp.c116
-rw-r--r--drivers/isdn/hisax/hisax_fcpcipnp.h3
-rw-r--r--drivers/isdn/hisax/hisax_if.h4
-rw-r--r--drivers/isdn/hisax/hisax_isac.c45
-rw-r--r--drivers/isdn/hisax/hscx.c137
-rw-r--r--drivers/isdn/hisax/hscx.h2
-rw-r--r--drivers/isdn/hisax/hscx_irq.c24
-rw-r--r--drivers/isdn/hisax/icc.c323
-rw-r--r--drivers/isdn/hisax/icc.h6
-rw-r--r--drivers/isdn/hisax/ipac.h2
-rw-r--r--drivers/isdn/hisax/ipacx.c688
-rw-r--r--drivers/isdn/hisax/isac.c334
-rw-r--r--drivers/isdn/hisax/isac.h2
-rw-r--r--drivers/isdn/hisax/isar.c1814
-rw-r--r--drivers/isdn/hisax/isar.h14
-rw-r--r--drivers/isdn/hisax/isdnhdlc.c603
-rw-r--r--drivers/isdn/hisax/isdnhdlc.h70
-rw-r--r--drivers/isdn/hisax/isdnl1.c279
-rw-r--r--drivers/isdn/hisax/isdnl1.h1
-rw-r--r--drivers/isdn/hisax/isdnl2.c375
-rw-r--r--drivers/isdn/hisax/isdnl2.h1
-rw-r--r--drivers/isdn/hisax/isdnl3.c181
-rw-r--r--drivers/isdn/hisax/isdnl3.h3
-rw-r--r--drivers/isdn/hisax/isurf.c128
-rw-r--r--drivers/isdn/hisax/ix1_micro.c109
-rw-r--r--drivers/isdn/hisax/jade.c221
-rw-r--r--drivers/isdn/hisax/jade.h156
-rw-r--r--drivers/isdn/hisax/jade_irq.c52
-rw-r--r--drivers/isdn/hisax/l3_1tr6.c268
-rw-r--r--drivers/isdn/hisax/l3dss1.c1937
-rw-r--r--drivers/isdn/hisax/l3dss1.h20
-rw-r--r--drivers/isdn/hisax/l3ni1.c1873
-rw-r--r--drivers/isdn/hisax/l3ni1.h28
-rw-r--r--drivers/isdn/hisax/lmgr.c28
-rw-r--r--drivers/isdn/hisax/mic.c67
-rw-r--r--drivers/isdn/hisax/netjet.c626
-rw-r--r--drivers/isdn/hisax/netjet.h5
-rw-r--r--drivers/isdn/hisax/niccy.c90
-rw-r--r--drivers/isdn/hisax/nj_s.c130
-rw-r--r--drivers/isdn/hisax/nj_u.c116
-rw-r--r--drivers/isdn/hisax/q931.c285
-rw-r--r--drivers/isdn/hisax/s0box.c135
-rw-r--r--drivers/isdn/hisax/saphir.c125
-rw-r--r--drivers/isdn/hisax/sedlbauer.c359
-rw-r--r--drivers/isdn/hisax/sedlbauer_cs.c458
-rw-r--r--drivers/isdn/hisax/sportster.c132
-rw-r--r--drivers/isdn/hisax/st5481.h101
-rw-r--r--drivers/isdn/hisax/st5481_b.c133
-rw-r--r--drivers/isdn/hisax/st5481_d.c200
-rw-r--r--drivers/isdn/hisax/st5481_init.c69
-rw-r--r--drivers/isdn/hisax/st5481_usb.c303
-rw-r--r--drivers/isdn/hisax/tei.c81
-rw-r--r--drivers/isdn/hisax/teleint.c129
-rw-r--r--drivers/isdn/hisax/teles0.c131
-rw-r--r--drivers/isdn/hisax/teles3.c166
-rw-r--r--drivers/isdn/hisax/teles_cs.c325
-rw-r--r--drivers/isdn/hisax/telespci.c89
-rw-r--r--drivers/isdn/hisax/w6692.c430
-rw-r--r--drivers/isdn/hisax/w6692.h10
-rw-r--r--drivers/isdn/hysdn/Kconfig4
-rw-r--r--drivers/isdn/hysdn/boardergo.c28
-rw-r--r--drivers/isdn/hysdn/boardergo.h30
-rw-r--r--drivers/isdn/hysdn/hycapi.c435
-rw-r--r--drivers/isdn/hysdn/hysdn_boot.c302
-rw-r--r--drivers/isdn/hysdn/hysdn_defs.h32
-rw-r--r--drivers/isdn/hysdn/hysdn_init.c38
-rw-r--r--drivers/isdn/hysdn/hysdn_net.c30
-rw-r--r--drivers/isdn/hysdn/hysdn_pof.h26
-rw-r--r--drivers/isdn/hysdn/hysdn_procconf.c62
-rw-r--r--drivers/isdn/hysdn/hysdn_proclog.c162
-rw-r--r--drivers/isdn/hysdn/hysdn_sched.c56
-rw-r--r--drivers/isdn/hysdn/ince1pc.h72
-rw-r--r--drivers/isdn/i4l/Kconfig7
-rw-r--r--drivers/isdn/i4l/Makefile1
-rw-r--r--drivers/isdn/i4l/isdn_audio.c127
-rw-r--r--drivers/isdn/i4l/isdn_bsdcomp.c377
-rw-r--r--drivers/isdn/i4l/isdn_common.c1605
-rw-r--r--drivers/isdn/i4l/isdn_common.h18
-rw-r--r--drivers/isdn/i4l/isdn_concap.c38
-rw-r--r--drivers/isdn/i4l/isdn_concap.h4
-rw-r--r--drivers/isdn/i4l/isdn_net.c1580
-rw-r--r--drivers/isdn/i4l/isdn_net.h17
-rw-r--r--drivers/isdn/i4l/isdn_ppp.c1581
-rw-r--r--drivers/isdn/i4l/isdn_ppp.h2
-rw-r--r--drivers/isdn/i4l/isdn_tty.c2956
-rw-r--r--drivers/isdn/i4l/isdn_tty.h10
-rw-r--r--drivers/isdn/i4l/isdn_ttyfax.c1094
-rw-r--r--drivers/isdn/i4l/isdn_ttyfax.h1
-rw-r--r--drivers/isdn/i4l/isdn_v110.c294
-rw-r--r--drivers/isdn/i4l/isdn_v110.h8
-rw-r--r--drivers/isdn/i4l/isdn_x25iface.c242
-rw-r--r--drivers/isdn/i4l/isdn_x25iface.h17
-rw-r--r--drivers/isdn/i4l/isdnhdlc.c630
-rw-r--r--drivers/isdn/icn/Kconfig4
-rw-r--r--drivers/isdn/icn/icn.c819
-rw-r--r--drivers/isdn/icn/icn.h32
-rw-r--r--drivers/isdn/isdnloop/isdnloop.c986
-rw-r--r--drivers/isdn/isdnloop/isdnloop.h6
-rw-r--r--drivers/isdn/mISDN/Kconfig12
-rw-r--r--drivers/isdn/mISDN/clock.c37
-rw-r--r--drivers/isdn/mISDN/core.c114
-rw-r--r--drivers/isdn/mISDN/core.h8
-rw-r--r--drivers/isdn/mISDN/dsp.h48
-rw-r--r--drivers/isdn/mISDN/dsp_audio.c11
-rw-r--r--drivers/isdn/mISDN/dsp_biquad.h6
-rw-r--r--drivers/isdn/mISDN/dsp_blowfish.c112
-rw-r--r--drivers/isdn/mISDN/dsp_cmx.c1140
-rw-r--r--drivers/isdn/mISDN/dsp_core.c267
-rw-r--r--drivers/isdn/mISDN/dsp_dtmf.c84
-rw-r--r--drivers/isdn/mISDN/dsp_ecdis.h28
-rw-r--r--drivers/isdn/mISDN/dsp_hwec.c11
-rw-r--r--drivers/isdn/mISDN/dsp_hwec.h1
-rw-r--r--drivers/isdn/mISDN/dsp_pipeline.c76
-rw-r--r--drivers/isdn/mISDN/dsp_tones.c165
-rw-r--r--drivers/isdn/mISDN/fsm.c42
-rw-r--r--drivers/isdn/mISDN/hwchannel.c203
-rw-r--r--drivers/isdn/mISDN/l1oip.h23
-rw-r--r--drivers/isdn/mISDN/l1oip_codec.c45
-rw-r--r--drivers/isdn/mISDN/l1oip_core.c676
-rw-r--r--drivers/isdn/mISDN/layer1.c61
-rw-r--r--drivers/isdn/mISDN/layer1.h1
-rw-r--r--drivers/isdn/mISDN/layer2.c253
-rw-r--r--drivers/isdn/mISDN/layer2.h12
-rw-r--r--drivers/isdn/mISDN/socket.c158
-rw-r--r--drivers/isdn/mISDN/stack.c141
-rw-r--r--drivers/isdn/mISDN/tei.c316
-rw-r--r--drivers/isdn/mISDN/timerdev.c104
-rw-r--r--drivers/isdn/pcbit/Kconfig4
-rw-r--r--drivers/isdn/pcbit/callbacks.c304
-rw-r--r--drivers/isdn/pcbit/callbacks.h28
-rw-r--r--drivers/isdn/pcbit/capi.c585
-rw-r--r--drivers/isdn/pcbit/capi.h46
-rw-r--r--drivers/isdn/pcbit/drv.c265
-rw-r--r--drivers/isdn/pcbit/edss1.c417
-rw-r--r--drivers/isdn/pcbit/edss1.h15
-rw-r--r--drivers/isdn/pcbit/layer2.c46
-rw-r--r--drivers/isdn/pcbit/layer2.h265
-rw-r--r--drivers/isdn/pcbit/module.c35
-rw-r--r--drivers/isdn/pcbit/pcbit.h32
-rw-r--r--drivers/isdn/sc/Kconfig4
-rw-r--r--drivers/isdn/sc/card.h2
-rw-r--r--drivers/isdn/sc/command.c132
-rw-r--r--drivers/isdn/sc/event.c24
-rw-r--r--drivers/isdn/sc/hardware.h4
-rw-r--r--drivers/isdn/sc/init.c136
-rw-r--r--drivers/isdn/sc/interrupt.c156
-rw-r--r--drivers/isdn/sc/ioctl.c253
-rw-r--r--drivers/isdn/sc/message.c126
-rw-r--r--drivers/isdn/sc/message.h18
-rw-r--r--drivers/isdn/sc/packet.c129
-rw-r--r--drivers/isdn/sc/scioc.h5
-rw-r--r--drivers/isdn/sc/shmem.c54
-rw-r--r--drivers/isdn/sc/timer.c25
-rw-r--r--drivers/leds/Kconfig417
-rw-r--r--drivers/leds/Makefile45
-rw-r--r--drivers/leds/dell-led.c359
-rw-r--r--drivers/leds/led-class.c169
-rw-r--r--drivers/leds/led-core.c103
-rw-r--r--drivers/leds/led-triggers.c170
-rw-r--r--drivers/leds/leds-88pm860x.c251
-rw-r--r--drivers/leds/leds-adp5520.c215
-rw-r--r--drivers/leds/leds-alix2.c181
-rw-r--r--drivers/leds/leds-ams-delta.c136
-rw-r--r--drivers/leds/leds-asic3.c181
-rw-r--r--drivers/leds/leds-atmel-pwm.c35
-rw-r--r--drivers/leds/leds-bd2802.c809
-rw-r--r--drivers/leds/leds-blinkm.c811
-rw-r--r--drivers/leds/leds-clevo-mail.c32
-rw-r--r--drivers/leds/leds-cobalt-qube.c39
-rw-r--r--drivers/leds/leds-cobalt-raq.c24
-rw-r--r--drivers/leds/leds-da903x.c45
-rw-r--r--drivers/leds/leds-da9052.c212
-rw-r--r--drivers/leds/leds-dac124s085.c134
-rw-r--r--drivers/leds/leds-fsg.c39
-rw-r--r--drivers/leds/leds-gpio-register.c42
-rw-r--r--drivers/leds/leds-gpio.c273
-rw-r--r--drivers/leds/leds-h1940.c168
-rw-r--r--drivers/leds/leds-hp6xx.c19
-rw-r--r--drivers/leds/leds-lm3530.c509
-rw-r--r--drivers/leds/leds-lm3533.c784
-rw-r--r--drivers/leds/leds-lm355x.c574
-rw-r--r--drivers/leds/leds-lm3642.c464
-rw-r--r--drivers/leds/leds-locomo.c3
-rw-r--r--drivers/leds/leds-lp3944.c458
-rw-r--r--drivers/leds/leds-lp5521.c617
-rw-r--r--drivers/leds/leds-lp5523.c839
-rw-r--r--drivers/leds/leds-lp5562.c617
-rw-r--r--drivers/leds/leds-lp55xx-common.c613
-rw-r--r--drivers/leds/leds-lp55xx-common.h208
-rw-r--r--drivers/leds/leds-lp8501.c411
-rw-r--r--drivers/leds/leds-lp8788.c194
-rw-r--r--drivers/leds/leds-lt3593.c196
-rw-r--r--drivers/leds/leds-max8997.c319
-rw-r--r--drivers/leds/leds-mc13783.c337
-rw-r--r--drivers/leds/leds-net48xx.c3
-rw-r--r--drivers/leds/leds-netxbig.c421
-rw-r--r--drivers/leds/leds-ns2.c395
-rw-r--r--drivers/leds/leds-ot200.c170
-rw-r--r--drivers/leds/leds-pca9532.c351
-rw-r--r--drivers/leds/leds-pca955x.c121
-rw-r--r--drivers/leds/leds-pca963x.c461
-rw-r--r--drivers/leds/leds-pwm.c245
-rw-r--r--drivers/leds/leds-rb532.c65
-rw-r--r--drivers/leds/leds-regulator.c235
-rw-r--r--drivers/leds/leds-s3c24xx.c72
-rw-r--r--drivers/leds/leds-ss4200.c556
-rw-r--r--drivers/leds/leds-sunfire.c61
-rw-r--r--drivers/leds/leds-tca6507.c848
-rw-r--r--drivers/leds/leds-versatile.c110
-rw-r--r--drivers/leds/leds-wm831x-status.c331
-rw-r--r--drivers/leds/leds-wm8350.c62
-rw-r--r--drivers/leds/leds-wrap.c3
-rw-r--r--drivers/leds/leds.h15
-rw-r--r--drivers/leds/ledtrig-backlight.c110
-rw-r--r--drivers/leds/ledtrig-heartbeat.c118
-rw-r--r--drivers/leds/ledtrig-ide-disk.c63
-rw-r--r--drivers/leds/ledtrig-timer.c237
-rw-r--r--drivers/leds/trigger/Kconfig111
-rw-r--r--drivers/leds/trigger/Makefile10
-rw-r--r--drivers/leds/trigger/ledtrig-backlight.c168
-rw-r--r--drivers/leds/trigger/ledtrig-camera.c57
-rw-r--r--drivers/leds/trigger/ledtrig-cpu.c166
-rw-r--r--drivers/leds/trigger/ledtrig-default-on.c (renamed from drivers/leds/ledtrig-default-on.c)4
-rw-r--r--drivers/leds/trigger/ledtrig-gpio.c253
-rw-r--r--drivers/leds/trigger/ledtrig-heartbeat.c161
-rw-r--r--drivers/leds/trigger/ledtrig-ide-disk.c47
-rw-r--r--drivers/leds/trigger/ledtrig-oneshot.c204
-rw-r--r--drivers/leds/trigger/ledtrig-timer.c130
-rw-r--r--drivers/leds/trigger/ledtrig-transient.c237
-rw-r--r--drivers/lguest/Kconfig7
-rw-r--r--drivers/lguest/Makefile2
-rw-r--r--drivers/lguest/core.c218
-rw-r--r--drivers/lguest/hypercalls.c155
-rw-r--r--drivers/lguest/interrupts_and_traps.c362
-rw-r--r--drivers/lguest/lg.h82
-rw-r--r--drivers/lguest/lguest_device.c264
-rw-r--r--drivers/lguest/lguest_user.c366
-rw-r--r--drivers/lguest/page_tables.c1127
-rw-r--r--drivers/lguest/segments.c147
-rw-r--r--drivers/lguest/x86/core.c406
-rw-r--r--drivers/lguest/x86/switcher_32.S22
-rw-r--r--drivers/macintosh/Kconfig62
-rw-r--r--drivers/macintosh/Makefile17
-rw-r--r--drivers/macintosh/adb-iop.c4
-rw-r--r--drivers/macintosh/adb.c83
-rw-r--r--drivers/macintosh/adbhid.c2
-rw-r--r--drivers/macintosh/ams/Makefile (renamed from drivers/hwmon/ams/Makefile)0
-rw-r--r--drivers/macintosh/ams/ams-core.c (renamed from drivers/hwmon/ams/ams-core.c)15
-rw-r--r--drivers/macintosh/ams/ams-i2c.c (renamed from drivers/hwmon/ams/ams-i2c.c)4
-rw-r--r--drivers/macintosh/ams/ams-input.c (renamed from drivers/hwmon/ams/ams-input.c)10
-rw-r--r--drivers/macintosh/ams/ams-pmu.c (renamed from drivers/hwmon/ams/ams-pmu.c)2
-rw-r--r--drivers/macintosh/ams/ams.h (renamed from drivers/hwmon/ams/ams.h)3
-rw-r--r--drivers/macintosh/ans-lcd.c46
-rw-r--r--drivers/macintosh/mac_hid.c296
-rw-r--r--drivers/macintosh/macio-adb.c4
-rw-r--r--drivers/macintosh/macio_asic.c110
-rw-r--r--drivers/macintosh/macio_sysfs.c17
-rw-r--r--drivers/macintosh/mediabay.c346
-rw-r--r--drivers/macintosh/nvram.c17
-rw-r--r--drivers/macintosh/rack-meter.c49
-rw-r--r--drivers/macintosh/smu.c52
-rw-r--r--drivers/macintosh/therm_adt746x.c498
-rw-r--r--drivers/macintosh/therm_pm72.c260
-rw-r--r--drivers/macintosh/therm_pm72.h2
-rw-r--r--drivers/macintosh/therm_windtunnel.c160
-rw-r--r--drivers/macintosh/via-cuda.c77
-rw-r--r--drivers/macintosh/via-macii.c3
-rw-r--r--drivers/macintosh/via-maciisi.c6
-rw-r--r--drivers/macintosh/via-pmu-backlight.c20
-rw-r--r--drivers/macintosh/via-pmu-led.c6
-rw-r--r--drivers/macintosh/via-pmu.c342
-rw-r--r--drivers/macintosh/via-pmu68k.c2
-rw-r--r--drivers/macintosh/windfarm.h51
-rw-r--r--drivers/macintosh/windfarm_ad7417_sensor.c347
-rw-r--r--drivers/macintosh/windfarm_core.c26
-rw-r--r--drivers/macintosh/windfarm_cpufreq_clamp.c6
-rw-r--r--drivers/macintosh/windfarm_fcu_controls.c600
-rw-r--r--drivers/macintosh/windfarm_lm75_sensor.c180
-rw-r--r--drivers/macintosh/windfarm_lm87_sensor.c201
-rw-r--r--drivers/macintosh/windfarm_max6690_sensor.c146
-rw-r--r--drivers/macintosh/windfarm_mpu.h105
-rw-r--r--drivers/macintosh/windfarm_pm112.c8
-rw-r--r--drivers/macintosh/windfarm_pm121.c31
-rw-r--r--drivers/macintosh/windfarm_pm72.c847
-rw-r--r--drivers/macintosh/windfarm_pm81.c48
-rw-r--r--drivers/macintosh/windfarm_pm91.c55
-rw-r--r--drivers/macintosh/windfarm_rm31.c740
-rw-r--r--drivers/macintosh/windfarm_smu_controls.c3
-rw-r--r--drivers/macintosh/windfarm_smu_sat.c174
-rw-r--r--drivers/macintosh/windfarm_smu_sensors.c7
-rw-r--r--drivers/mailbox/Kconfig53
-rw-r--r--drivers/mailbox/Makefile7
-rw-r--r--drivers/mailbox/mailbox-omap1.c203
-rw-r--r--drivers/mailbox/mailbox-omap2.c357
-rw-r--r--drivers/mailbox/omap-mailbox.c469
-rw-r--r--drivers/mailbox/omap-mbox.h67
-rw-r--r--drivers/mailbox/pl320-ipc.c198
-rw-r--r--drivers/mca/Kconfig14
-rw-r--r--drivers/mca/Makefile7
-rw-r--r--drivers/mca/mca-bus.c169
-rw-r--r--drivers/mca/mca-device.c218
-rw-r--r--drivers/mca/mca-driver.c63
-rw-r--r--drivers/mca/mca-legacy.c329
-rw-r--r--drivers/mca/mca-proc.c249
-rw-r--r--drivers/mcb/Kconfig31
-rw-r--r--drivers/mcb/Makefile7
-rw-r--r--drivers/mcb/mcb-core.c424
-rw-r--r--drivers/mcb/mcb-internal.h118
-rw-r--r--drivers/mcb/mcb-parse.c160
-rw-r--r--drivers/mcb/mcb-pci.c129
-rw-r--r--drivers/md/.gitignore4
-rw-r--r--drivers/md/Kconfig223
-rw-r--r--drivers/md/Makefile113
-rw-r--r--drivers/md/bcache/Kconfig26
-rw-r--r--drivers/md/bcache/Makefile8
-rw-r--r--drivers/md/bcache/alloc.c696
-rw-r--r--drivers/md/bcache/bcache.h942
-rw-r--r--drivers/md/bcache/bset.c1331
-rw-r--r--drivers/md/bcache/bset.h566
-rw-r--r--drivers/md/bcache/btree.c2518
-rw-r--r--drivers/md/bcache/btree.h309
-rw-r--r--drivers/md/bcache/closure.c222
-rw-r--r--drivers/md/bcache/closure.h386
-rw-r--r--drivers/md/bcache/debug.c252
-rw-r--r--drivers/md/bcache/debug.h34
-rw-r--r--drivers/md/bcache/extents.c620
-rw-r--r--drivers/md/bcache/extents.h13
-rw-r--r--drivers/md/bcache/io.c243
-rw-r--r--drivers/md/bcache/journal.c815
-rw-r--r--drivers/md/bcache/journal.h179
-rw-r--r--drivers/md/bcache/movinggc.c256
-rw-r--r--drivers/md/bcache/request.c1159
-rw-r--r--drivers/md/bcache/request.h43
-rw-r--r--drivers/md/bcache/stats.c241
-rw-r--r--drivers/md/bcache/stats.h61
-rw-r--r--drivers/md/bcache/super.c2102
-rw-r--r--drivers/md/bcache/sysfs.c898
-rw-r--r--drivers/md/bcache/sysfs.h110
-rw-r--r--drivers/md/bcache/trace.c52
-rw-r--r--drivers/md/bcache/util.c381
-rw-r--r--drivers/md/bcache/util.h588
-rw-r--r--drivers/md/bcache/writeback.c507
-rw-r--r--drivers/md/bcache/writeback.h90
-rw-r--r--drivers/md/bitmap.c2125
-rw-r--r--drivers/md/bitmap.h265
-rw-r--r--drivers/md/dm-bio-list.h107
-rw-r--r--drivers/md/dm-bio-prison.c408
-rw-r--r--drivers/md/dm-bio-prison.h111
-rw-r--r--drivers/md/dm-bio-record.h13
-rw-r--r--drivers/md/dm-bufio.c1867
-rw-r--r--drivers/md/dm-bufio.h132
-rw-r--r--drivers/md/dm-builtin.c48
-rw-r--r--drivers/md/dm-cache-block-types.h43
-rw-r--r--drivers/md/dm-cache-metadata.c1299
-rw-r--r--drivers/md/dm-cache-metadata.h140
-rw-r--r--drivers/md/dm-cache-policy-cleaner.c467
-rw-r--r--drivers/md/dm-cache-policy-internal.h131
-rw-r--r--drivers/md/dm-cache-policy-mq.c1333
-rw-r--r--drivers/md/dm-cache-policy.c173
-rw-r--r--drivers/md/dm-cache-policy.h249
-rw-r--r--drivers/md/dm-cache-target.c3121
-rw-r--r--drivers/md/dm-crypt.c1505
-rw-r--r--drivers/md/dm-delay.c109
-rw-r--r--drivers/md/dm-era-target.c1747
-rw-r--r--drivers/md/dm-exception-store.c247
-rw-r--r--drivers/md/dm-exception-store.h117
-rw-r--r--drivers/md/dm-flakey.c447
-rw-r--r--drivers/md/dm-io.c257
-rw-r--r--drivers/md/dm-ioctl.c877
-rw-r--r--drivers/md/dm-kcopyd.c408
-rw-r--r--drivers/md/dm-linear.c47
-rw-r--r--drivers/md/dm-log-userspace-base.c930
-rw-r--r--drivers/md/dm-log-userspace-transfer.c286
-rw-r--r--drivers/md/dm-log-userspace-transfer.h18
-rw-r--r--drivers/md/dm-log.c216
-rw-r--r--drivers/md/dm-mpath.c994
-rw-r--r--drivers/md/dm-path-selector.c22
-rw-r--r--drivers/md/dm-path-selector.h8
-rw-r--r--drivers/md/dm-queue-length.c264
-rw-r--r--drivers/md/dm-raid.c1693
-rw-r--r--drivers/md/dm-raid1.c425
-rw-r--r--drivers/md/dm-region-hash.c48
-rw-r--r--drivers/md/dm-round-robin.c6
-rw-r--r--drivers/md/dm-service-time.c343
-rw-r--r--drivers/md/dm-snap-persistent.c572
-rw-r--r--drivers/md/dm-snap-transient.c99
-rw-r--r--drivers/md/dm-snap.c1848
-rw-r--r--drivers/md/dm-snap.h105
-rw-r--r--drivers/md/dm-stats.c981
-rw-r--r--drivers/md/dm-stats.h40
-rw-r--r--drivers/md/dm-stripe.c255
-rw-r--r--drivers/md/dm-switch.c538
-rw-r--r--drivers/md/dm-sysfs.c16
-rw-r--r--drivers/md/dm-table.c1199
-rw-r--r--drivers/md/dm-target.c120
-rw-r--r--drivers/md/dm-thin-metadata.c1815
-rw-r--r--drivers/md/dm-thin-metadata.h218
-rw-r--r--drivers/md/dm-thin.c3546
-rw-r--r--drivers/md/dm-uevent.c17
-rw-r--r--drivers/md/dm-verity.c903
-rw-r--r--drivers/md/dm-zero.c14
-rw-r--r--drivers/md/dm.c2352
-rw-r--r--drivers/md/dm.h132
-rw-r--r--drivers/md/faulty.c118
-rw-r--r--drivers/md/linear.c421
-rw-r--r--drivers/md/linear.h15
-rw-r--r--drivers/md/md.c5253
-rw-r--r--drivers/md/md.h629
-rw-r--r--drivers/md/mktables.c120
-rw-r--r--drivers/md/multipath.c267
-rw-r--r--drivers/md/multipath.h31
-rw-r--r--drivers/md/persistent-data/Kconfig18
-rw-r--r--drivers/md/persistent-data/Makefile12
-rw-r--r--drivers/md/persistent-data/dm-array.c819
-rw-r--r--drivers/md/persistent-data/dm-array.h166
-rw-r--r--drivers/md/persistent-data/dm-bitset.c171
-rw-r--r--drivers/md/persistent-data/dm-bitset.h166
-rw-r--r--drivers/md/persistent-data/dm-block-manager.c636
-rw-r--r--drivers/md/persistent-data/dm-block-manager.h133
-rw-r--r--drivers/md/persistent-data/dm-btree-internal.h135
-rw-r--r--drivers/md/persistent-data/dm-btree-remove.c592
-rw-r--r--drivers/md/persistent-data/dm-btree-spine.c251
-rw-r--r--drivers/md/persistent-data/dm-btree.c896
-rw-r--r--drivers/md/persistent-data/dm-btree.h162
-rw-r--r--drivers/md/persistent-data/dm-persistent-data-internal.h19
-rw-r--r--drivers/md/persistent-data/dm-space-map-common.c751
-rw-r--r--drivers/md/persistent-data/dm-space-map-common.h127
-rw-r--r--drivers/md/persistent-data/dm-space-map-disk.c303
-rw-r--r--drivers/md/persistent-data/dm-space-map-disk.h25
-rw-r--r--drivers/md/persistent-data/dm-space-map-metadata.c794
-rw-r--r--drivers/md/persistent-data/dm-space-map-metadata.h44
-rw-r--r--drivers/md/persistent-data/dm-space-map.h157
-rw-r--r--drivers/md/persistent-data/dm-transaction-manager.c382
-rw-r--r--drivers/md/persistent-data/dm-transaction-manager.h130
-rw-r--r--drivers/md/raid0.c848
-rw-r--r--drivers/md/raid0.h19
-rw-r--r--drivers/md/raid1.c2915
-rw-r--r--drivers/md/raid1.h178
-rw-r--r--drivers/md/raid10.c4380
-rw-r--r--drivers/md/raid10.h156
-rw-r--r--drivers/md/raid5.c6558
-rw-r--r--drivers/md/raid5.h566
-rw-r--r--drivers/md/raid6.h130
-rw-r--r--drivers/md/raid6algos.c154
-rw-r--r--drivers/md/raid6altivec.uc130
-rw-r--r--drivers/md/raid6int.uc117
-rw-r--r--drivers/md/raid6mmx.c142
-rw-r--r--drivers/md/raid6recov.c133
-rw-r--r--drivers/md/raid6sse1.c162
-rw-r--r--drivers/md/raid6sse2.c262
-rw-r--r--drivers/md/raid6test/Makefile75
-rw-r--r--drivers/md/raid6test/test.c124
-rw-r--r--drivers/md/raid6x86.h61
-rw-r--r--drivers/md/unroll.pl24
-rw-r--r--drivers/media/Kconfig234
-rw-r--r--drivers/media/Makefile29
-rw-r--r--drivers/media/common/Kconfig28
-rw-r--r--drivers/media/common/Makefile13
-rw-r--r--drivers/media/common/b2c2/Kconfig23
-rw-r--r--drivers/media/common/b2c2/Makefile8
-rw-r--r--drivers/media/common/b2c2/flexcop-common.h185
-rw-r--r--drivers/media/common/b2c2/flexcop-eeprom.c147
-rw-r--r--drivers/media/common/b2c2/flexcop-fe-tuner.c678
-rw-r--r--drivers/media/common/b2c2/flexcop-hw-filter.c232
-rw-r--r--drivers/media/common/b2c2/flexcop-i2c.c (renamed from drivers/media/dvb/b2c2/flexcop-i2c.c)66
-rw-r--r--drivers/media/common/b2c2/flexcop-misc.c86
-rw-r--r--drivers/media/common/b2c2/flexcop-reg.h (renamed from drivers/media/dvb/b2c2/flexcop-reg.h)21
-rw-r--r--drivers/media/common/b2c2/flexcop-sram.c (renamed from drivers/media/dvb/b2c2/flexcop-sram.c)118
-rw-r--r--drivers/media/common/b2c2/flexcop.c325
-rw-r--r--drivers/media/common/b2c2/flexcop.h29
-rw-r--r--drivers/media/common/b2c2/flexcop_ibi_value_be.h (renamed from drivers/media/dvb/b2c2/flexcop_ibi_value_be.h)7
-rw-r--r--drivers/media/common/b2c2/flexcop_ibi_value_le.h (renamed from drivers/media/dvb/b2c2/flexcop_ibi_value_le.h)7
-rw-r--r--drivers/media/common/btcx-risc.c (renamed from drivers/media/video/btcx-risc.c)0
-rw-r--r--drivers/media/common/btcx-risc.h (renamed from drivers/media/video/btcx-risc.h)0
-rw-r--r--drivers/media/common/cx2341x.c1726
-rw-r--r--drivers/media/common/cypress_firmware.c132
-rw-r--r--drivers/media/common/cypress_firmware.h28
-rw-r--r--drivers/media/common/ir-functions.c371
-rw-r--r--drivers/media/common/ir-keymaps.c2606
-rw-r--r--drivers/media/common/saa7146/Kconfig9
-rw-r--r--drivers/media/common/saa7146/Makefile5
-rw-r--r--drivers/media/common/saa7146/saa7146_core.c (renamed from drivers/media/common/saa7146_core.c)107
-rw-r--r--drivers/media/common/saa7146/saa7146_fops.c663
-rw-r--r--drivers/media/common/saa7146/saa7146_hlp.c (renamed from drivers/media/common/saa7146_hlp.c)46
-rw-r--r--drivers/media/common/saa7146/saa7146_i2c.c (renamed from drivers/media/common/saa7146_i2c.c)101
-rw-r--r--drivers/media/common/saa7146/saa7146_vbi.c (renamed from drivers/media/common/saa7146_vbi.c)106
-rw-r--r--drivers/media/common/saa7146/saa7146_video.c1309
-rw-r--r--drivers/media/common/saa7146_fops.c593
-rw-r--r--drivers/media/common/saa7146_video.c1504
-rw-r--r--drivers/media/common/siano/Kconfig33
-rw-r--r--drivers/media/common/siano/Makefile16
-rw-r--r--drivers/media/common/siano/sms-cards.c358
-rw-r--r--drivers/media/common/siano/sms-cards.h137
-rw-r--r--drivers/media/common/siano/smscoreapi.c2200
-rw-r--r--drivers/media/common/siano/smscoreapi.h1192
-rw-r--r--drivers/media/common/siano/smsdvb-debugfs.c551
-rw-r--r--drivers/media/common/siano/smsdvb-main.c1232
-rw-r--r--drivers/media/common/siano/smsdvb.h130
-rw-r--r--drivers/media/common/siano/smsendian.c103
-rw-r--r--drivers/media/common/siano/smsendian.h32
-rw-r--r--drivers/media/common/siano/smsir.c114
-rw-r--r--drivers/media/common/siano/smsir.h63
-rw-r--r--drivers/media/common/tuners/Kconfig167
-rw-r--r--drivers/media/common/tuners/Makefile27
-rw-r--r--drivers/media/common/tuners/mxl5007t.c1029
-rw-r--r--drivers/media/common/tuners/tda18271.h99
-rw-r--r--drivers/media/common/tuners/tuner-xc2028.c1276
-rw-r--r--drivers/media/common/tuners/xc5000.c1027
-rw-r--r--drivers/media/common/tveeprom.c776
-rw-r--r--drivers/media/dvb-core/Kconfig29
-rw-r--r--drivers/media/dvb-core/Makefile11
-rw-r--r--drivers/media/dvb-core/demux.h (renamed from drivers/media/dvb/dvb-core/demux.h)39
-rw-r--r--drivers/media/dvb-core/dmxdev.c (renamed from drivers/media/dvb/dvb-core/dmxdev.c)310
-rw-r--r--drivers/media/dvb-core/dmxdev.h (renamed from drivers/media/dvb/dvb-core/dmxdev.h)11
-rw-r--r--drivers/media/dvb-core/dvb-usb-ids.h381
-rw-r--r--drivers/media/dvb-core/dvb_ca_en50221.c (renamed from drivers/media/dvb/dvb-core/dvb_ca_en50221.c)67
-rw-r--r--drivers/media/dvb-core/dvb_ca_en50221.h (renamed from drivers/media/dvb/dvb-core/dvb_ca_en50221.h)6
-rw-r--r--drivers/media/dvb-core/dvb_demux.c (renamed from drivers/media/dvb/dvb-core/dvb_demux.c)247
-rw-r--r--drivers/media/dvb-core/dvb_demux.h (renamed from drivers/media/dvb/dvb-core/dvb_demux.h)15
-rw-r--r--drivers/media/dvb-core/dvb_filter.c (renamed from drivers/media/dvb/dvb-core/dvb_filter.c)0
-rw-r--r--drivers/media/dvb-core/dvb_filter.h (renamed from drivers/media/dvb/dvb-core/dvb_filter.h)0
-rw-r--r--drivers/media/dvb-core/dvb_frontend.c2698
-rw-r--r--drivers/media/dvb-core/dvb_frontend.h (renamed from drivers/media/dvb/dvb-core/dvb_frontend.h)99
-rw-r--r--drivers/media/dvb-core/dvb_math.c (renamed from drivers/media/dvb/dvb-core/dvb_math.c)0
-rw-r--r--drivers/media/dvb-core/dvb_math.h (renamed from drivers/media/dvb/dvb-core/dvb_math.h)0
-rw-r--r--drivers/media/dvb-core/dvb_net.c (renamed from drivers/media/dvb/dvb-core/dvb_net.c)162
-rw-r--r--drivers/media/dvb-core/dvb_net.h (renamed from drivers/media/dvb/dvb-core/dvb_net.h)22
-rw-r--r--drivers/media/dvb-core/dvb_ringbuffer.c (renamed from drivers/media/dvb/dvb-core/dvb_ringbuffer.c)1
-rw-r--r--drivers/media/dvb-core/dvb_ringbuffer.h (renamed from drivers/media/dvb/dvb-core/dvb_ringbuffer.h)0
-rw-r--r--drivers/media/dvb-core/dvbdev.c (renamed from drivers/media/dvb/dvb-core/dvbdev.c)57
-rw-r--r--drivers/media/dvb-core/dvbdev.h (renamed from drivers/media/dvb/dvb-core/dvbdev.h)22
-rw-r--r--drivers/media/dvb-frontends/Kconfig763
-rw-r--r--drivers/media/dvb-frontends/Makefile109
-rw-r--r--drivers/media/dvb-frontends/a8293.c169
-rw-r--r--drivers/media/dvb-frontends/a8293.h42
-rw-r--r--drivers/media/dvb-frontends/af9013.c1558
-rw-r--r--drivers/media/dvb-frontends/af9013.h118
-rw-r--r--drivers/media/dvb-frontends/af9013_priv.h (renamed from drivers/media/dvb/frontends/af9013_priv.h)134
-rw-r--r--drivers/media/dvb-frontends/af9033.c1180
-rw-r--r--drivers/media/dvb-frontends/af9033.h119
-rw-r--r--drivers/media/dvb-frontends/af9033_priv.h2055
-rw-r--r--drivers/media/dvb-frontends/atbm8830.c508
-rw-r--r--drivers/media/dvb-frontends/atbm8830.h76
-rw-r--r--drivers/media/dvb-frontends/atbm8830_priv.h75
-rw-r--r--drivers/media/dvb-frontends/au8522.h (renamed from drivers/media/dvb/frontends/au8522.h)20
-rw-r--r--drivers/media/dvb-frontends/au8522_common.c277
-rw-r--r--drivers/media/dvb-frontends/au8522_decoder.c769
-rw-r--r--drivers/media/dvb-frontends/au8522_dig.c828
-rw-r--r--drivers/media/dvb-frontends/au8522_priv.h444
-rw-r--r--drivers/media/dvb-frontends/bcm3510.c (renamed from drivers/media/dvb/frontends/bcm3510.c)41
-rw-r--r--drivers/media/dvb-frontends/bcm3510.h (renamed from drivers/media/dvb/frontends/bcm3510.h)2
-rw-r--r--drivers/media/dvb-frontends/bcm3510_priv.h (renamed from drivers/media/dvb/frontends/bcm3510_priv.h)0
-rw-r--r--drivers/media/dvb-frontends/bsbe1-d01a.h146
-rw-r--r--drivers/media/dvb-frontends/bsbe1.h (renamed from drivers/media/dvb/frontends/bsbe1.h)7
-rw-r--r--drivers/media/dvb-frontends/bsru6.h (renamed from drivers/media/dvb/frontends/bsru6.h)11
-rw-r--r--drivers/media/dvb-frontends/cx22700.c (renamed from drivers/media/dvb/frontends/cx22700.c)57
-rw-r--r--drivers/media/dvb-frontends/cx22700.h (renamed from drivers/media/dvb/frontends/cx22700.h)2
-rw-r--r--drivers/media/dvb-frontends/cx22702.c (renamed from drivers/media/dvb/frontends/cx22702.c)208
-rw-r--r--drivers/media/dvb-frontends/cx22702.h (renamed from drivers/media/dvb/frontends/cx22702.h)4
-rw-r--r--drivers/media/dvb-frontends/cx24110.c (renamed from drivers/media/dvb/frontends/cx24110.c)45
-rw-r--r--drivers/media/dvb-frontends/cx24110.h (renamed from drivers/media/dvb/frontends/cx24110.h)2
-rw-r--r--drivers/media/dvb-frontends/cx24113.c (renamed from drivers/media/dvb/frontends/cx24113.c)36
-rw-r--r--drivers/media/dvb-frontends/cx24113.h (renamed from drivers/media/dvb/frontends/cx24113.h)7
-rw-r--r--drivers/media/dvb-frontends/cx24116.c (renamed from drivers/media/dvb/frontends/cx24116.c)130
-rw-r--r--drivers/media/dvb-frontends/cx24116.h (renamed from drivers/media/dvb/frontends/cx24116.h)7
-rw-r--r--drivers/media/dvb-frontends/cx24117.c1663
-rw-r--r--drivers/media/dvb-frontends/cx24117.h47
-rw-r--r--drivers/media/dvb-frontends/cx24123.c (renamed from drivers/media/dvb/frontends/cx24123.c)97
-rw-r--r--drivers/media/dvb-frontends/cx24123.h (renamed from drivers/media/dvb/frontends/cx24123.h)4
-rw-r--r--drivers/media/dvb-frontends/cxd2820r.h88
-rw-r--r--drivers/media/dvb-frontends/cxd2820r_c.c343
-rw-r--r--drivers/media/dvb-frontends/cxd2820r_core.c776
-rw-r--r--drivers/media/dvb-frontends/cxd2820r_priv.h148
-rw-r--r--drivers/media/dvb-frontends/cxd2820r_t.c449
-rw-r--r--drivers/media/dvb-frontends/cxd2820r_t2.c440
-rw-r--r--drivers/media/dvb-frontends/dib0070.c780
-rw-r--r--drivers/media/dvb-frontends/dib0070.h76
-rw-r--r--drivers/media/dvb-frontends/dib0090.c2668
-rw-r--r--drivers/media/dvb-frontends/dib0090.h187
-rw-r--r--drivers/media/dvb-frontends/dib3000.h (renamed from drivers/media/dvb/frontends/dib3000.h)4
-rw-r--r--drivers/media/dvb-frontends/dib3000mb.c (renamed from drivers/media/dvb/frontends/dib3000mb.c)126
-rw-r--r--drivers/media/dvb-frontends/dib3000mb_priv.h (renamed from drivers/media/dvb/frontends/dib3000mb_priv.h)6
-rw-r--r--drivers/media/dvb-frontends/dib3000mc.c (renamed from drivers/media/dvb/frontends/dib3000mc.c)168
-rw-r--r--drivers/media/dvb-frontends/dib3000mc.h86
-rw-r--r--drivers/media/dvb-frontends/dib7000m.c (renamed from drivers/media/dvb/frontends/dib7000m.c)238
-rw-r--r--drivers/media/dvb-frontends/dib7000m.h91
-rw-r--r--drivers/media/dvb-frontends/dib7000p.c2472
-rw-r--r--drivers/media/dvb-frontends/dib7000p.h166
-rw-r--r--drivers/media/dvb-frontends/dib8000.c4474
-rw-r--r--drivers/media/dvb-frontends/dib8000.h176
-rw-r--r--drivers/media/dvb-frontends/dib9000.c2590
-rw-r--r--drivers/media/dvb-frontends/dib9000.h131
-rw-r--r--drivers/media/dvb-frontends/dibx000_common.c515
-rw-r--r--drivers/media/dvb-frontends/dibx000_common.h281
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/Kconfig7
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/Makefile6
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/bsp_i2c.h139
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/drx39xxj.h45
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/drx_dap_fasi.h256
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/drx_driver.h2343
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/drx_driver_version.h72
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/drxj.c12400
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/drxj.h650
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/drxj_map.h15055
-rw-r--r--drivers/media/dvb-frontends/drxd.h73
-rw-r--r--drivers/media/dvb-frontends/drxd_firm.c929
-rw-r--r--drivers/media/dvb-frontends/drxd_firm.h115
-rw-r--r--drivers/media/dvb-frontends/drxd_hard.c2993
-rw-r--r--drivers/media/dvb-frontends/drxd_map_firm.h1013
-rw-r--r--drivers/media/dvb-frontends/drxk.h66
-rw-r--r--drivers/media/dvb-frontends/drxk_hard.c6876
-rw-r--r--drivers/media/dvb-frontends/drxk_hard.h367
-rw-r--r--drivers/media/dvb-frontends/drxk_map.h454
-rw-r--r--drivers/media/dvb-frontends/ds3000.c1134
-rw-r--r--drivers/media/dvb-frontends/ds3000.h50
-rw-r--r--drivers/media/dvb-frontends/dvb-pll.c820
-rw-r--r--drivers/media/dvb-frontends/dvb-pll.h (renamed from drivers/media/dvb/frontends/dvb-pll.h)7
-rw-r--r--drivers/media/dvb-frontends/dvb_dummy_fe.c (renamed from drivers/media/dvb/frontends/dvb_dummy_fe.c)45
-rw-r--r--drivers/media/dvb-frontends/dvb_dummy_fe.h51
-rw-r--r--drivers/media/dvb-frontends/ec100.c345
-rw-r--r--drivers/media/dvb-frontends/ec100.h46
-rw-r--r--drivers/media/dvb-frontends/eds1547.h (renamed from drivers/media/dvb/frontends/eds1547.h)2
-rw-r--r--drivers/media/dvb-frontends/hd29l2.c866
-rw-r--r--drivers/media/dvb-frontends/hd29l2.h66
-rw-r--r--drivers/media/dvb-frontends/hd29l2_priv.h301
-rw-r--r--drivers/media/dvb-frontends/isl6405.c (renamed from drivers/media/dvb/frontends/isl6405.c)2
-rw-r--r--drivers/media/dvb-frontends/isl6405.h (renamed from drivers/media/dvb/frontends/isl6405.h)2
-rw-r--r--drivers/media/dvb-frontends/isl6421.c (renamed from drivers/media/dvb/frontends/isl6421.c)30
-rw-r--r--drivers/media/dvb-frontends/isl6421.h (renamed from drivers/media/dvb/frontends/isl6421.h)6
-rw-r--r--drivers/media/dvb-frontends/isl6423.c308
-rw-r--r--drivers/media/dvb-frontends/isl6423.h63
-rw-r--r--drivers/media/dvb-frontends/itd1000.c (renamed from drivers/media/dvb/frontends/itd1000.c)48
-rw-r--r--drivers/media/dvb-frontends/itd1000.h (renamed from drivers/media/dvb/frontends/itd1000.h)2
-rw-r--r--drivers/media/dvb-frontends/itd1000_priv.h (renamed from drivers/media/dvb/frontends/itd1000_priv.h)2
-rw-r--r--drivers/media/dvb-frontends/ix2505v.c325
-rw-r--r--drivers/media/dvb-frontends/ix2505v.h64
-rw-r--r--drivers/media/dvb-frontends/l64781.c (renamed from drivers/media/dvb/frontends/l64781.c)125
-rw-r--r--drivers/media/dvb-frontends/l64781.h (renamed from drivers/media/dvb/frontends/l64781.h)2
-rw-r--r--drivers/media/dvb-frontends/lg2160.c1464
-rw-r--r--drivers/media/dvb-frontends/lg2160.h84
-rw-r--r--drivers/media/dvb-frontends/lgdt3305.c1223
-rw-r--r--drivers/media/dvb-frontends/lgdt3305.h91
-rw-r--r--drivers/media/dvb-frontends/lgdt330x.c (renamed from drivers/media/dvb/frontends/lgdt330x.c)47
-rw-r--r--drivers/media/dvb-frontends/lgdt330x.h (renamed from drivers/media/dvb/frontends/lgdt330x.h)2
-rw-r--r--drivers/media/dvb-frontends/lgdt330x_priv.h (renamed from drivers/media/dvb/frontends/lgdt330x_priv.h)0
-rw-r--r--drivers/media/dvb-frontends/lgs8gl5.c (renamed from drivers/media/dvb/frontends/lgs8gl5.c)31
-rw-r--r--drivers/media/dvb-frontends/lgs8gl5.h (renamed from drivers/media/dvb/frontends/lgs8gl5.h)4
-rw-r--r--drivers/media/dvb-frontends/lgs8gxx.c1075
-rw-r--r--drivers/media/dvb-frontends/lgs8gxx.h95
-rw-r--r--drivers/media/dvb-frontends/lgs8gxx_priv.h70
-rw-r--r--drivers/media/dvb-frontends/lnbh24.h56
-rw-r--r--drivers/media/dvb-frontends/lnbp21.c188
-rw-r--r--drivers/media/dvb-frontends/lnbp21.h76
-rw-r--r--drivers/media/dvb-frontends/lnbp22.c148
-rw-r--r--drivers/media/dvb-frontends/lnbp22.h58
-rw-r--r--drivers/media/dvb-frontends/m88ds3103.c1297
-rw-r--r--drivers/media/dvb-frontends/m88ds3103.h114
-rw-r--r--drivers/media/dvb-frontends/m88ds3103_priv.h215
-rw-r--r--drivers/media/dvb-frontends/m88rs2000.c822
-rw-r--r--drivers/media/dvb-frontends/m88rs2000.h62
-rw-r--r--drivers/media/dvb-frontends/mb86a16.c1878
-rw-r--r--drivers/media/dvb-frontends/mb86a16.h52
-rw-r--r--drivers/media/dvb-frontends/mb86a16_priv.h151
-rw-r--r--drivers/media/dvb-frontends/mb86a20s.c2160
-rw-r--r--drivers/media/dvb-frontends/mb86a20s.h56
-rw-r--r--drivers/media/dvb-frontends/mt312.c (renamed from drivers/media/dvb/frontends/mt312.c)62
-rw-r--r--drivers/media/dvb-frontends/mt312.h (renamed from drivers/media/dvb/frontends/mt312.h)2
-rw-r--r--drivers/media/dvb-frontends/mt312_priv.h (renamed from drivers/media/dvb/frontends/mt312_priv.h)0
-rw-r--r--drivers/media/dvb-frontends/mt352.c (renamed from drivers/media/dvb/frontends/mt352.c)67
-rw-r--r--drivers/media/dvb-frontends/mt352.h (renamed from drivers/media/dvb/frontends/mt352.h)4
-rw-r--r--drivers/media/dvb-frontends/mt352_priv.h (renamed from drivers/media/dvb/frontends/mt352_priv.h)0
-rw-r--r--drivers/media/dvb-frontends/nxt200x.c (renamed from drivers/media/dvb/frontends/nxt200x.c)100
-rw-r--r--drivers/media/dvb-frontends/nxt200x.h (renamed from drivers/media/dvb/frontends/nxt200x.h)2
-rw-r--r--drivers/media/dvb-frontends/nxt6000.c (renamed from drivers/media/dvb/frontends/nxt6000.c)36
-rw-r--r--drivers/media/dvb-frontends/nxt6000.h (renamed from drivers/media/dvb/frontends/nxt6000.h)2
-rw-r--r--drivers/media/dvb-frontends/nxt6000_priv.h (renamed from drivers/media/dvb/frontends/nxt6000_priv.h)0
-rw-r--r--drivers/media/dvb-frontends/or51132.c (renamed from drivers/media/dvb/frontends/or51132.c)56
-rw-r--r--drivers/media/dvb-frontends/or51132.h (renamed from drivers/media/dvb/frontends/or51132.h)2
-rw-r--r--drivers/media/dvb-frontends/or51211.c (renamed from drivers/media/dvb/frontends/or51211.c)114
-rw-r--r--drivers/media/dvb-frontends/or51211.h (renamed from drivers/media/dvb/frontends/or51211.h)2
-rw-r--r--drivers/media/dvb-frontends/rtl2830.c772
-rw-r--r--drivers/media/dvb-frontends/rtl2830.h90
-rw-r--r--drivers/media/dvb-frontends/rtl2830_priv.h45
-rw-r--r--drivers/media/dvb-frontends/rtl2832.c1135
-rw-r--r--drivers/media/dvb-frontends/rtl2832.h95
-rw-r--r--drivers/media/dvb-frontends/rtl2832_priv.h374
-rw-r--r--drivers/media/dvb-frontends/s5h1409.c (renamed from drivers/media/dvb/frontends/s5h1409.c)200
-rw-r--r--drivers/media/dvb-frontends/s5h1409.h (renamed from drivers/media/dvb/frontends/s5h1409.h)11
-rw-r--r--drivers/media/dvb-frontends/s5h1411.c (renamed from drivers/media/dvb/frontends/s5h1411.c)50
-rw-r--r--drivers/media/dvb-frontends/s5h1411.h (renamed from drivers/media/dvb/frontends/s5h1411.h)4
-rw-r--r--drivers/media/dvb-frontends/s5h1420.c (renamed from drivers/media/dvb/frontends/s5h1420.c)105
-rw-r--r--drivers/media/dvb-frontends/s5h1420.h (renamed from drivers/media/dvb/frontends/s5h1420.h)2
-rw-r--r--drivers/media/dvb-frontends/s5h1420_priv.h (renamed from drivers/media/dvb/frontends/s5h1420_priv.h)0
-rw-r--r--drivers/media/dvb-frontends/s5h1432.c403
-rw-r--r--drivers/media/dvb-frontends/s5h1432.h91
-rw-r--r--drivers/media/dvb-frontends/s921.c544
-rw-r--r--drivers/media/dvb-frontends/s921.h47
-rw-r--r--drivers/media/dvb-frontends/si2168.c746
-rw-r--r--drivers/media/dvb-frontends/si2168.h39
-rw-r--r--drivers/media/dvb-frontends/si2168_priv.h46
-rw-r--r--drivers/media/dvb-frontends/si21xx.c (renamed from drivers/media/dvb/frontends/si21xx.c)66
-rw-r--r--drivers/media/dvb-frontends/si21xx.h (renamed from drivers/media/dvb/frontends/si21xx.h)4
-rw-r--r--drivers/media/dvb-frontends/sp8870.c (renamed from drivers/media/dvb/frontends/sp8870.c)37
-rw-r--r--drivers/media/dvb-frontends/sp8870.h (renamed from drivers/media/dvb/frontends/sp8870.h)2
-rw-r--r--drivers/media/dvb-frontends/sp887x.c (renamed from drivers/media/dvb/frontends/sp887x.c)58
-rw-r--r--drivers/media/dvb-frontends/sp887x.h (renamed from drivers/media/dvb/frontends/sp887x.h)2
-rw-r--r--drivers/media/dvb-frontends/stb0899_algo.c (renamed from drivers/media/dvb/frontends/stb0899_algo.c)127
-rw-r--r--drivers/media/dvb-frontends/stb0899_cfg.h (renamed from drivers/media/dvb/frontends/stb0899_cfg.h)0
-rw-r--r--drivers/media/dvb-frontends/stb0899_drv.c (renamed from drivers/media/dvb/frontends/stb0899_drv.c)110
-rw-r--r--drivers/media/dvb-frontends/stb0899_drv.h (renamed from drivers/media/dvb/frontends/stb0899_drv.h)7
-rw-r--r--drivers/media/dvb-frontends/stb0899_priv.h (renamed from drivers/media/dvb/frontends/stb0899_priv.h)12
-rw-r--r--drivers/media/dvb-frontends/stb0899_reg.h (renamed from drivers/media/dvb/frontends/stb0899_reg.h)0
-rw-r--r--drivers/media/dvb-frontends/stb6000.c (renamed from drivers/media/dvb/frontends/stb6000.c)9
-rw-r--r--drivers/media/dvb-frontends/stb6000.h (renamed from drivers/media/dvb/frontends/stb6000.h)4
-rw-r--r--drivers/media/dvb-frontends/stb6100.c616
-rw-r--r--drivers/media/dvb-frontends/stb6100.h (renamed from drivers/media/dvb/frontends/stb6100.h)6
-rw-r--r--drivers/media/dvb-frontends/stb6100_cfg.h (renamed from drivers/media/dvb/frontends/stb6100_cfg.h)4
-rw-r--r--drivers/media/dvb-frontends/stb6100_proc.h138
-rw-r--r--drivers/media/dvb-frontends/stv0288.c (renamed from drivers/media/dvb/frontends/stv0288.c)82
-rw-r--r--drivers/media/dvb-frontends/stv0288.h (renamed from drivers/media/dvb/frontends/stv0288.h)4
-rw-r--r--drivers/media/dvb-frontends/stv0297.c (renamed from drivers/media/dvb/frontends/stv0297.c)43
-rw-r--r--drivers/media/dvb-frontends/stv0297.h (renamed from drivers/media/dvb/frontends/stv0297.h)2
-rw-r--r--drivers/media/dvb-frontends/stv0299.c (renamed from drivers/media/dvb/frontends/stv0299.c)54
-rw-r--r--drivers/media/dvb-frontends/stv0299.h (renamed from drivers/media/dvb/frontends/stv0299.h)4
-rw-r--r--drivers/media/dvb-frontends/stv0367.c3462
-rw-r--r--drivers/media/dvb-frontends/stv0367.h66
-rw-r--r--drivers/media/dvb-frontends/stv0367_priv.h212
-rw-r--r--drivers/media/dvb-frontends/stv0367_regs.h3614
-rw-r--r--drivers/media/dvb-frontends/stv0900.h74
-rw-r--r--drivers/media/dvb-frontends/stv0900_core.c1979
-rw-r--r--drivers/media/dvb-frontends/stv0900_init.h584
-rw-r--r--drivers/media/dvb-frontends/stv0900_priv.h408
-rw-r--r--drivers/media/dvb-frontends/stv0900_reg.h3984
-rw-r--r--drivers/media/dvb-frontends/stv0900_sw.c2029
-rw-r--r--drivers/media/dvb-frontends/stv090x.c4990
-rw-r--r--drivers/media/dvb-frontends/stv090x.h134
-rw-r--r--drivers/media/dvb-frontends/stv090x_priv.h279
-rw-r--r--drivers/media/dvb-frontends/stv090x_reg.h2371
-rw-r--r--drivers/media/dvb-frontends/stv6110.c461
-rw-r--r--drivers/media/dvb-frontends/stv6110.h63
-rw-r--r--drivers/media/dvb-frontends/stv6110x.c416
-rw-r--r--drivers/media/dvb-frontends/stv6110x.h73
-rw-r--r--drivers/media/dvb-frontends/stv6110x_priv.h76
-rw-r--r--drivers/media/dvb-frontends/stv6110x_reg.h82
-rw-r--r--drivers/media/dvb-frontends/tda10021.c (renamed from drivers/media/dvb/frontends/tda10021.c)119
-rw-r--r--drivers/media/dvb-frontends/tda10023.c (renamed from drivers/media/dvb/frontends/tda10023.c)103
-rw-r--r--drivers/media/dvb-frontends/tda1002x.h (renamed from drivers/media/dvb/frontends/tda1002x.h)5
-rw-r--r--drivers/media/dvb-frontends/tda10048.c1191
-rw-r--r--drivers/media/dvb-frontends/tda10048.h90
-rw-r--r--drivers/media/dvb-frontends/tda1004x.c (renamed from drivers/media/dvb/frontends/tda1004x.c)159
-rw-r--r--drivers/media/dvb-frontends/tda1004x.h (renamed from drivers/media/dvb/frontends/tda1004x.h)2
-rw-r--r--drivers/media/dvb-frontends/tda10071.c1319
-rw-r--r--drivers/media/dvb-frontends/tda10071.h87
-rw-r--r--drivers/media/dvb-frontends/tda10071_priv.h110
-rw-r--r--drivers/media/dvb-frontends/tda10086.c (renamed from drivers/media/dvb/frontends/tda10086.c)64
-rw-r--r--drivers/media/dvb-frontends/tda10086.h (renamed from drivers/media/dvb/frontends/tda10086.h)2
-rw-r--r--drivers/media/dvb-frontends/tda18271c2dd.c1257
-rw-r--r--drivers/media/dvb-frontends/tda18271c2dd.h18
-rw-r--r--drivers/media/dvb-frontends/tda18271c2dd_maps.h814
-rw-r--r--drivers/media/dvb-frontends/tda665x.c254
-rw-r--r--drivers/media/dvb-frontends/tda665x.h52
-rw-r--r--drivers/media/dvb-frontends/tda8083.c (renamed from drivers/media/dvb/frontends/tda8083.c)29
-rw-r--r--drivers/media/dvb-frontends/tda8083.h (renamed from drivers/media/dvb/frontends/tda8083.h)2
-rw-r--r--drivers/media/dvb-frontends/tda8261.c (renamed from drivers/media/dvb/frontends/tda8261.c)36
-rw-r--r--drivers/media/dvb-frontends/tda8261.h (renamed from drivers/media/dvb/frontends/tda8261.h)2
-rw-r--r--drivers/media/dvb-frontends/tda8261_cfg.h (renamed from drivers/media/dvb/frontends/tda8261_cfg.h)2
-rw-r--r--drivers/media/dvb-frontends/tda826x.c (renamed from drivers/media/dvb/frontends/tda826x.c)8
-rw-r--r--drivers/media/dvb-frontends/tda826x.h (renamed from drivers/media/dvb/frontends/tda826x.h)2
-rw-r--r--drivers/media/dvb-frontends/tdhd1.h (renamed from drivers/media/dvb/frontends/tdhd1.h)11
-rw-r--r--drivers/media/dvb-frontends/ts2020.c378
-rw-r--r--drivers/media/dvb-frontends/ts2020.h51
-rw-r--r--drivers/media/dvb-frontends/tua6100.c (renamed from drivers/media/dvb/frontends/tua6100.c)32
-rw-r--r--drivers/media/dvb-frontends/tua6100.h (renamed from drivers/media/dvb/frontends/tua6100.h)2
-rw-r--r--drivers/media/dvb-frontends/ves1820.c (renamed from drivers/media/dvb/frontends/ves1820.c)27
-rw-r--r--drivers/media/dvb-frontends/ves1820.h (renamed from drivers/media/dvb/frontends/ves1820.h)2
-rw-r--r--drivers/media/dvb-frontends/ves1x93.c (renamed from drivers/media/dvb/frontends/ves1x93.c)25
-rw-r--r--drivers/media/dvb-frontends/ves1x93.h (renamed from drivers/media/dvb/frontends/ves1x93.h)2
-rw-r--r--drivers/media/dvb-frontends/z0194a.h (renamed from drivers/media/dvb/frontends/z0194a.h)2
-rw-r--r--drivers/media/dvb-frontends/zl10036.c520
-rw-r--r--drivers/media/dvb-frontends/zl10036.h53
-rw-r--r--drivers/media/dvb-frontends/zl10039.c317
-rw-r--r--drivers/media/dvb-frontends/zl10039.h41
-rw-r--r--drivers/media/dvb-frontends/zl10353.c (renamed from drivers/media/dvb/frontends/zl10353.c)151
-rw-r--r--drivers/media/dvb-frontends/zl10353.h (renamed from drivers/media/dvb/frontends/zl10353.h)9
-rw-r--r--drivers/media/dvb-frontends/zl10353_priv.h (renamed from drivers/media/dvb/frontends/zl10353_priv.h)8
-rw-r--r--drivers/media/dvb/Kconfig58
-rw-r--r--drivers/media/dvb/Makefile5
-rw-r--r--drivers/media/dvb/b2c2/Kconfig45
-rw-r--r--drivers/media/dvb/b2c2/Makefile17
-rw-r--r--drivers/media/dvb/b2c2/flexcop-common.h174
-rw-r--r--drivers/media/dvb/b2c2/flexcop-eeprom.c156
-rw-r--r--drivers/media/dvb/b2c2/flexcop-fe-tuner.c685
-rw-r--r--drivers/media/dvb/b2c2/flexcop-hw-filter.c212
-rw-r--r--drivers/media/dvb/b2c2/flexcop-misc.c82
-rw-r--r--drivers/media/dvb/b2c2/flexcop-pci.c432
-rw-r--r--drivers/media/dvb/b2c2/flexcop-usb.c578
-rw-r--r--drivers/media/dvb/b2c2/flexcop-usb.h119
-rw-r--r--drivers/media/dvb/b2c2/flexcop.c316
-rw-r--r--drivers/media/dvb/b2c2/flexcop.h31
-rw-r--r--drivers/media/dvb/bt8xx/Kconfig22
-rw-r--r--drivers/media/dvb/bt8xx/Makefile6
-rw-r--r--drivers/media/dvb/dm1105/Kconfig19
-rw-r--r--drivers/media/dvb/dm1105/Makefile3
-rw-r--r--drivers/media/dvb/dm1105/dm1105.c921
-rw-r--r--drivers/media/dvb/dvb-core/Makefile9
-rw-r--r--drivers/media/dvb/dvb-core/dvb_frontend.c1988
-rw-r--r--drivers/media/dvb/dvb-usb/Kconfig301
-rw-r--r--drivers/media/dvb/dvb-usb/Makefile83
-rw-r--r--drivers/media/dvb/dvb-usb/a800.c197
-rw-r--r--drivers/media/dvb/dvb-usb/af9005-remote.c157
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.c1497
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.h663
-rw-r--r--drivers/media/dvb/dvb-usb/anysee.c571
-rw-r--r--drivers/media/dvb/dvb-usb/au6610.c258
-rw-r--r--drivers/media/dvb/dvb-usb/cinergyT2-core.c267
-rw-r--r--drivers/media/dvb/dvb-usb/cxusb.c1855
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700.h66
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700_core.c451
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700_devices.c1753
-rw-r--r--drivers/media/dvb/dvb-usb/dibusb-common.c456
-rw-r--r--drivers/media/dvb/dvb-usb/digitv.c363
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-dvb.c204
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-ids.h238
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-init.c287
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-remote.c198
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-urb.c95
-rw-r--r--drivers/media/dvb/dvb-usb/dw2102.c838
-rw-r--r--drivers/media/dvb/dvb-usb/dw2102.h8
-rw-r--r--drivers/media/dvb/dvb-usb/gl861.c233
-rw-r--r--drivers/media/dvb/dvb-usb/gl861.h15
-rw-r--r--drivers/media/dvb/dvb-usb/m920x.c933
-rw-r--r--drivers/media/dvb/dvb-usb/nova-t-usb2.c247
-rw-r--r--drivers/media/dvb/dvb-usb/ttusb2.c335
-rw-r--r--drivers/media/dvb/dvb-usb/vp702x.c337
-rw-r--r--drivers/media/dvb/dvb-usb/vp7045.c313
-rw-r--r--drivers/media/dvb/frontends/Kconfig488
-rw-r--r--drivers/media/dvb/frontends/Makefile67
-rw-r--r--drivers/media/dvb/frontends/af9013.c1685
-rw-r--r--drivers/media/dvb/frontends/af9013.h107
-rw-r--r--drivers/media/dvb/frontends/au8522.c874
-rw-r--r--drivers/media/dvb/frontends/dib0070.c589
-rw-r--r--drivers/media/dvb/frontends/dib0070.h63
-rw-r--r--drivers/media/dvb/frontends/dib3000mc.h61
-rw-r--r--drivers/media/dvb/frontends/dib7000m.h51
-rw-r--r--drivers/media/dvb/frontends/dib7000p.c1394
-rw-r--r--drivers/media/dvb/frontends/dib7000p.h95
-rw-r--r--drivers/media/dvb/frontends/dibx000_common.c152
-rw-r--r--drivers/media/dvb/frontends/dibx000_common.h145
-rw-r--r--drivers/media/dvb/frontends/drx397xD.c1510
-rw-r--r--drivers/media/dvb/frontends/drx397xD.h130
-rw-r--r--drivers/media/dvb/frontends/drx397xD_fw.h40
-rw-r--r--drivers/media/dvb/frontends/dvb-pll.c662
-rw-r--r--drivers/media/dvb/frontends/dvb_dummy_fe.h32
-rw-r--r--drivers/media/dvb/frontends/lgdt3304.c378
-rw-r--r--drivers/media/dvb/frontends/lgdt3304.h45
-rw-r--r--drivers/media/dvb/frontends/lnbp21.c136
-rw-r--r--drivers/media/dvb/frontends/lnbp21.h53
-rw-r--r--drivers/media/dvb/frontends/s921_core.c216
-rw-r--r--drivers/media/dvb/frontends/s921_core.h114
-rw-r--r--drivers/media/dvb/frontends/s921_module.c190
-rw-r--r--drivers/media/dvb/frontends/s921_module.h49
-rw-r--r--drivers/media/dvb/frontends/stb6100.c545
-rw-r--r--drivers/media/dvb/frontends/tda10048.c887
-rw-r--r--drivers/media/dvb/frontends/tda10048.h63
-rw-r--r--drivers/media/dvb/pluto2/Makefile3
-rw-r--r--drivers/media/dvb/siano/Kconfig26
-rw-r--r--drivers/media/dvb/siano/Makefile8
-rw-r--r--drivers/media/dvb/siano/sms-cards.c227
-rw-r--r--drivers/media/dvb/siano/sms-cards.h58
-rw-r--r--drivers/media/dvb/siano/smscoreapi.c1329
-rw-r--r--drivers/media/dvb/siano/smscoreapi.h468
-rw-r--r--drivers/media/dvb/siano/smsdvb.c501
-rw-r--r--drivers/media/dvb/siano/smsusb.c504
-rw-r--r--drivers/media/dvb/ttpci/Kconfig169
-rw-r--r--drivers/media/dvb/ttpci/Makefile30
-rw-r--r--drivers/media/dvb/ttpci/av7110_v4l.c928
-rw-r--r--drivers/media/dvb/ttpci/budget.c695
-rw-r--r--drivers/media/dvb/ttpci/fdump.c44
-rw-r--r--drivers/media/dvb/ttusb-budget/Kconfig18
-rw-r--r--drivers/media/dvb/ttusb-budget/Makefile3
-rw-r--r--drivers/media/dvb/ttusb-dec/Makefile3
-rw-r--r--drivers/media/firewire/Kconfig19
-rw-r--r--drivers/media/firewire/Makefile6
-rw-r--r--drivers/media/firewire/firedtv-avc.c1457
-rw-r--r--drivers/media/firewire/firedtv-ci.c258
-rw-r--r--drivers/media/firewire/firedtv-dvb.c248
-rw-r--r--drivers/media/firewire/firedtv-fe.c254
-rw-r--r--drivers/media/firewire/firedtv-fw.c428
-rw-r--r--drivers/media/firewire/firedtv-rc.c196
-rw-r--r--drivers/media/firewire/firedtv.h169
-rw-r--r--drivers/media/i2c/Kconfig716
-rw-r--r--drivers/media/i2c/Makefile80
-rw-r--r--drivers/media/i2c/ad9389b.c1250
-rw-r--r--drivers/media/i2c/adp1653.c486
-rw-r--r--drivers/media/i2c/adv7170.c396
-rw-r--r--drivers/media/i2c/adv7175.c450
-rw-r--r--drivers/media/i2c/adv7180.c729
-rw-r--r--drivers/media/i2c/adv7183.c650
-rw-r--r--drivers/media/i2c/adv7183_regs.h107
-rw-r--r--drivers/media/i2c/adv7343.c541
-rw-r--r--drivers/media/i2c/adv7343_regs.h181
-rw-r--r--drivers/media/i2c/adv7393.c473
-rw-r--r--drivers/media/i2c/adv7393_regs.h188
-rw-r--r--drivers/media/i2c/adv7511.c1246
-rw-r--r--drivers/media/i2c/adv7604.c2976
-rw-r--r--drivers/media/i2c/adv7842.c3221
-rw-r--r--drivers/media/i2c/ak881x.c328
-rw-r--r--drivers/media/i2c/aptina-pll.c173
-rw-r--r--drivers/media/i2c/aptina-pll.h56
-rw-r--r--drivers/media/i2c/as3645a.c885
-rw-r--r--drivers/media/i2c/bt819.c503
-rw-r--r--drivers/media/i2c/bt856.c263
-rw-r--r--drivers/media/i2c/bt866.c229
-rw-r--r--drivers/media/i2c/cs5345.c229
-rw-r--r--drivers/media/i2c/cs53l32a.c239
-rw-r--r--drivers/media/i2c/cx25840/Kconfig (renamed from drivers/media/video/cx25840/Kconfig)0
-rw-r--r--drivers/media/i2c/cx25840/Makefile6
-rw-r--r--drivers/media/i2c/cx25840/cx25840-audio.c571
-rw-r--r--drivers/media/i2c/cx25840/cx25840-core.c5320
-rw-r--r--drivers/media/i2c/cx25840/cx25840-core.h149
-rw-r--r--drivers/media/i2c/cx25840/cx25840-firmware.c175
-rw-r--r--drivers/media/i2c/cx25840/cx25840-ir.c1276
-rw-r--r--drivers/media/i2c/cx25840/cx25840-vbi.c257
-rw-r--r--drivers/media/i2c/ir-kbd-i2c.c497
-rw-r--r--drivers/media/i2c/ks0127.c719
-rw-r--r--drivers/media/i2c/ks0127.h (renamed from drivers/media/video/ks0127.h)2
-rw-r--r--drivers/media/i2c/lm3560.c488
-rw-r--r--drivers/media/i2c/lm3646.c414
-rw-r--r--drivers/media/i2c/m52790.c (renamed from drivers/media/video/m52790.c)56
-rw-r--r--drivers/media/i2c/m5mols/Kconfig6
-rw-r--r--drivers/media/i2c/m5mols/Makefile3
-rw-r--r--drivers/media/i2c/m5mols/m5mols.h348
-rw-r--r--drivers/media/i2c/m5mols/m5mols_capture.c158
-rw-r--r--drivers/media/i2c/m5mols/m5mols_controls.c628
-rw-r--r--drivers/media/i2c/m5mols/m5mols_core.c1048
-rw-r--r--drivers/media/i2c/m5mols/m5mols_reg.h363
-rw-r--r--drivers/media/i2c/ml86v7667.c432
-rw-r--r--drivers/media/i2c/msp3400-driver.c914
-rw-r--r--drivers/media/i2c/msp3400-driver.h (renamed from drivers/media/video/msp3400-driver.h)29
-rw-r--r--drivers/media/i2c/msp3400-kthreads.c (renamed from drivers/media/video/msp3400-kthreads.c)111
-rw-r--r--drivers/media/i2c/mt9m032.c895
-rw-r--r--drivers/media/i2c/mt9p031.c1194
-rw-r--r--drivers/media/i2c/mt9t001.c972
-rw-r--r--drivers/media/i2c/mt9v011.c593
-rw-r--r--drivers/media/i2c/mt9v032.c1028
-rw-r--r--drivers/media/i2c/noon010pc30.c827
-rw-r--r--drivers/media/i2c/ov7640.c104
-rw-r--r--drivers/media/i2c/ov7670.c1659
-rw-r--r--drivers/media/i2c/ov9650.c1562
-rw-r--r--drivers/media/i2c/s5c73m3/Makefile2
-rw-r--r--drivers/media/i2c/s5c73m3/s5c73m3-core.c1807
-rw-r--r--drivers/media/i2c/s5c73m3/s5c73m3-ctrls.c563
-rw-r--r--drivers/media/i2c/s5c73m3/s5c73m3-spi.c162
-rw-r--r--drivers/media/i2c/s5c73m3/s5c73m3.h463
-rw-r--r--drivers/media/i2c/s5k4ecgx.c1036
-rw-r--r--drivers/media/i2c/s5k5baf.c2054
-rw-r--r--drivers/media/i2c/s5k6a3.c389
-rw-r--r--drivers/media/i2c/s5k6aa.c1640
-rw-r--r--drivers/media/i2c/saa6588.c531
-rw-r--r--drivers/media/i2c/saa6752hs.c790
-rw-r--r--drivers/media/i2c/saa7110.c483
-rw-r--r--drivers/media/i2c/saa7115.c1930
-rw-r--r--drivers/media/i2c/saa711x_regs.h (renamed from drivers/media/video/saa711x_regs.h)19
-rw-r--r--drivers/media/i2c/saa7127.c (renamed from drivers/media/video/saa7127.c)206
-rw-r--r--drivers/media/i2c/saa717x.c (renamed from drivers/media/video/saa717x.c)426
-rw-r--r--drivers/media/i2c/saa7185.c367
-rw-r--r--drivers/media/i2c/saa7191.c649
-rw-r--r--drivers/media/i2c/saa7191.h (renamed from drivers/media/video/saa7191.h)26
-rw-r--r--drivers/media/i2c/smiapp-pll.c460
-rw-r--r--drivers/media/i2c/smiapp-pll.h114
-rw-r--r--drivers/media/i2c/smiapp/Kconfig7
-rw-r--r--drivers/media/i2c/smiapp/Makefile5
-rw-r--r--drivers/media/i2c/smiapp/smiapp-core.c2881
-rw-r--r--drivers/media/i2c/smiapp/smiapp-limits.c132
-rw-r--r--drivers/media/i2c/smiapp/smiapp-limits.h128
-rw-r--r--drivers/media/i2c/smiapp/smiapp-quirk.c245
-rw-r--r--drivers/media/i2c/smiapp/smiapp-quirk.h91
-rw-r--r--drivers/media/i2c/smiapp/smiapp-reg-defs.h503
-rw-r--r--drivers/media/i2c/smiapp/smiapp-reg.h122
-rw-r--r--drivers/media/i2c/smiapp/smiapp-regs.c306
-rw-r--r--drivers/media/i2c/smiapp/smiapp-regs.h50
-rw-r--r--drivers/media/i2c/smiapp/smiapp.h252
-rw-r--r--drivers/media/i2c/soc_camera/Kconfig87
-rw-r--r--drivers/media/i2c/soc_camera/Makefile14
-rw-r--r--drivers/media/i2c/soc_camera/imx074.c497
-rw-r--r--drivers/media/i2c/soc_camera/mt9m001.c735
-rw-r--r--drivers/media/i2c/soc_camera/mt9m111.c1038
-rw-r--r--drivers/media/i2c/soc_camera/mt9t031.c840
-rw-r--r--drivers/media/i2c/soc_camera/mt9t112.c1140
-rw-r--r--drivers/media/i2c/soc_camera/mt9v022.c990
-rw-r--r--drivers/media/i2c/soc_camera/ov2640.c1150
-rw-r--r--drivers/media/i2c/soc_camera/ov5642.c1072
-rw-r--r--drivers/media/i2c/soc_camera/ov6650.c1064
-rw-r--r--drivers/media/i2c/soc_camera/ov772x.c1126
-rw-r--r--drivers/media/i2c/soc_camera/ov9640.c751
-rw-r--r--drivers/media/i2c/soc_camera/ov9640.h208
-rw-r--r--drivers/media/i2c/soc_camera/ov9740.c1008
-rw-r--r--drivers/media/i2c/soc_camera/rj54n1cb0c.c1410
-rw-r--r--drivers/media/i2c/soc_camera/tw9910.c973
-rw-r--r--drivers/media/i2c/sony-btf-mpx.c398
-rw-r--r--drivers/media/i2c/sr030pc30.c769
-rw-r--r--drivers/media/i2c/tda7432.c427
-rw-r--r--drivers/media/i2c/tda9840.c210
-rw-r--r--drivers/media/i2c/tea6415c.c173
-rw-r--r--drivers/media/i2c/tea6415c.h (renamed from drivers/media/video/tea6415c.h)12
-rw-r--r--drivers/media/i2c/tea6420.c155
-rw-r--r--drivers/media/i2c/tea6420.h24
-rw-r--r--drivers/media/i2c/ths7303.c392
-rw-r--r--drivers/media/i2c/ths8200.c522
-rw-r--r--drivers/media/i2c/ths8200_regs.h161
-rw-r--r--drivers/media/i2c/tlv320aic23b.c228
-rw-r--r--drivers/media/i2c/tvaudio.c (renamed from drivers/media/video/tvaudio.c)760
-rw-r--r--drivers/media/i2c/tvp514x.c1303
-rw-r--r--drivers/media/i2c/tvp514x_regs.h (renamed from drivers/media/video/tvp514x_regs.h)12
-rw-r--r--drivers/media/i2c/tvp5150.c1227
-rw-r--r--drivers/media/i2c/tvp5150_reg.h (renamed from drivers/media/video/tvp5150_reg.h)17
-rw-r--r--drivers/media/i2c/tvp7002.c1156
-rw-r--r--drivers/media/i2c/tvp7002_reg.h150
-rw-r--r--drivers/media/i2c/tw2804.c449
-rw-r--r--drivers/media/i2c/tw9903.c276
-rw-r--r--drivers/media/i2c/tw9906.c244
-rw-r--r--drivers/media/i2c/uda1342.c112
-rw-r--r--drivers/media/i2c/upd64031a.c (renamed from drivers/media/video/upd64031a.c)64
-rw-r--r--drivers/media/i2c/upd64083.c (renamed from drivers/media/video/upd64083.c)62
-rw-r--r--drivers/media/i2c/vp27smpx.c (renamed from drivers/media/video/vp27smpx.c)45
-rw-r--r--drivers/media/i2c/vpx3220.c578
-rw-r--r--drivers/media/i2c/vs6624.c883
-rw-r--r--drivers/media/i2c/vs6624_regs.h337
-rw-r--r--drivers/media/i2c/wm8739.c283
-rw-r--r--drivers/media/i2c/wm8775.c329
-rw-r--r--drivers/media/media-device.c468
-rw-r--r--drivers/media/media-devnode.c347
-rw-r--r--drivers/media/media-entity.c669
-rw-r--r--drivers/media/mmc/Kconfig2
-rw-r--r--drivers/media/mmc/Makefile1
-rw-r--r--drivers/media/mmc/siano/Kconfig11
-rw-r--r--drivers/media/mmc/siano/Makefile6
-rw-r--r--drivers/media/mmc/siano/smssdio.c378
-rw-r--r--drivers/media/parport/Kconfig53
-rw-r--r--drivers/media/parport/Makefile4
-rw-r--r--drivers/media/parport/bw-qcam.c1180
-rw-r--r--drivers/media/parport/c-qcam.c883
-rw-r--r--drivers/media/parport/pms.c1152
-rw-r--r--drivers/media/parport/w9966.c981
-rw-r--r--drivers/media/pci/Kconfig49
-rw-r--r--drivers/media/pci/Makefile26
-rw-r--r--drivers/media/pci/b2c2/Kconfig15
-rw-r--r--drivers/media/pci/b2c2/Makefile9
-rw-r--r--drivers/media/pci/b2c2/flexcop-dma.c (renamed from drivers/media/dvb/b2c2/flexcop-dma.c)27
-rw-r--r--drivers/media/pci/b2c2/flexcop-pci.c437
-rw-r--r--drivers/media/pci/bt8xx/Kconfig43
-rw-r--r--drivers/media/pci/bt8xx/Makefile12
-rw-r--r--drivers/media/pci/bt8xx/bt848.h (renamed from drivers/media/video/bt8xx/bt848.h)5
-rw-r--r--drivers/media/pci/bt8xx/bt878.c (renamed from drivers/media/dvb/bt8xx/bt878.c)42
-rw-r--r--drivers/media/pci/bt8xx/bt878.h (renamed from drivers/media/dvb/bt8xx/bt878.h)0
-rw-r--r--drivers/media/pci/bt8xx/bttv-audio-hook.c (renamed from drivers/media/video/bt8xx/bttv-audio-hook.c)0
-rw-r--r--drivers/media/pci/bt8xx/bttv-audio-hook.h (renamed from drivers/media/video/bt8xx/bttv-audio-hook.h)0
-rw-r--r--drivers/media/pci/bt8xx/bttv-cards.c5057
-rw-r--r--drivers/media/pci/bt8xx/bttv-driver.c4439
-rw-r--r--drivers/media/pci/bt8xx/bttv-gpio.c (renamed from drivers/media/video/bt8xx/bttv-gpio.c)9
-rw-r--r--drivers/media/pci/bt8xx/bttv-i2c.c404
-rw-r--r--drivers/media/pci/bt8xx/bttv-if.c (renamed from drivers/media/video/bt8xx/bttv-if.c)18
-rw-r--r--drivers/media/pci/bt8xx/bttv-input.c586
-rw-r--r--drivers/media/pci/bt8xx/bttv-risc.c (renamed from drivers/media/video/bt8xx/bttv-risc.c)34
-rw-r--r--drivers/media/pci/bt8xx/bttv-vbi.c (renamed from drivers/media/video/bt8xx/bttv-vbi.c)11
-rw-r--r--drivers/media/pci/bt8xx/bttv.h (renamed from drivers/media/video/bt8xx/bttv.h)115
-rw-r--r--drivers/media/pci/bt8xx/bttvp.h (renamed from drivers/media/video/bt8xx/bttvp.h)138
-rw-r--r--drivers/media/pci/bt8xx/dst.c (renamed from drivers/media/dvb/bt8xx/dst.c)120
-rw-r--r--drivers/media/pci/bt8xx/dst_ca.c (renamed from drivers/media/dvb/bt8xx/dst_ca.c)31
-rw-r--r--drivers/media/pci/bt8xx/dst_ca.h (renamed from drivers/media/dvb/bt8xx/dst_ca.h)0
-rw-r--r--drivers/media/pci/bt8xx/dst_common.h (renamed from drivers/media/dvb/bt8xx/dst_common.h)2
-rw-r--r--drivers/media/pci/bt8xx/dst_priv.h (renamed from drivers/media/dvb/bt8xx/dst_priv.h)0
-rw-r--r--drivers/media/pci/bt8xx/dvb-bt8xx.c (renamed from drivers/media/dvb/bt8xx/dvb-bt8xx.c)224
-rw-r--r--drivers/media/pci/bt8xx/dvb-bt8xx.h (renamed from drivers/media/dvb/bt8xx/dvb-bt8xx.h)0
-rw-r--r--drivers/media/pci/cx18/Kconfig35
-rw-r--r--drivers/media/pci/cx18/Makefile13
-rw-r--r--drivers/media/pci/cx18/cx18-alsa-main.c296
-rw-r--r--drivers/media/pci/cx18/cx18-alsa-mixer.c175
-rw-r--r--drivers/media/pci/cx18/cx18-alsa-mixer.h23
-rw-r--r--drivers/media/pci/cx18/cx18-alsa-pcm.c357
-rw-r--r--drivers/media/pci/cx18/cx18-alsa-pcm.h27
-rw-r--r--drivers/media/pci/cx18/cx18-alsa.h75
-rw-r--r--drivers/media/pci/cx18/cx18-audio.c92
-rw-r--r--drivers/media/pci/cx18/cx18-audio.h (renamed from drivers/media/video/cx18/cx18-audio.h)2
-rw-r--r--drivers/media/pci/cx18/cx18-av-audio.c (renamed from drivers/media/video/cx18/cx18-av-audio.c)158
-rw-r--r--drivers/media/pci/cx18/cx18-av-core.c1365
-rw-r--r--drivers/media/pci/cx18/cx18-av-core.h (renamed from drivers/media/video/cx18/cx18-av-core.h)77
-rw-r--r--drivers/media/pci/cx18/cx18-av-firmware.c225
-rw-r--r--drivers/media/pci/cx18/cx18-av-vbi.c313
-rw-r--r--drivers/media/pci/cx18/cx18-cards.c638
-rw-r--r--drivers/media/pci/cx18/cx18-cards.h (renamed from drivers/media/video/cx18/cx18-cards.h)33
-rw-r--r--drivers/media/pci/cx18/cx18-controls.c131
-rw-r--r--drivers/media/pci/cx18/cx18-controls.h24
-rw-r--r--drivers/media/pci/cx18/cx18-driver.c1366
-rw-r--r--drivers/media/pci/cx18/cx18-driver.h730
-rw-r--r--drivers/media/pci/cx18/cx18-dvb.c609
-rw-r--r--drivers/media/pci/cx18/cx18-dvb.h (renamed from drivers/media/video/cx18/cx18-dvb.h)0
-rw-r--r--drivers/media/pci/cx18/cx18-fileops.c881
-rw-r--r--drivers/media/pci/cx18/cx18-fileops.h (renamed from drivers/media/video/cx18/cx18-fileops.h)5
-rw-r--r--drivers/media/pci/cx18/cx18-firmware.c (renamed from drivers/media/video/cx18/cx18-firmware.c)43
-rw-r--r--drivers/media/pci/cx18/cx18-firmware.h (renamed from drivers/media/video/cx18/cx18-firmware.h)0
-rw-r--r--drivers/media/pci/cx18/cx18-gpio.c351
-rw-r--r--drivers/media/pci/cx18/cx18-gpio.h (renamed from drivers/media/video/cx18/cx18-gpio.h)12
-rw-r--r--drivers/media/pci/cx18/cx18-i2c.c325
-rw-r--r--drivers/media/pci/cx18/cx18-i2c.h (renamed from drivers/media/video/cx18/cx18-i2c.h)7
-rw-r--r--drivers/media/pci/cx18/cx18-io.c (renamed from drivers/media/video/cx18/cx18-io.c)2
-rw-r--r--drivers/media/pci/cx18/cx18-io.h (renamed from drivers/media/video/cx18/cx18-io.h)4
-rw-r--r--drivers/media/pci/cx18/cx18-ioctl.c1122
-rw-r--r--drivers/media/pci/cx18/cx18-ioctl.h (renamed from drivers/media/video/cx18/cx18-ioctl.h)8
-rw-r--r--drivers/media/pci/cx18/cx18-irq.c (renamed from drivers/media/video/cx18/cx18-irq.c)2
-rw-r--r--drivers/media/pci/cx18/cx18-irq.h (renamed from drivers/media/video/cx18/cx18-irq.h)2
-rw-r--r--drivers/media/pci/cx18/cx18-mailbox.c870
-rw-r--r--drivers/media/pci/cx18/cx18-mailbox.h (renamed from drivers/media/video/cx18/cx18-mailbox.h)19
-rw-r--r--drivers/media/pci/cx18/cx18-queue.c443
-rw-r--r--drivers/media/pci/cx18/cx18-queue.h98
-rw-r--r--drivers/media/pci/cx18/cx18-scb.c (renamed from drivers/media/video/cx18/cx18-scb.c)2
-rw-r--r--drivers/media/pci/cx18/cx18-scb.h (renamed from drivers/media/video/cx18/cx18-scb.h)6
-rw-r--r--drivers/media/pci/cx18/cx18-streams.c1059
-rw-r--r--drivers/media/pci/cx18/cx18-streams.h62
-rw-r--r--drivers/media/pci/cx18/cx18-vbi.c277
-rw-r--r--drivers/media/pci/cx18/cx18-vbi.h (renamed from drivers/media/video/cx18/cx18-vbi.h)4
-rw-r--r--drivers/media/pci/cx18/cx18-version.h28
-rw-r--r--drivers/media/pci/cx18/cx18-video.c32
-rw-r--r--drivers/media/pci/cx18/cx18-video.h (renamed from drivers/media/video/cx18/cx18-video.h)0
-rw-r--r--drivers/media/pci/cx18/cx23418.h (renamed from drivers/media/video/cx18/cx23418.h)31
-rw-r--r--drivers/media/pci/cx23885/Kconfig55
-rw-r--r--drivers/media/pci/cx23885/Makefile16
-rw-r--r--drivers/media/pci/cx23885/altera-ci.c840
-rw-r--r--drivers/media/pci/cx23885/altera-ci.h101
-rw-r--r--drivers/media/pci/cx23885/cimax2.c550
-rw-r--r--drivers/media/pci/cx23885/cimax2.h47
-rw-r--r--drivers/media/pci/cx23885/cx23885-417.c (renamed from drivers/media/video/cx23885/cx23885-417.c)305
-rw-r--r--drivers/media/pci/cx23885/cx23885-alsa.c536
-rw-r--r--drivers/media/pci/cx23885/cx23885-av.c49
-rw-r--r--drivers/media/pci/cx23885/cx23885-av.h27
-rw-r--r--drivers/media/pci/cx23885/cx23885-cards.c1921
-rw-r--r--drivers/media/pci/cx23885/cx23885-core.c (renamed from drivers/media/video/cx23885/cx23885-core.c)570
-rw-r--r--drivers/media/pci/cx23885/cx23885-dvb.c1510
-rw-r--r--drivers/media/pci/cx23885/cx23885-f300.c178
-rw-r--r--drivers/media/pci/cx23885/cx23885-f300.h2
-rw-r--r--drivers/media/pci/cx23885/cx23885-i2c.c (renamed from drivers/media/video/cx23885/cx23885-i2c.c)118
-rw-r--r--drivers/media/pci/cx23885/cx23885-input.c387
-rw-r--r--drivers/media/pci/cx23885/cx23885-input.h30
-rw-r--r--drivers/media/pci/cx23885/cx23885-ioctl.c112
-rw-r--r--drivers/media/pci/cx23885/cx23885-ioctl.h39
-rw-r--r--drivers/media/pci/cx23885/cx23885-ir.c118
-rw-r--r--drivers/media/pci/cx23885/cx23885-ir.h31
-rw-r--r--drivers/media/pci/cx23885/cx23885-reg.h (renamed from drivers/media/video/cx23885/cx23885-reg.h)8
-rw-r--r--drivers/media/pci/cx23885/cx23885-vbi.c (renamed from drivers/media/video/cx23885/cx23885-vbi.c)75
-rw-r--r--drivers/media/pci/cx23885/cx23885-video.c1938
-rw-r--r--drivers/media/pci/cx23885/cx23885-video.h26
-rw-r--r--drivers/media/pci/cx23885/cx23885.h661
-rw-r--r--drivers/media/pci/cx23885/cx23888-ir.c1239
-rw-r--r--drivers/media/pci/cx23885/cx23888-ir.h28
-rw-r--r--drivers/media/pci/cx23885/netup-eeprom.c107
-rw-r--r--drivers/media/pci/cx23885/netup-eeprom.h42
-rw-r--r--drivers/media/pci/cx23885/netup-init.c126
-rw-r--r--drivers/media/pci/cx23885/netup-init.h25
-rw-r--r--drivers/media/pci/cx25821/Kconfig29
-rw-r--r--drivers/media/pci/cx25821/Makefile9
-rw-r--r--drivers/media/pci/cx25821/cx25821-alsa.c758
-rw-r--r--drivers/media/pci/cx25821/cx25821-audio-upstream.c696
-rw-r--r--drivers/media/pci/cx25821/cx25821-audio-upstream.h62
-rw-r--r--drivers/media/pci/cx25821/cx25821-audio.h62
-rw-r--r--drivers/media/pci/cx25821/cx25821-biffuncs.h45
-rw-r--r--drivers/media/pci/cx25821/cx25821-cards.c47
-rw-r--r--drivers/media/pci/cx25821/cx25821-core.c1409
-rw-r--r--drivers/media/pci/cx25821/cx25821-gpio.c99
-rw-r--r--drivers/media/pci/cx25821/cx25821-i2c.c419
-rw-r--r--drivers/media/pci/cx25821/cx25821-medusa-defines.h42
-rw-r--r--drivers/media/pci/cx25821/cx25821-medusa-reg.h455
-rw-r--r--drivers/media/pci/cx25821/cx25821-medusa-video.c745
-rw-r--r--drivers/media/pci/cx25821/cx25821-medusa-video.h43
-rw-r--r--drivers/media/pci/cx25821/cx25821-reg.h1592
-rw-r--r--drivers/media/pci/cx25821/cx25821-sram.h261
-rw-r--r--drivers/media/pci/cx25821/cx25821-video-upstream.c676
-rw-r--r--drivers/media/pci/cx25821/cx25821-video-upstream.h139
-rw-r--r--drivers/media/pci/cx25821/cx25821-video.c1132
-rw-r--r--drivers/media/pci/cx25821/cx25821-video.h65
-rw-r--r--drivers/media/pci/cx25821/cx25821.h451
-rw-r--r--drivers/media/pci/cx88/Kconfig93
-rw-r--r--drivers/media/pci/cx88/Makefile17
-rw-r--r--drivers/media/pci/cx88/cx88-alsa.c (renamed from drivers/media/video/cx88/cx88-alsa.c)245
-rw-r--r--drivers/media/pci/cx88/cx88-blackbird.c (renamed from drivers/media/video/cx88/cx88-blackbird.c)361
-rw-r--r--drivers/media/pci/cx88/cx88-cards.c (renamed from drivers/media/video/cx88/cx88-cards.c)770
-rw-r--r--drivers/media/pci/cx88/cx88-core.c (renamed from drivers/media/video/cx88/cx88-core.c)121
-rw-r--r--drivers/media/pci/cx88/cx88-dsp.c322
-rw-r--r--drivers/media/pci/cx88/cx88-dvb.c1795
-rw-r--r--drivers/media/pci/cx88/cx88-i2c.c (renamed from drivers/media/video/cx88/cx88-i2c.c)60
-rw-r--r--drivers/media/pci/cx88/cx88-input.c635
-rw-r--r--drivers/media/pci/cx88/cx88-mpeg.c (renamed from drivers/media/video/cx88/cx88-mpeg.c)164
-rw-r--r--drivers/media/pci/cx88/cx88-reg.h (renamed from drivers/media/video/cx88/cx88-reg.h)0
-rw-r--r--drivers/media/pci/cx88/cx88-tvaudio.c (renamed from drivers/media/video/cx88/cx88-tvaudio.c)167
-rw-r--r--drivers/media/pci/cx88/cx88-vbi.c (renamed from drivers/media/video/cx88/cx88-vbi.c)3
-rw-r--r--drivers/media/pci/cx88/cx88-video.c2041
-rw-r--r--drivers/media/pci/cx88/cx88-vp3054-i2c.c (renamed from drivers/media/video/cx88/cx88-vp3054-i2c.c)7
-rw-r--r--drivers/media/pci/cx88/cx88-vp3054-i2c.h (renamed from drivers/media/video/cx88/cx88-vp3054-i2c.h)2
-rw-r--r--drivers/media/pci/cx88/cx88.h (renamed from drivers/media/video/cx88/cx88.h)233
-rw-r--r--drivers/media/pci/ddbridge/Kconfig18
-rw-r--r--drivers/media/pci/ddbridge/Makefile14
-rw-r--r--drivers/media/pci/ddbridge/ddbridge-core.c1727
-rw-r--r--drivers/media/pci/ddbridge/ddbridge-regs.h151
-rw-r--r--drivers/media/pci/ddbridge/ddbridge.h185
-rw-r--r--drivers/media/pci/dm1105/Kconfig21
-rw-r--r--drivers/media/pci/dm1105/Makefile3
-rw-r--r--drivers/media/pci/dm1105/dm1105.c1245
-rw-r--r--drivers/media/pci/ivtv/Kconfig61
-rw-r--r--drivers/media/pci/ivtv/Makefile16
-rw-r--r--drivers/media/pci/ivtv/ivtv-alsa-main.c304
-rw-r--r--drivers/media/pci/ivtv/ivtv-alsa-mixer.c175
-rw-r--r--drivers/media/pci/ivtv/ivtv-alsa-mixer.h23
-rw-r--r--drivers/media/pci/ivtv/ivtv-alsa-pcm.c364
-rw-r--r--drivers/media/pci/ivtv/ivtv-alsa-pcm.h23
-rw-r--r--drivers/media/pci/ivtv/ivtv-alsa.h75
-rw-r--r--drivers/media/pci/ivtv/ivtv-cards.c (renamed from drivers/media/video/ivtv/ivtv-cards.c)139
-rw-r--r--drivers/media/pci/ivtv/ivtv-cards.h (renamed from drivers/media/video/ivtv/ivtv-cards.h)60
-rw-r--r--drivers/media/pci/ivtv/ivtv-controls.c163
-rw-r--r--drivers/media/pci/ivtv/ivtv-controls.h28
-rw-r--r--drivers/media/pci/ivtv/ivtv-driver.c (renamed from drivers/media/video/ivtv/ivtv-driver.c)365
-rw-r--r--drivers/media/pci/ivtv/ivtv-driver.h (renamed from drivers/media/video/ivtv/ivtv-driver.h)101
-rw-r--r--drivers/media/pci/ivtv/ivtv-fileops.c (renamed from drivers/media/video/ivtv/ivtv-fileops.c)277
-rw-r--r--drivers/media/pci/ivtv/ivtv-fileops.h (renamed from drivers/media/video/ivtv/ivtv-fileops.h)4
-rw-r--r--drivers/media/pci/ivtv/ivtv-firmware.c402
-rw-r--r--drivers/media/pci/ivtv/ivtv-firmware.h (renamed from drivers/media/video/ivtv/ivtv-firmware.h)1
-rw-r--r--drivers/media/pci/ivtv/ivtv-gpio.c (renamed from drivers/media/video/ivtv/ivtv-gpio.c)116
-rw-r--r--drivers/media/pci/ivtv/ivtv-gpio.h (renamed from drivers/media/video/ivtv/ivtv-gpio.h)0
-rw-r--r--drivers/media/pci/ivtv/ivtv-i2c.c754
-rw-r--r--drivers/media/pci/ivtv/ivtv-i2c.h (renamed from drivers/media/video/ivtv/ivtv-i2c.h)3
-rw-r--r--drivers/media/pci/ivtv/ivtv-ioctl.c1897
-rw-r--r--drivers/media/pci/ivtv/ivtv-ioctl.h (renamed from drivers/media/video/ivtv/ivtv-ioctl.h)6
-rw-r--r--drivers/media/pci/ivtv/ivtv-irq.c (renamed from drivers/media/video/ivtv/ivtv-irq.c)170
-rw-r--r--drivers/media/pci/ivtv/ivtv-irq.h (renamed from drivers/media/video/ivtv/ivtv-irq.h)2
-rw-r--r--drivers/media/pci/ivtv/ivtv-mailbox.c (renamed from drivers/media/video/ivtv/ivtv-mailbox.c)15
-rw-r--r--drivers/media/pci/ivtv/ivtv-mailbox.h (renamed from drivers/media/video/ivtv/ivtv-mailbox.h)4
-rw-r--r--drivers/media/pci/ivtv/ivtv-queue.c (renamed from drivers/media/video/ivtv/ivtv-queue.c)9
-rw-r--r--drivers/media/pci/ivtv/ivtv-queue.h (renamed from drivers/media/video/ivtv/ivtv-queue.h)8
-rw-r--r--drivers/media/pci/ivtv/ivtv-routing.c119
-rw-r--r--drivers/media/pci/ivtv/ivtv-routing.h (renamed from drivers/media/video/ivtv/ivtv-routing.h)0
-rw-r--r--drivers/media/pci/ivtv/ivtv-streams.c (renamed from drivers/media/video/ivtv/ivtv-streams.c)237
-rw-r--r--drivers/media/pci/ivtv/ivtv-streams.h (renamed from drivers/media/video/ivtv/ivtv-streams.h)0
-rw-r--r--drivers/media/pci/ivtv/ivtv-udma.c (renamed from drivers/media/video/ivtv/ivtv-udma.c)22
-rw-r--r--drivers/media/pci/ivtv/ivtv-udma.h (renamed from drivers/media/video/ivtv/ivtv-udma.h)4
-rw-r--r--drivers/media/pci/ivtv/ivtv-vbi.c (renamed from drivers/media/video/ivtv/ivtv-vbi.c)139
-rw-r--r--drivers/media/pci/ivtv/ivtv-vbi.h (renamed from drivers/media/video/ivtv/ivtv-vbi.h)5
-rw-r--r--drivers/media/pci/ivtv/ivtv-version.h26
-rw-r--r--drivers/media/pci/ivtv/ivtv-yuv.c (renamed from drivers/media/video/ivtv/ivtv-yuv.c)83
-rw-r--r--drivers/media/pci/ivtv/ivtv-yuv.h (renamed from drivers/media/video/ivtv/ivtv-yuv.h)0
-rw-r--r--drivers/media/pci/ivtv/ivtvfb.c (renamed from drivers/media/video/ivtv/ivtvfb.c)117
-rw-r--r--drivers/media/pci/mantis/Kconfig38
-rw-r--r--drivers/media/pci/mantis/Makefile28
-rw-r--r--drivers/media/pci/mantis/hopper_cards.c267
-rw-r--r--drivers/media/pci/mantis/hopper_vp3028.c88
-rw-r--r--drivers/media/pci/mantis/hopper_vp3028.h30
-rw-r--r--drivers/media/pci/mantis/mantis_ca.c210
-rw-r--r--drivers/media/pci/mantis/mantis_ca.h27
-rw-r--r--drivers/media/pci/mantis/mantis_cards.c297
-rw-r--r--drivers/media/pci/mantis/mantis_common.h179
-rw-r--r--drivers/media/pci/mantis/mantis_core.c235
-rw-r--r--drivers/media/pci/mantis/mantis_core.h57
-rw-r--r--drivers/media/pci/mantis/mantis_dma.c230
-rw-r--r--drivers/media/pci/mantis/mantis_dma.h30
-rw-r--r--drivers/media/pci/mantis/mantis_dvb.c301
-rw-r--r--drivers/media/pci/mantis/mantis_dvb.h35
-rw-r--r--drivers/media/pci/mantis/mantis_evm.c117
-rw-r--r--drivers/media/pci/mantis/mantis_hif.c239
-rw-r--r--drivers/media/pci/mantis/mantis_hif.h29
-rw-r--r--drivers/media/pci/mantis/mantis_i2c.c268
-rw-r--r--drivers/media/pci/mantis/mantis_i2c.h30
-rw-r--r--drivers/media/pci/mantis/mantis_input.c162
-rw-r--r--drivers/media/pci/mantis/mantis_ioc.c124
-rw-r--r--drivers/media/pci/mantis/mantis_ioc.h51
-rw-r--r--drivers/media/pci/mantis/mantis_link.h83
-rw-r--r--drivers/media/pci/mantis/mantis_pci.c168
-rw-r--r--drivers/media/pci/mantis/mantis_pci.h27
-rw-r--r--drivers/media/pci/mantis/mantis_pcmcia.c121
-rw-r--r--drivers/media/pci/mantis/mantis_reg.h197
-rw-r--r--drivers/media/pci/mantis/mantis_uart.c188
-rw-r--r--drivers/media/pci/mantis/mantis_uart.h58
-rw-r--r--drivers/media/pci/mantis/mantis_vp1033.c212
-rw-r--r--drivers/media/pci/mantis/mantis_vp1033.h30
-rw-r--r--drivers/media/pci/mantis/mantis_vp1034.c120
-rw-r--r--drivers/media/pci/mantis/mantis_vp1034.h33
-rw-r--r--drivers/media/pci/mantis/mantis_vp1041.c357
-rw-r--r--drivers/media/pci/mantis/mantis_vp1041.h33
-rw-r--r--drivers/media/pci/mantis/mantis_vp2033.c188
-rw-r--r--drivers/media/pci/mantis/mantis_vp2033.h30
-rw-r--r--drivers/media/pci/mantis/mantis_vp2040.c187
-rw-r--r--drivers/media/pci/mantis/mantis_vp2040.h32
-rw-r--r--drivers/media/pci/mantis/mantis_vp3028.c38
-rw-r--r--drivers/media/pci/mantis/mantis_vp3028.h33
-rw-r--r--drivers/media/pci/mantis/mantis_vp3030.c105
-rw-r--r--drivers/media/pci/mantis/mantis_vp3030.h30
-rw-r--r--drivers/media/pci/meye/Kconfig13
-rw-r--r--drivers/media/pci/meye/Makefile1
-rw-r--r--drivers/media/pci/meye/meye.c (renamed from drivers/media/video/meye.c)483
-rw-r--r--drivers/media/pci/meye/meye.h (renamed from drivers/media/video/meye.h)16
-rw-r--r--drivers/media/pci/ngene/Kconfig13
-rw-r--r--drivers/media/pci/ngene/Makefile14
-rw-r--r--drivers/media/pci/ngene/ngene-cards.c834
-rw-r--r--drivers/media/pci/ngene/ngene-core.c1705
-rw-r--r--drivers/media/pci/ngene/ngene-dvb.c261
-rw-r--r--drivers/media/pci/ngene/ngene-i2c.c176
-rw-r--r--drivers/media/pci/ngene/ngene.h920
-rw-r--r--drivers/media/pci/pluto2/Kconfig (renamed from drivers/media/dvb/pluto2/Kconfig)0
-rw-r--r--drivers/media/pci/pluto2/Makefile3
-rw-r--r--drivers/media/pci/pluto2/pluto2.c (renamed from drivers/media/dvb/pluto2/pluto2.c)80
-rw-r--r--drivers/media/pci/pt1/Kconfig12
-rw-r--r--drivers/media/pci/pt1/Makefile5
-rw-r--r--drivers/media/pci/pt1/pt1.c1230
-rw-r--r--drivers/media/pci/pt1/va1j5jf8007s.c736
-rw-r--r--drivers/media/pci/pt1/va1j5jf8007s.h46
-rw-r--r--drivers/media/pci/pt1/va1j5jf8007t.c536
-rw-r--r--drivers/media/pci/pt1/va1j5jf8007t.h46
-rw-r--r--drivers/media/pci/saa7134/Kconfig65
-rw-r--r--drivers/media/pci/saa7134/Makefile16
-rw-r--r--drivers/media/pci/saa7134/saa7134-alsa.c (renamed from drivers/media/video/saa7134/saa7134-alsa.c)373
-rw-r--r--drivers/media/pci/saa7134/saa7134-cards.c (renamed from drivers/media/video/saa7134/saa7134-cards.c)1899
-rw-r--r--drivers/media/pci/saa7134/saa7134-core.c (renamed from drivers/media/video/saa7134/saa7134-core.c)365
-rw-r--r--drivers/media/pci/saa7134/saa7134-dvb.c1968
-rw-r--r--drivers/media/pci/saa7134/saa7134-empress.c355
-rw-r--r--drivers/media/pci/saa7134/saa7134-i2c.c (renamed from drivers/media/video/saa7134/saa7134-i2c.c)78
-rw-r--r--drivers/media/pci/saa7134/saa7134-input.c1044
-rw-r--r--drivers/media/pci/saa7134/saa7134-reg.h (renamed from drivers/media/video/saa7134/saa7134-reg.h)36
-rw-r--r--drivers/media/pci/saa7134/saa7134-ts.c352
-rw-r--r--drivers/media/pci/saa7134/saa7134-tvaudio.c (renamed from drivers/media/video/saa7134/saa7134-tvaudio.c)86
-rw-r--r--drivers/media/pci/saa7134/saa7134-vbi.c235
-rw-r--r--drivers/media/pci/saa7134/saa7134-video.c2262
-rw-r--r--drivers/media/pci/saa7134/saa7134.h (renamed from drivers/media/video/saa7134/saa7134.h)296
-rw-r--r--drivers/media/pci/saa7146/Kconfig38
-rw-r--r--drivers/media/pci/saa7146/Makefile5
-rw-r--r--drivers/media/pci/saa7146/hexium_gemini.c430
-rw-r--r--drivers/media/pci/saa7146/hexium_orion.c (renamed from drivers/media/video/hexium_orion.c)155
-rw-r--r--drivers/media/pci/saa7146/mxb.c878
-rw-r--r--drivers/media/pci/saa7164/Kconfig18
-rw-r--r--drivers/media/pci/saa7164/Makefile12
-rw-r--r--drivers/media/pci/saa7164/saa7164-api.c1526
-rw-r--r--drivers/media/pci/saa7164/saa7164-buffer.c322
-rw-r--r--drivers/media/pci/saa7164/saa7164-bus.c475
-rw-r--r--drivers/media/pci/saa7164/saa7164-cards.c773
-rw-r--r--drivers/media/pci/saa7164/saa7164-cmd.c589
-rw-r--r--drivers/media/pci/saa7164/saa7164-core.c1497
-rw-r--r--drivers/media/pci/saa7164/saa7164-dvb.c556
-rw-r--r--drivers/media/pci/saa7164/saa7164-encoder.c1471
-rw-r--r--drivers/media/pci/saa7164/saa7164-fw.c613
-rw-r--r--drivers/media/pci/saa7164/saa7164-i2c.c125
-rw-r--r--drivers/media/pci/saa7164/saa7164-reg.h219
-rw-r--r--drivers/media/pci/saa7164/saa7164-types.h442
-rw-r--r--drivers/media/pci/saa7164/saa7164-vbi.c1378
-rw-r--r--drivers/media/pci/saa7164/saa7164.h619
-rw-r--r--drivers/media/pci/sta2x11/Kconfig13
-rw-r--r--drivers/media/pci/sta2x11/Makefile1
-rw-r--r--drivers/media/pci/sta2x11/sta2x11_vip.c1342
-rw-r--r--drivers/media/pci/sta2x11/sta2x11_vip.h40
-rw-r--r--drivers/media/pci/ttpci/Kconfig154
-rw-r--r--drivers/media/pci/ttpci/Makefile21
-rw-r--r--drivers/media/pci/ttpci/av7110.c (renamed from drivers/media/dvb/ttpci/av7110.c)170
-rw-r--r--drivers/media/pci/ttpci/av7110.h (renamed from drivers/media/dvb/ttpci/av7110.h)6
-rw-r--r--drivers/media/pci/ttpci/av7110_av.c (renamed from drivers/media/dvb/ttpci/av7110_av.c)159
-rw-r--r--drivers/media/pci/ttpci/av7110_av.h (renamed from drivers/media/dvb/ttpci/av7110_av.h)0
-rw-r--r--drivers/media/pci/ttpci/av7110_ca.c (renamed from drivers/media/dvb/ttpci/av7110_ca.c)35
-rw-r--r--drivers/media/pci/ttpci/av7110_ca.h (renamed from drivers/media/dvb/ttpci/av7110_ca.h)0
-rw-r--r--drivers/media/pci/ttpci/av7110_hw.c (renamed from drivers/media/dvb/ttpci/av7110_hw.c)56
-rw-r--r--drivers/media/pci/ttpci/av7110_hw.h (renamed from drivers/media/dvb/ttpci/av7110_hw.h)3
-rw-r--r--drivers/media/pci/ttpci/av7110_ipack.c (renamed from drivers/media/dvb/ttpci/av7110_ipack.c)0
-rw-r--r--drivers/media/pci/ttpci/av7110_ipack.h (renamed from drivers/media/dvb/ttpci/av7110_ipack.h)0
-rw-r--r--drivers/media/pci/ttpci/av7110_ir.c (renamed from drivers/media/dvb/ttpci/av7110_ir.c)21
-rw-r--r--drivers/media/pci/ttpci/av7110_v4l.c966
-rw-r--r--drivers/media/pci/ttpci/budget-av.c (renamed from drivers/media/dvb/ttpci/budget-av.c)191
-rw-r--r--drivers/media/pci/ttpci/budget-ci.c (renamed from drivers/media/dvb/ttpci/budget-ci.c)207
-rw-r--r--drivers/media/pci/ttpci/budget-core.c (renamed from drivers/media/dvb/ttpci/budget-core.c)6
-rw-r--r--drivers/media/pci/ttpci/budget-patch.c (renamed from drivers/media/dvb/ttpci/budget-patch.c)33
-rw-r--r--drivers/media/pci/ttpci/budget.c883
-rw-r--r--drivers/media/pci/ttpci/budget.h (renamed from drivers/media/dvb/ttpci/budget.h)1
-rw-r--r--drivers/media/pci/ttpci/ttpci-eeprom.c (renamed from drivers/media/dvb/ttpci/ttpci-eeprom.c)29
-rw-r--r--drivers/media/pci/ttpci/ttpci-eeprom.h (renamed from drivers/media/dvb/ttpci/ttpci-eeprom.h)1
-rw-r--r--drivers/media/pci/zoran/Kconfig75
-rw-r--r--drivers/media/pci/zoran/Makefile (renamed from drivers/media/video/zoran/Makefile)0
-rw-r--r--drivers/media/pci/zoran/videocodec.c (renamed from drivers/media/video/zoran/videocodec.c)5
-rw-r--r--drivers/media/pci/zoran/videocodec.h (renamed from drivers/media/video/zoran/videocodec.h)13
-rw-r--r--drivers/media/pci/zoran/zoran.h403
-rw-r--r--drivers/media/pci/zoran/zoran_card.c1523
-rw-r--r--drivers/media/pci/zoran/zoran_card.h (renamed from drivers/media/video/zoran/zoran_card.h)5
-rw-r--r--drivers/media/pci/zoran/zoran_device.c (renamed from drivers/media/video/zoran/zoran_device.c)533
-rw-r--r--drivers/media/pci/zoran/zoran_device.h (renamed from drivers/media/video/zoran/zoran_device.h)14
-rw-r--r--drivers/media/pci/zoran/zoran_driver.c3068
-rw-r--r--drivers/media/pci/zoran/zoran_procfs.c (renamed from drivers/media/video/zoran/zoran_procfs.c)8
-rw-r--r--drivers/media/pci/zoran/zoran_procfs.h (renamed from drivers/media/video/zoran/zoran_procfs.h)0
-rw-r--r--drivers/media/pci/zoran/zr36016.c (renamed from drivers/media/video/zoran/zr36016.c)9
-rw-r--r--drivers/media/pci/zoran/zr36016.h (renamed from drivers/media/video/zoran/zr36016.h)0
-rw-r--r--drivers/media/pci/zoran/zr36050.c (renamed from drivers/media/video/zoran/zr36050.c)6
-rw-r--r--drivers/media/pci/zoran/zr36050.h (renamed from drivers/media/video/zoran/zr36050.h)0
-rw-r--r--drivers/media/pci/zoran/zr36057.h (renamed from drivers/media/video/zoran/zr36057.h)0
-rw-r--r--drivers/media/pci/zoran/zr36060.c (renamed from drivers/media/video/zoran/zr36060.c)8
-rw-r--r--drivers/media/pci/zoran/zr36060.h (renamed from drivers/media/video/zoran/zr36060.h)0
-rw-r--r--drivers/media/platform/Kconfig266
-rw-r--r--drivers/media/platform/Makefile54
-rw-r--r--drivers/media/platform/arv.c885
-rw-r--r--drivers/media/platform/blackfin/Kconfig15
-rw-r--r--drivers/media/platform/blackfin/Makefile2
-rw-r--r--drivers/media/platform/blackfin/bfin_capture.c1143
-rw-r--r--drivers/media/platform/blackfin/ppi.c345
-rw-r--r--drivers/media/platform/coda.c3347
-rw-r--r--drivers/media/platform/coda.h338
-rw-r--r--drivers/media/platform/davinci/Kconfig78
-rw-r--r--drivers/media/platform/davinci/Makefile15
-rw-r--r--drivers/media/platform/davinci/ccdc_hw_device.h110
-rw-r--r--drivers/media/platform/davinci/dm355_ccdc.c1039
-rw-r--r--drivers/media/platform/davinci/dm355_ccdc_regs.h310
-rw-r--r--drivers/media/platform/davinci/dm644x_ccdc.c1044
-rw-r--r--drivers/media/platform/davinci/dm644x_ccdc_regs.h153
-rw-r--r--drivers/media/platform/davinci/isif.c1145
-rw-r--r--drivers/media/platform/davinci/isif_regs.h269
-rw-r--r--drivers/media/platform/davinci/vpbe.c872
-rw-r--r--drivers/media/platform/davinci/vpbe_display.c1858
-rw-r--r--drivers/media/platform/davinci/vpbe_osd.c1597
-rw-r--r--drivers/media/platform/davinci/vpbe_osd_regs.h364
-rw-r--r--drivers/media/platform/davinci/vpbe_venc.c699
-rw-r--r--drivers/media/platform/davinci/vpbe_venc_regs.h177
-rw-r--r--drivers/media/platform/davinci/vpfe_capture.c2044
-rw-r--r--drivers/media/platform/davinci/vpif.c487
-rw-r--r--drivers/media/platform/davinci/vpif.h688
-rw-r--r--drivers/media/platform/davinci/vpif_capture.c1809
-rw-r--r--drivers/media/platform/davinci/vpif_capture.h133
-rw-r--r--drivers/media/platform/davinci/vpif_display.c1481
-rw-r--r--drivers/media/platform/davinci/vpif_display.h127
-rw-r--r--drivers/media/platform/davinci/vpss.c533
-rw-r--r--drivers/media/platform/exynos-gsc/Makefile3
-rw-r--r--drivers/media/platform/exynos-gsc/gsc-core.c1266
-rw-r--r--drivers/media/platform/exynos-gsc/gsc-core.h534
-rw-r--r--drivers/media/platform/exynos-gsc/gsc-m2m.c795
-rw-r--r--drivers/media/platform/exynos-gsc/gsc-regs.c430
-rw-r--r--drivers/media/platform/exynos-gsc/gsc-regs.h172
-rw-r--r--drivers/media/platform/exynos4-is/Kconfig77
-rw-r--r--drivers/media/platform/exynos4-is/Makefile17
-rw-r--r--drivers/media/platform/exynos4-is/common.c53
-rw-r--r--drivers/media/platform/exynos4-is/common.h16
-rw-r--r--drivers/media/platform/exynos4-is/fimc-capture.c1917
-rw-r--r--drivers/media/platform/exynos4-is/fimc-core.c1308
-rw-r--r--drivers/media/platform/exynos4-is/fimc-core.h728
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-command.h137
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-errno.c272
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-errno.h248
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-i2c.c149
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-i2c.h15
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-param.c898
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-param.h1025
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-regs.c233
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-regs.h164
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-sensor.c34
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is-sensor.h56
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is.c998
-rw-r--r--drivers/media/platform/exynos4-is/fimc-is.h344
-rw-r--r--drivers/media/platform/exynos4-is/fimc-isp-video.c659
-rw-r--r--drivers/media/platform/exynos4-is/fimc-isp-video.h44
-rw-r--r--drivers/media/platform/exynos4-is/fimc-isp.c786
-rw-r--r--drivers/media/platform/exynos4-is/fimc-isp.h195
-rw-r--r--drivers/media/platform/exynos4-is/fimc-lite-reg.c349
-rw-r--r--drivers/media/platform/exynos4-is/fimc-lite-reg.h156
-rw-r--r--drivers/media/platform/exynos4-is/fimc-lite.c1729
-rw-r--r--drivers/media/platform/exynos4-is/fimc-lite.h227
-rw-r--r--drivers/media/platform/exynos4-is/fimc-m2m.c772
-rw-r--r--drivers/media/platform/exynos4-is/fimc-reg.c842
-rw-r--r--drivers/media/platform/exynos4-is/fimc-reg.h338
-rw-r--r--drivers/media/platform/exynos4-is/media-dev.c1498
-rw-r--r--drivers/media/platform/exynos4-is/media-dev.h210
-rw-r--r--drivers/media/platform/exynos4-is/mipi-csis.c1052
-rw-r--r--drivers/media/platform/exynos4-is/mipi-csis.h26
-rw-r--r--drivers/media/platform/fsl-viu.c1693
-rw-r--r--drivers/media/platform/indycam.c378
-rw-r--r--drivers/media/platform/indycam.h (renamed from drivers/media/video/indycam.h)19
-rw-r--r--drivers/media/platform/m2m-deinterlace.c1111
-rw-r--r--drivers/media/platform/marvell-ccic/Kconfig23
-rw-r--r--drivers/media/platform/marvell-ccic/Makefile6
-rw-r--r--drivers/media/platform/marvell-ccic/cafe-driver.c656
-rw-r--r--drivers/media/platform/marvell-ccic/mcam-core.c2034
-rw-r--r--drivers/media/platform/marvell-ccic/mcam-core.h382
-rw-r--r--drivers/media/platform/marvell-ccic/mmp-driver.c537
-rw-r--r--drivers/media/platform/mem2mem_testdev.c1090
-rw-r--r--drivers/media/platform/mx2_emmaprp.c1016
-rw-r--r--drivers/media/platform/omap/Kconfig14
-rw-r--r--drivers/media/platform/omap/Makefile8
-rw-r--r--drivers/media/platform/omap/omap_vout.c2294
-rw-r--r--drivers/media/platform/omap/omap_vout_vrfb.c393
-rw-r--r--drivers/media/platform/omap/omap_vout_vrfb.h40
-rw-r--r--drivers/media/platform/omap/omap_voutdef.h225
-rw-r--r--drivers/media/platform/omap/omap_voutlib.c357
-rw-r--r--drivers/media/platform/omap/omap_voutlib.h39
-rw-r--r--drivers/media/platform/omap3isp/Makefile11
-rw-r--r--drivers/media/platform/omap3isp/cfa_coef_table.h61
-rw-r--r--drivers/media/platform/omap3isp/gamma_table.h90
-rw-r--r--drivers/media/platform/omap3isp/isp.c2406
-rw-r--r--drivers/media/platform/omap3isp/isp.h356
-rw-r--r--drivers/media/platform/omap3isp/ispccdc.c2586
-rw-r--r--drivers/media/platform/omap3isp/ispccdc.h176
-rw-r--r--drivers/media/platform/omap3isp/ispccp2.c1179
-rw-r--r--drivers/media/platform/omap3isp/ispccp2.h98
-rw-r--r--drivers/media/platform/omap3isp/ispcsi2.c1329
-rw-r--r--drivers/media/platform/omap3isp/ispcsi2.h165
-rw-r--r--drivers/media/platform/omap3isp/ispcsiphy.c353
-rw-r--r--drivers/media/platform/omap3isp/ispcsiphy.h53
-rw-r--r--drivers/media/platform/omap3isp/isph3a.h117
-rw-r--r--drivers/media/platform/omap3isp/isph3a_aewb.c352
-rw-r--r--drivers/media/platform/omap3isp/isph3a_af.c407
-rw-r--r--drivers/media/platform/omap3isp/isphist.c521
-rw-r--r--drivers/media/platform/omap3isp/isphist.h40
-rw-r--r--drivers/media/platform/omap3isp/isppreview.c2376
-rw-r--r--drivers/media/platform/omap3isp/isppreview.h174
-rw-r--r--drivers/media/platform/omap3isp/ispreg.h1531
-rw-r--r--drivers/media/platform/omap3isp/ispresizer.c1794
-rw-r--r--drivers/media/platform/omap3isp/ispresizer.h146
-rw-r--r--drivers/media/platform/omap3isp/ispstat.c1073
-rw-r--r--drivers/media/platform/omap3isp/ispstat.h168
-rw-r--r--drivers/media/platform/omap3isp/ispvideo.c1407
-rw-r--r--drivers/media/platform/omap3isp/ispvideo.h219
-rw-r--r--drivers/media/platform/omap3isp/luma_enhance_table.h42
-rw-r--r--drivers/media/platform/omap3isp/noise_filter_table.h30
-rw-r--r--drivers/media/platform/s3c-camif/Makefile5
-rw-r--r--drivers/media/platform/s3c-camif/camif-capture.c1681
-rw-r--r--drivers/media/platform/s3c-camif/camif-core.c665
-rw-r--r--drivers/media/platform/s3c-camif/camif-core.h393
-rw-r--r--drivers/media/platform/s3c-camif/camif-regs.c606
-rw-r--r--drivers/media/platform/s3c-camif/camif-regs.h269
-rw-r--r--drivers/media/platform/s5p-g2d/Makefile3
-rw-r--r--drivers/media/platform/s5p-g2d/g2d-hw.c117
-rw-r--r--drivers/media/platform/s5p-g2d/g2d-regs.h122
-rw-r--r--drivers/media/platform/s5p-g2d/g2d.c825
-rw-r--r--drivers/media/platform/s5p-g2d/g2d.h96
-rw-r--r--drivers/media/platform/s5p-jpeg/Makefile2
-rw-r--r--drivers/media/platform/s5p-jpeg/jpeg-core.c2208
-rw-r--r--drivers/media/platform/s5p-jpeg/jpeg-core.h209
-rw-r--r--drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.c279
-rw-r--r--drivers/media/platform/s5p-jpeg/jpeg-hw-exynos4.h42
-rw-r--r--drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.c343
-rw-r--r--drivers/media/platform/s5p-jpeg/jpeg-hw-s5p.h63
-rw-r--r--drivers/media/platform/s5p-jpeg/jpeg-regs.h377
-rw-r--r--drivers/media/platform/s5p-mfc/Makefile6
-rw-r--r--drivers/media/platform/s5p-mfc/regs-mfc-v6.h409
-rw-r--r--drivers/media/platform/s5p-mfc/regs-mfc-v7.h60
-rw-r--r--drivers/media/platform/s5p-mfc/regs-mfc-v8.h124
-rw-r--r--drivers/media/platform/s5p-mfc/regs-mfc.h459
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc.c1511
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_cmd.c29
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_cmd.h35
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_cmd_v5.c166
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_cmd_v5.h20
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_cmd_v6.c159
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_cmd_v6.h20
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_common.h714
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.c464
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_ctrl.h34
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_debug.h48
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_dec.c1223
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_dec.h24
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_enc.c2130
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_enc.h24
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_intr.c91
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_intr.h26
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_opr.c67
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_opr.h343
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.c1743
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_opr_v5.h85
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.c2342
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_opr_v6.h45
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_pm.c117
-rw-r--r--drivers/media/platform/s5p-mfc/s5p_mfc_pm.h24
-rw-r--r--drivers/media/platform/s5p-tv/Kconfig85
-rw-r--r--drivers/media/platform/s5p-tv/Makefile19
-rw-r--r--drivers/media/platform/s5p-tv/hdmi_drv.c1054
-rw-r--r--drivers/media/platform/s5p-tv/hdmiphy_drv.c325
-rw-r--r--drivers/media/platform/s5p-tv/mixer.h366
-rw-r--r--drivers/media/platform/s5p-tv/mixer_drv.c521
-rw-r--r--drivers/media/platform/s5p-tv/mixer_grp_layer.c270
-rw-r--r--drivers/media/platform/s5p-tv/mixer_reg.c553
-rw-r--r--drivers/media/platform/s5p-tv/mixer_video.c1153
-rw-r--r--drivers/media/platform/s5p-tv/mixer_vp_layer.c241
-rw-r--r--drivers/media/platform/s5p-tv/regs-hdmi.h146
-rw-r--r--drivers/media/platform/s5p-tv/regs-mixer.h122
-rw-r--r--drivers/media/platform/s5p-tv/regs-sdo.h63
-rw-r--r--drivers/media/platform/s5p-tv/regs-vp.h88
-rw-r--r--drivers/media/platform/s5p-tv/sdo_drv.c490
-rw-r--r--drivers/media/platform/s5p-tv/sii9234_drv.c408
-rw-r--r--drivers/media/platform/sh_veu.c1250
-rw-r--r--drivers/media/platform/sh_vou.c1462
-rw-r--r--drivers/media/platform/soc_camera/Kconfig91
-rw-r--r--drivers/media/platform/soc_camera/Makefile17
-rw-r--r--drivers/media/platform/soc_camera/atmel-isi.c1016
-rw-r--r--drivers/media/platform/soc_camera/mx1_camera.c866
-rw-r--r--drivers/media/platform/soc_camera/mx2_camera.c1627
-rw-r--r--drivers/media/platform/soc_camera/mx3_camera.c1270
-rw-r--r--drivers/media/platform/soc_camera/omap1_camera.c1723
-rw-r--r--drivers/media/platform/soc_camera/pxa_camera.c1817
-rw-r--r--drivers/media/platform/soc_camera/rcar_vin.c1498
-rw-r--r--drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c2039
-rw-r--r--drivers/media/platform/soc_camera/sh_mobile_csi2.c403
-rw-r--r--drivers/media/platform/soc_camera/soc_camera.c2102
-rw-r--r--drivers/media/platform/soc_camera/soc_camera_platform.c194
-rw-r--r--drivers/media/platform/soc_camera/soc_mediabus.c529
-rw-r--r--drivers/media/platform/soc_camera/soc_scale_crop.c402
-rw-r--r--drivers/media/platform/soc_camera/soc_scale_crop.h47
-rw-r--r--drivers/media/platform/ti-vpe/Makefile5
-rw-r--r--drivers/media/platform/ti-vpe/csc.c196
-rw-r--r--drivers/media/platform/ti-vpe/csc.h68
-rw-r--r--drivers/media/platform/ti-vpe/sc.c311
-rw-r--r--drivers/media/platform/ti-vpe/sc.h208
-rw-r--r--drivers/media/platform/ti-vpe/sc_coeff.h1342
-rw-r--r--drivers/media/platform/ti-vpe/vpdma.c912
-rw-r--r--drivers/media/platform/ti-vpe/vpdma.h216
-rw-r--r--drivers/media/platform/ti-vpe/vpdma_priv.h641
-rw-r--r--drivers/media/platform/ti-vpe/vpe.c2388
-rw-r--r--drivers/media/platform/ti-vpe/vpe_regs.h309
-rw-r--r--drivers/media/platform/timblogiw.c871
-rw-r--r--drivers/media/platform/via-camera.c1472
-rw-r--r--drivers/media/platform/via-camera.h93
-rw-r--r--drivers/media/platform/vino.c (renamed from drivers/media/video/vino.c)1696
-rw-r--r--drivers/media/platform/vino.h (renamed from drivers/media/video/vino.h)0
-rw-r--r--drivers/media/platform/vivi.c1541
-rw-r--r--drivers/media/platform/vsp1/Makefile6
-rw-r--r--drivers/media/platform/vsp1/vsp1.h82
-rw-r--r--drivers/media/platform/vsp1/vsp1_bru.c395
-rw-r--r--drivers/media/platform/vsp1/vsp1_bru.h39
-rw-r--r--drivers/media/platform/vsp1/vsp1_drv.c581
-rw-r--r--drivers/media/platform/vsp1/vsp1_entity.c191
-rw-r--r--drivers/media/platform/vsp1/vsp1_entity.h92
-rw-r--r--drivers/media/platform/vsp1/vsp1_hsit.c219
-rw-r--r--drivers/media/platform/vsp1/vsp1_hsit.h38
-rw-r--r--drivers/media/platform/vsp1/vsp1_lif.c237
-rw-r--r--drivers/media/platform/vsp1/vsp1_lif.h37
-rw-r--r--drivers/media/platform/vsp1/vsp1_lut.c251
-rw-r--r--drivers/media/platform/vsp1/vsp1_lut.h38
-rw-r--r--drivers/media/platform/vsp1/vsp1_regs.h695
-rw-r--r--drivers/media/platform/vsp1/vsp1_rpf.c226
-rw-r--r--drivers/media/platform/vsp1/vsp1_rwpf.c220
-rw-r--r--drivers/media/platform/vsp1/vsp1_rwpf.h67
-rw-r--r--drivers/media/platform/vsp1/vsp1_sru.c355
-rw-r--r--drivers/media/platform/vsp1/vsp1_sru.h41
-rw-r--r--drivers/media/platform/vsp1/vsp1_uds.c344
-rw-r--r--drivers/media/platform/vsp1/vsp1_uds.h40
-rw-r--r--drivers/media/platform/vsp1/vsp1_video.c1102
-rw-r--r--drivers/media/platform/vsp1/vsp1_video.h145
-rw-r--r--drivers/media/platform/vsp1/vsp1_wpf.c243
-rw-r--r--drivers/media/radio/Kconfig474
-rw-r--r--drivers/media/radio/Makefile23
-rw-r--r--drivers/media/radio/dsbr100.c734
-rw-r--r--drivers/media/radio/lm7000.h43
-rw-r--r--drivers/media/radio/radio-aimslab.c506
-rw-r--r--drivers/media/radio/radio-aztech.c452
-rw-r--r--drivers/media/radio/radio-cadet.c779
-rw-r--r--drivers/media/radio/radio-gemtek-pci.c498
-rw-r--r--drivers/media/radio/radio-gemtek.c613
-rw-r--r--drivers/media/radio/radio-isa.c394
-rw-r--r--drivers/media/radio/radio-isa.h114
-rw-r--r--drivers/media/radio/radio-keene.c420
-rw-r--r--drivers/media/radio/radio-ma901.c471
-rw-r--r--drivers/media/radio/radio-maestro.c472
-rw-r--r--drivers/media/radio/radio-maxiradio.c471
-rw-r--r--drivers/media/radio/radio-miropcm20.c245
-rw-r--r--drivers/media/radio/radio-mr800.c764
-rw-r--r--drivers/media/radio/radio-raremono.c387
-rw-r--r--drivers/media/radio/radio-rtrack2.c383
-rw-r--r--drivers/media/radio/radio-sf16fmi.c459
-rw-r--r--drivers/media/radio/radio-sf16fmr2.c666
-rw-r--r--drivers/media/radio/radio-shark.c423
-rw-r--r--drivers/media/radio/radio-shark2.c389
-rw-r--r--drivers/media/radio/radio-si470x.c1770
-rw-r--r--drivers/media/radio/radio-si476x.c1588
-rw-r--r--drivers/media/radio/radio-tea5764.c309
-rw-r--r--drivers/media/radio/radio-tea5777.c603
-rw-r--r--drivers/media/radio/radio-tea5777.h90
-rw-r--r--drivers/media/radio/radio-terratec.c442
-rw-r--r--drivers/media/radio/radio-timb.c190
-rw-r--r--drivers/media/radio/radio-trust.c416
-rw-r--r--drivers/media/radio/radio-typhoon.c473
-rw-r--r--drivers/media/radio/radio-wl1273.c2160
-rw-r--r--drivers/media/radio/radio-zoltrix.c503
-rw-r--r--drivers/media/radio/saa7706h.c444
-rw-r--r--drivers/media/radio/si470x/Kconfig37
-rw-r--r--drivers/media/radio/si470x/Makefile9
-rw-r--r--drivers/media/radio/si470x/radio-si470x-common.c759
-rw-r--r--drivers/media/radio/si470x/radio-si470x-i2c.c526
-rw-r--r--drivers/media/radio/si470x/radio-si470x-usb.c867
-rw-r--r--drivers/media/radio/si470x/radio-si470x.h227
-rw-r--r--drivers/media/radio/si4713/Kconfig40
-rw-r--r--drivers/media/radio/si4713/Makefile7
-rw-r--r--drivers/media/radio/si4713/radio-platform-si4713.c246
-rw-r--r--drivers/media/radio/si4713/radio-usb-si4713.c540
-rw-r--r--drivers/media/radio/si4713/si4713.c1557
-rw-r--r--drivers/media/radio/si4713/si4713.h240
-rw-r--r--drivers/media/radio/tea575x.c584
-rw-r--r--drivers/media/radio/tef6862.c210
-rw-r--r--drivers/media/radio/wl128x/Kconfig17
-rw-r--r--drivers/media/radio/wl128x/Makefile6
-rw-r--r--drivers/media/radio/wl128x/fmdrv.h241
-rw-r--r--drivers/media/radio/wl128x/fmdrv_common.c1688
-rw-r--r--drivers/media/radio/wl128x/fmdrv_common.h402
-rw-r--r--drivers/media/radio/wl128x/fmdrv_rx.c849
-rw-r--r--drivers/media/radio/wl128x/fmdrv_rx.h59
-rw-r--r--drivers/media/radio/wl128x/fmdrv_tx.c426
-rw-r--r--drivers/media/radio/wl128x/fmdrv_tx.h37
-rw-r--r--drivers/media/radio/wl128x/fmdrv_v4l2.c623
-rw-r--r--drivers/media/radio/wl128x/fmdrv_v4l2.h33
-rw-r--r--drivers/media/rc/Kconfig346
-rw-r--r--drivers/media/rc/Makefile35
-rw-r--r--drivers/media/rc/ati_remote.c1007
-rw-r--r--drivers/media/rc/ene_ir.c1230
-rw-r--r--drivers/media/rc/ene_ir.h250
-rw-r--r--drivers/media/rc/fintek-cir.c709
-rw-r--r--drivers/media/rc/fintek-cir.h245
-rw-r--r--drivers/media/rc/gpio-ir-recv.c253
-rw-r--r--drivers/media/rc/iguanair.c618
-rw-r--r--drivers/media/rc/img-ir/Kconfig61
-rw-r--r--drivers/media/rc/img-ir/Makefile11
-rw-r--r--drivers/media/rc/img-ir/img-ir-core.c176
-rw-r--r--drivers/media/rc/img-ir/img-ir-hw.c1066
-rw-r--r--drivers/media/rc/img-ir/img-ir-hw.h269
-rw-r--r--drivers/media/rc/img-ir/img-ir-jvc.c81
-rw-r--r--drivers/media/rc/img-ir/img-ir-nec.c151
-rw-r--r--drivers/media/rc/img-ir/img-ir-raw.c151
-rw-r--r--drivers/media/rc/img-ir/img-ir-raw.h60
-rw-r--r--drivers/media/rc/img-ir/img-ir-sanyo.c122
-rw-r--r--drivers/media/rc/img-ir/img-ir-sharp.c99
-rw-r--r--drivers/media/rc/img-ir/img-ir-sony.c145
-rw-r--r--drivers/media/rc/img-ir/img-ir.h166
-rw-r--r--drivers/media/rc/imon.c2480
-rw-r--r--drivers/media/rc/ir-jvc-decoder.c199
-rw-r--r--drivers/media/rc/ir-lirc-codec.c446
-rw-r--r--drivers/media/rc/ir-mce_kbd-decoder.c449
-rw-r--r--drivers/media/rc/ir-nec-decoder.c227
-rw-r--r--drivers/media/rc/ir-raw.c362
-rw-r--r--drivers/media/rc/ir-rc5-decoder.c198
-rw-r--r--drivers/media/rc/ir-rc5-sz-decoder.c154
-rw-r--r--drivers/media/rc/ir-rc6-decoder.c300
-rw-r--r--drivers/media/rc/ir-rx51.c485
-rw-r--r--drivers/media/rc/ir-sanyo-decoder.c205
-rw-r--r--drivers/media/rc/ir-sharp-decoder.c200
-rw-r--r--drivers/media/rc/ir-sony-decoder.c195
-rw-r--r--drivers/media/rc/ite-cir.c1729
-rw-r--r--drivers/media/rc/ite-cir.h484
-rw-r--r--drivers/media/rc/keymaps/Kconfig15
-rw-r--r--drivers/media/rc/keymaps/Makefile102
-rw-r--r--drivers/media/rc/keymaps/rc-adstech-dvb-t-pci.c90
-rw-r--r--drivers/media/rc/keymaps/rc-alink-dtu-m.c69
-rw-r--r--drivers/media/rc/keymaps/rc-anysee.c94
-rw-r--r--drivers/media/rc/keymaps/rc-apac-viewcomp.c81
-rw-r--r--drivers/media/rc/keymaps/rc-asus-pc39.c92
-rw-r--r--drivers/media/rc/keymaps/rc-asus-ps3-100.c91
-rw-r--r--drivers/media/rc/keymaps/rc-ati-tv-wonder-hd-600.c70
-rw-r--r--drivers/media/rc/keymaps/rc-ati-x10.c104
-rw-r--r--drivers/media/rc/keymaps/rc-avermedia-a16d.c76
-rw-r--r--drivers/media/rc/keymaps/rc-avermedia-cardbus.c98
-rw-r--r--drivers/media/rc/keymaps/rc-avermedia-dvbt.c79
-rw-r--r--drivers/media/rc/keymaps/rc-avermedia-m135a.c148
-rw-r--r--drivers/media/rc/keymaps/rc-avermedia-m733a-rm-k6.c96
-rw-r--r--drivers/media/rc/keymaps/rc-avermedia-rm-ks.c80
-rw-r--r--drivers/media/rc/keymaps/rc-avermedia.c87
-rw-r--r--drivers/media/rc/keymaps/rc-avertv-303.c86
-rw-r--r--drivers/media/rc/keymaps/rc-azurewave-ad-tu700.c103
-rw-r--r--drivers/media/rc/keymaps/rc-behold-columbus.c109
-rw-r--r--drivers/media/rc/keymaps/rc-behold.c142
-rw-r--r--drivers/media/rc/keymaps/rc-budget-ci-old.c94
-rw-r--r--drivers/media/rc/keymaps/rc-cinergy-1400.c85
-rw-r--r--drivers/media/rc/keymaps/rc-cinergy.c79
-rw-r--r--drivers/media/rc/keymaps/rc-delock-61959.c83
-rw-r--r--drivers/media/rc/keymaps/rc-dib0700-nec.c125
-rw-r--r--drivers/media/rc/keymaps/rc-dib0700-rc5.c236
-rw-r--r--drivers/media/rc/keymaps/rc-digitalnow-tinytwin.c99
-rw-r--r--drivers/media/rc/keymaps/rc-digittrade.c83
-rw-r--r--drivers/media/rc/keymaps/rc-dm1105-nec.c77
-rw-r--r--drivers/media/rc/keymaps/rc-dntv-live-dvb-t.c79
-rw-r--r--drivers/media/rc/keymaps/rc-dntv-live-dvbt-pro.c98
-rw-r--r--drivers/media/rc/keymaps/rc-em-terratec.c70
-rw-r--r--drivers/media/rc/keymaps/rc-encore-enltv-fm53.c82
-rw-r--r--drivers/media/rc/keymaps/rc-encore-enltv.c113
-rw-r--r--drivers/media/rc/keymaps/rc-encore-enltv2.c91
-rw-r--r--drivers/media/rc/keymaps/rc-evga-indtube.c62
-rw-r--r--drivers/media/rc/keymaps/rc-eztv.c97
-rw-r--r--drivers/media/rc/keymaps/rc-flydvb.c78
-rw-r--r--drivers/media/rc/keymaps/rc-flyvideo.c71
-rw-r--r--drivers/media/rc/keymaps/rc-fusionhdtv-mce.c99
-rw-r--r--drivers/media/rc/keymaps/rc-gadmei-rm008z.c82
-rw-r--r--drivers/media/rc/keymaps/rc-genius-tvgo-a11mce.c85
-rw-r--r--drivers/media/rc/keymaps/rc-gotview7135.c80
-rw-r--r--drivers/media/rc/keymaps/rc-hauppauge.c293
-rw-r--r--drivers/media/rc/keymaps/rc-imon-mce.c143
-rw-r--r--drivers/media/rc/keymaps/rc-imon-pad.c157
-rw-r--r--drivers/media/rc/keymaps/rc-iodata-bctv7e.c89
-rw-r--r--drivers/media/rc/keymaps/rc-it913x-v1.c95
-rw-r--r--drivers/media/rc/keymaps/rc-it913x-v2.c94
-rw-r--r--drivers/media/rc/keymaps/rc-kaiomy.c88
-rw-r--r--drivers/media/rc/keymaps/rc-kworld-315u.c84
-rw-r--r--drivers/media/rc/keymaps/rc-kworld-pc150u.c102
-rw-r--r--drivers/media/rc/keymaps/rc-kworld-plus-tv-analog.c100
-rw-r--r--drivers/media/rc/keymaps/rc-leadtek-y04g0051.c100
-rw-r--r--drivers/media/rc/keymaps/rc-lirc.c42
-rw-r--r--drivers/media/rc/keymaps/rc-lme2510.c111
-rw-r--r--drivers/media/rc/keymaps/rc-manli.c135
-rw-r--r--drivers/media/rc/keymaps/rc-medion-x10-digitainer.c123
-rw-r--r--drivers/media/rc/keymaps/rc-medion-x10-or2x.c108
-rw-r--r--drivers/media/rc/keymaps/rc-medion-x10.c117
-rw-r--r--drivers/media/rc/keymaps/rc-msi-digivox-ii.c68
-rw-r--r--drivers/media/rc/keymaps/rc-msi-digivox-iii.c86
-rw-r--r--drivers/media/rc/keymaps/rc-msi-tvanywhere-plus.c124
-rw-r--r--drivers/media/rc/keymaps/rc-msi-tvanywhere.c70
-rw-r--r--drivers/media/rc/keymaps/rc-nebula.c97
-rw-r--r--drivers/media/rc/keymaps/rc-nec-terratec-cinergy-xs.c158
-rw-r--r--drivers/media/rc/keymaps/rc-norwood.c86
-rw-r--r--drivers/media/rc/keymaps/rc-npgtech.c81
-rw-r--r--drivers/media/rc/keymaps/rc-pctv-sedna.c81
-rw-r--r--drivers/media/rc/keymaps/rc-pinnacle-color.c95
-rw-r--r--drivers/media/rc/keymaps/rc-pinnacle-grey.c90
-rw-r--r--drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.c71
-rw-r--r--drivers/media/rc/keymaps/rc-pixelview-002t.c78
-rw-r--r--drivers/media/rc/keymaps/rc-pixelview-mk12.c84
-rw-r--r--drivers/media/rc/keymaps/rc-pixelview-new.c84
-rw-r--r--drivers/media/rc/keymaps/rc-pixelview.c83
-rw-r--r--drivers/media/rc/keymaps/rc-powercolor-real-angel.c82
-rw-r--r--drivers/media/rc/keymaps/rc-proteus-2309.c70
-rw-r--r--drivers/media/rc/keymaps/rc-purpletv.c82
-rw-r--r--drivers/media/rc/keymaps/rc-pv951.c79
-rw-r--r--drivers/media/rc/keymaps/rc-rc6-mce.c119
-rw-r--r--drivers/media/rc/keymaps/rc-real-audio-220-32-keys.c79
-rw-r--r--drivers/media/rc/keymaps/rc-reddo.c86
-rw-r--r--drivers/media/rc/keymaps/rc-snapstream-firefly.c107
-rw-r--r--drivers/media/rc/keymaps/rc-streamzap.c83
-rw-r--r--drivers/media/rc/keymaps/rc-su3000.c75
-rw-r--r--drivers/media/rc/keymaps/rc-tbs-nec.c76
-rw-r--r--drivers/media/rc/keymaps/rc-technisat-usb2.c94
-rw-r--r--drivers/media/rc/keymaps/rc-terratec-cinergy-xs.c93
-rw-r--r--drivers/media/rc/keymaps/rc-terratec-slim-2.c73
-rw-r--r--drivers/media/rc/keymaps/rc-terratec-slim.c80
-rw-r--r--drivers/media/rc/keymaps/rc-tevii-nec.c89
-rw-r--r--drivers/media/rc/keymaps/rc-tivo.c99
-rw-r--r--drivers/media/rc/keymaps/rc-total-media-in-hand-02.c86
-rw-r--r--drivers/media/rc/keymaps/rc-total-media-in-hand.c86
-rw-r--r--drivers/media/rc/keymaps/rc-trekstor.c81
-rw-r--r--drivers/media/rc/keymaps/rc-tt-1500.c83
-rw-r--r--drivers/media/rc/keymaps/rc-twinhan1027.c88
-rw-r--r--drivers/media/rc/keymaps/rc-videomate-m1f.c93
-rw-r--r--drivers/media/rc/keymaps/rc-videomate-s350.c86
-rw-r--r--drivers/media/rc/keymaps/rc-videomate-tv-pvr.c88
-rw-r--r--drivers/media/rc/keymaps/rc-winfast-usbii-deluxe.c83
-rw-r--r--drivers/media/rc/keymaps/rc-winfast.c103
-rw-r--r--drivers/media/rc/lirc_dev.c834
-rw-r--r--drivers/media/rc/mceusb.c1455
-rw-r--r--drivers/media/rc/nuvoton-cir.c1244
-rw-r--r--drivers/media/rc/nuvoton-cir.h417
-rw-r--r--drivers/media/rc/rc-core-priv.h235
-rw-r--r--drivers/media/rc/rc-loopback.c246
-rw-r--r--drivers/media/rc/rc-main.c1487
-rw-r--r--drivers/media/rc/redrat3.c1095
-rw-r--r--drivers/media/rc/st_rc.c408
-rw-r--r--drivers/media/rc/streamzap.c524
-rw-r--r--drivers/media/rc/ttusbir.c449
-rw-r--r--drivers/media/rc/winbond-cir.c1228
-rw-r--r--drivers/media/tuners/Kconfig253
-rw-r--r--drivers/media/tuners/Makefile43
-rw-r--r--drivers/media/tuners/e4000.c621
-rw-r--r--drivers/media/tuners/e4000.h43
-rw-r--r--drivers/media/tuners/e4000_priv.h229
-rw-r--r--drivers/media/tuners/fc0011.c523
-rw-r--r--drivers/media/tuners/fc0011.h41
-rw-r--r--drivers/media/tuners/fc0012-priv.h32
-rw-r--r--drivers/media/tuners/fc0012.c518
-rw-r--r--drivers/media/tuners/fc0012.h66
-rw-r--r--drivers/media/tuners/fc0013-priv.h44
-rw-r--r--drivers/media/tuners/fc0013.c634
-rw-r--r--drivers/media/tuners/fc0013.h57
-rw-r--r--drivers/media/tuners/fc001x-common.h39
-rw-r--r--drivers/media/tuners/fc2580.c555
-rw-r--r--drivers/media/tuners/fc2580.h52
-rw-r--r--drivers/media/tuners/fc2580_priv.h135
-rw-r--r--drivers/media/tuners/m88ts2022.c674
-rw-r--r--drivers/media/tuners/m88ts2022.h54
-rw-r--r--drivers/media/tuners/m88ts2022_priv.h34
-rw-r--r--drivers/media/tuners/max2165.c433
-rw-r--r--drivers/media/tuners/max2165.h49
-rw-r--r--drivers/media/tuners/max2165_priv.h60
-rw-r--r--drivers/media/tuners/mc44s803.c379
-rw-r--r--drivers/media/tuners/mc44s803.h47
-rw-r--r--drivers/media/tuners/mc44s803_priv.h208
-rw-r--r--drivers/media/tuners/mt2060.c (renamed from drivers/media/common/tuners/mt2060.c)16
-rw-r--r--drivers/media/tuners/mt2060.h (renamed from drivers/media/common/tuners/mt2060.h)2
-rw-r--r--drivers/media/tuners/mt2060_priv.h (renamed from drivers/media/common/tuners/mt2060_priv.h)1
-rw-r--r--drivers/media/tuners/mt2063.c2303
-rw-r--r--drivers/media/tuners/mt2063.h28
-rw-r--r--drivers/media/tuners/mt20xx.c (renamed from drivers/media/common/tuners/mt20xx.c)27
-rw-r--r--drivers/media/tuners/mt20xx.h (renamed from drivers/media/common/tuners/mt20xx.h)2
-rw-r--r--drivers/media/tuners/mt2131.c (renamed from drivers/media/common/tuners/mt2131.c)21
-rw-r--r--drivers/media/tuners/mt2131.h (renamed from drivers/media/common/tuners/mt2131.h)2
-rw-r--r--drivers/media/tuners/mt2131_priv.h (renamed from drivers/media/common/tuners/mt2131_priv.h)1
-rw-r--r--drivers/media/tuners/mt2266.c (renamed from drivers/media/common/tuners/mt2266.c)26
-rw-r--r--drivers/media/tuners/mt2266.h (renamed from drivers/media/common/tuners/mt2266.h)2
-rw-r--r--drivers/media/tuners/mxl5005s.c (renamed from drivers/media/common/tuners/mxl5005s.c)108
-rw-r--r--drivers/media/tuners/mxl5005s.h (renamed from drivers/media/common/tuners/mxl5005s.h)9
-rw-r--r--drivers/media/tuners/mxl5007t.c928
-rw-r--r--drivers/media/tuners/mxl5007t.h (renamed from drivers/media/common/tuners/mxl5007t.h)2
-rw-r--r--drivers/media/tuners/qt1010.c (renamed from drivers/media/common/tuners/qt1010.c)87
-rw-r--r--drivers/media/tuners/qt1010.h (renamed from drivers/media/common/tuners/qt1010.h)2
-rw-r--r--drivers/media/tuners/qt1010_priv.h (renamed from drivers/media/common/tuners/qt1010_priv.h)1
-rw-r--r--drivers/media/tuners/r820t.c2356
-rw-r--r--drivers/media/tuners/r820t.h59
-rw-r--r--drivers/media/tuners/si2157.c260
-rw-r--r--drivers/media/tuners/si2157.h34
-rw-r--r--drivers/media/tuners/si2157_priv.h37
-rw-r--r--drivers/media/tuners/tda18212.c348
-rw-r--r--drivers/media/tuners/tda18212.h54
-rw-r--r--drivers/media/tuners/tda18218.c357
-rw-r--r--drivers/media/tuners/tda18218.h45
-rw-r--r--drivers/media/tuners/tda18218_priv.h97
-rw-r--r--drivers/media/tuners/tda18271-common.c (renamed from drivers/media/common/tuners/tda18271-common.c)207
-rw-r--r--drivers/media/tuners/tda18271-fe.c (renamed from drivers/media/common/tuners/tda18271-fe.c)348
-rw-r--r--drivers/media/tuners/tda18271-maps.c (renamed from drivers/media/common/tuners/tda18271-maps.c)26
-rw-r--r--drivers/media/tuners/tda18271-priv.h (renamed from drivers/media/common/tuners/tda18271-priv.h)55
-rw-r--r--drivers/media/tuners/tda18271.h139
-rw-r--r--drivers/media/tuners/tda827x.c (renamed from drivers/media/common/tuners/tda827x.c)298
-rw-r--r--drivers/media/tuners/tda827x.h (renamed from drivers/media/common/tuners/tda827x.h)5
-rw-r--r--drivers/media/tuners/tda8290.c (renamed from drivers/media/common/tuners/tda8290.c)212
-rw-r--r--drivers/media/tuners/tda8290.h (renamed from drivers/media/common/tuners/tda8290.h)14
-rw-r--r--drivers/media/tuners/tda9887.c (renamed from drivers/media/common/tuners/tda9887.c)30
-rw-r--r--drivers/media/tuners/tda9887.h (renamed from drivers/media/common/tuners/tda9887.h)2
-rw-r--r--drivers/media/tuners/tea5761.c (renamed from drivers/media/common/tuners/tea5761.c)36
-rw-r--r--drivers/media/tuners/tea5761.h (renamed from drivers/media/common/tuners/tea5761.h)2
-rw-r--r--drivers/media/tuners/tea5767.c (renamed from drivers/media/common/tuners/tea5767.c)3
-rw-r--r--drivers/media/tuners/tea5767.h (renamed from drivers/media/common/tuners/tea5767.h)2
-rw-r--r--drivers/media/tuners/tua9001.c294
-rw-r--r--drivers/media/tuners/tua9001.h66
-rw-r--r--drivers/media/tuners/tua9001_priv.h34
-rw-r--r--drivers/media/tuners/tuner-i2c.h (renamed from drivers/media/common/tuners/tuner-i2c.h)1
-rw-r--r--drivers/media/tuners/tuner-simple.c (renamed from drivers/media/common/tuners/tuner-simple.c)137
-rw-r--r--drivers/media/tuners/tuner-simple.h (renamed from drivers/media/common/tuners/tuner-simple.h)2
-rw-r--r--drivers/media/tuners/tuner-types.c (renamed from drivers/media/common/tuners/tuner-types.c)247
-rw-r--r--drivers/media/tuners/tuner-xc2028-types.h (renamed from drivers/media/common/tuners/tuner-xc2028-types.h)2
-rw-r--r--drivers/media/tuners/tuner-xc2028.c1532
-rw-r--r--drivers/media/tuners/tuner-xc2028.h (renamed from drivers/media/common/tuners/tuner-xc2028.h)6
-rw-r--r--drivers/media/tuners/tuner_it913x.c447
-rw-r--r--drivers/media/tuners/tuner_it913x.h45
-rw-r--r--drivers/media/tuners/tuner_it913x_priv.h78
-rw-r--r--drivers/media/tuners/xc4000.c1757
-rw-r--r--drivers/media/tuners/xc4000.h67
-rw-r--r--drivers/media/tuners/xc5000.c1385
-rw-r--r--drivers/media/tuners/xc5000.h (renamed from drivers/media/common/tuners/xc5000.h)21
-rw-r--r--drivers/media/usb/Kconfig56
-rw-r--r--drivers/media/usb/Makefile22
-rw-r--r--drivers/media/usb/au0828/Kconfig28
-rw-r--r--drivers/media/usb/au0828/Makefile13
-rw-r--r--drivers/media/usb/au0828/au0828-cards.c360
-rw-r--r--drivers/media/usb/au0828/au0828-cards.h (renamed from drivers/media/video/au0828/au0828-cards.h)0
-rw-r--r--drivers/media/usb/au0828/au0828-core.c321
-rw-r--r--drivers/media/usb/au0828/au0828-dvb.c620
-rw-r--r--drivers/media/usb/au0828/au0828-i2c.c402
-rw-r--r--drivers/media/usb/au0828/au0828-reg.h66
-rw-r--r--drivers/media/usb/au0828/au0828-vbi.c138
-rw-r--r--drivers/media/usb/au0828/au0828-video.c2051
-rw-r--r--drivers/media/usb/au0828/au0828.h321
-rw-r--r--drivers/media/usb/b2c2/Kconfig15
-rw-r--r--drivers/media/usb/b2c2/Makefile5
-rw-r--r--drivers/media/usb/b2c2/flexcop-usb.c587
-rw-r--r--drivers/media/usb/b2c2/flexcop-usb.h111
-rw-r--r--drivers/media/usb/cpia2/Kconfig9
-rw-r--r--drivers/media/usb/cpia2/Makefile (renamed from drivers/media/video/cpia2/Makefile)0
-rw-r--r--drivers/media/usb/cpia2/cpia2.h (renamed from drivers/media/video/cpia2/cpia2.h)47
-rw-r--r--drivers/media/usb/cpia2/cpia2_core.c (renamed from drivers/media/video/cpia2/cpia2_core.c)290
-rw-r--r--drivers/media/usb/cpia2/cpia2_registers.h (renamed from drivers/media/video/cpia2/cpia2_registers.h)0
-rw-r--r--drivers/media/usb/cpia2/cpia2_usb.c (renamed from drivers/media/video/cpia2/cpia2_usb.c)83
-rw-r--r--drivers/media/usb/cpia2/cpia2_v4l.c1269
-rw-r--r--drivers/media/usb/cx231xx/Kconfig53
-rw-r--r--drivers/media/usb/cx231xx/Makefile15
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-417.c1996
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-audio.c775
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-avcore.c3086
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-cards.c1483
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-conf-reg.h495
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-core.c1736
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-dif.h3178
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-dvb.c797
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-i2c.c541
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-input.c119
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c795
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h226
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-reg.h1564
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-vbi.c706
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-vbi.h65
-rw-r--r--drivers/media/usb/cx231xx/cx231xx-video.c2189
-rw-r--r--drivers/media/usb/cx231xx/cx231xx.h1009
-rw-r--r--drivers/media/usb/dvb-usb-v2/Kconfig142
-rw-r--r--drivers/media/usb/dvb-usb-v2/Makefile43
-rw-r--r--drivers/media/usb/dvb-usb-v2/af9015.c1500
-rw-r--r--drivers/media/usb/dvb-usb-v2/af9015.h153
-rw-r--r--drivers/media/usb/dvb-usb-v2/af9035.c1581
-rw-r--r--drivers/media/usb/dvb-usb-v2/af9035.h142
-rw-r--r--drivers/media/usb/dvb-usb-v2/anysee.c1328
-rw-r--r--drivers/media/usb/dvb-usb-v2/anysee.h (renamed from drivers/media/dvb/dvb-usb/anysee.h)43
-rw-r--r--drivers/media/usb/dvb-usb-v2/au6610.c213
-rw-r--r--drivers/media/usb/dvb-usb-v2/au6610.h (renamed from drivers/media/dvb/dvb-usb/au6610.h)13
-rw-r--r--drivers/media/usb/dvb-usb-v2/az6007.c982
-rw-r--r--drivers/media/usb/dvb-usb-v2/ce6230.c292
-rw-r--r--drivers/media/usb/dvb-usb-v2/ce6230.h50
-rw-r--r--drivers/media/usb/dvb-usb-v2/dvb_usb.h406
-rw-r--r--drivers/media/usb/dvb-usb-v2/dvb_usb_common.h35
-rw-r--r--drivers/media/usb/dvb-usb-v2/dvb_usb_core.c1054
-rw-r--r--drivers/media/usb/dvb-usb-v2/dvb_usb_urb.c104
-rw-r--r--drivers/media/usb/dvb-usb-v2/ec168.c385
-rw-r--r--drivers/media/usb/dvb-usb-v2/ec168.h53
-rw-r--r--drivers/media/usb/dvb-usb-v2/gl861.c177
-rw-r--r--drivers/media/usb/dvb-usb-v2/gl861.h12
-rw-r--r--drivers/media/usb/dvb-usb-v2/lmedm04.c1379
-rw-r--r--drivers/media/usb/dvb-usb-v2/lmedm04.h175
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-demod.c612
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-demod.h55
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-gpio.c763
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-gpio.h56
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-i2c.c850
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-i2c.h35
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-phy.c343
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-phy.h53
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-reg.h179
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c525
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.h88
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf.c1433
-rw-r--r--drivers/media/usb/dvb-usb-v2/mxl111sf.h160
-rw-r--r--drivers/media/usb/dvb-usb-v2/rtl28xxu.c1571
-rw-r--r--drivers/media/usb/dvb-usb-v2/rtl28xxu.h255
-rw-r--r--drivers/media/usb/dvb-usb-v2/usb_urb.c362
-rw-r--r--drivers/media/usb/dvb-usb/Kconfig319
-rw-r--r--drivers/media/usb/dvb-usb/Makefile83
-rw-r--r--drivers/media/usb/dvb-usb/a800.c191
-rw-r--r--drivers/media/usb/dvb-usb/af9005-fe.c (renamed from drivers/media/dvb/dvb-usb/af9005-fe.c)117
-rw-r--r--drivers/media/usb/dvb-usb/af9005-remote.c157
-rw-r--r--drivers/media/usb/dvb-usb/af9005-script.h (renamed from drivers/media/dvb/dvb-usb/af9005-script.h)0
-rw-r--r--drivers/media/usb/dvb-usb/af9005.c (renamed from drivers/media/dvb/dvb-usb/af9005.c)111
-rw-r--r--drivers/media/usb/dvb-usb/af9005.h (renamed from drivers/media/dvb/dvb-usb/af9005.h)6
-rw-r--r--drivers/media/usb/dvb-usb/az6027.c1188
-rw-r--r--drivers/media/usb/dvb-usb/az6027.h14
-rw-r--r--drivers/media/usb/dvb-usb/cinergyT2-core.c253
-rw-r--r--drivers/media/usb/dvb-usb/cinergyT2-fe.c (renamed from drivers/media/dvb/dvb-usb/cinergyT2-fe.c)38
-rw-r--r--drivers/media/usb/dvb-usb/cinergyT2.h (renamed from drivers/media/dvb/dvb-usb/cinergyT2.h)0
-rw-r--r--drivers/media/usb/dvb-usb/cxusb.c2087
-rw-r--r--drivers/media/usb/dvb-usb/cxusb.h (renamed from drivers/media/dvb/dvb-usb/cxusb.h)0
-rw-r--r--drivers/media/usb/dvb-usb/dib0700.h75
-rw-r--r--drivers/media/usb/dvb-usb/dib0700_core.c873
-rw-r--r--drivers/media/usb/dvb-usb/dib0700_devices.c4802
-rw-r--r--drivers/media/usb/dvb-usb/dib07x0.h (renamed from drivers/media/dvb/dvb-usb/dib07x0.h)0
-rw-r--r--drivers/media/usb/dvb-usb/dibusb-common.c488
-rw-r--r--drivers/media/usb/dvb-usb/dibusb-mb.c (renamed from drivers/media/dvb/dvb-usb/dibusb-mb.c)94
-rw-r--r--drivers/media/usb/dvb-usb/dibusb-mc.c (renamed from drivers/media/dvb/dvb-usb/dibusb-mc.c)44
-rw-r--r--drivers/media/usb/dvb-usb/dibusb.h (renamed from drivers/media/dvb/dvb-usb/dibusb.h)2
-rw-r--r--drivers/media/usb/dvb-usb/digitv.c354
-rw-r--r--drivers/media/usb/dvb-usb/digitv.h (renamed from drivers/media/dvb/dvb-usb/digitv.h)0
-rw-r--r--drivers/media/usb/dvb-usb/dtt200u-fe.c (renamed from drivers/media/dvb/dvb-usb/dtt200u-fe.c)33
-rw-r--r--drivers/media/usb/dvb-usb/dtt200u.c (renamed from drivers/media/dvb/dvb-usb/dtt200u.c)115
-rw-r--r--drivers/media/usb/dvb-usb/dtt200u.h (renamed from drivers/media/dvb/dvb-usb/dtt200u.h)0
-rw-r--r--drivers/media/usb/dvb-usb/dtv5100.c (renamed from drivers/media/dvb/dvb-usb/dtv5100.c)32
-rw-r--r--drivers/media/usb/dvb-usb/dtv5100.h (renamed from drivers/media/dvb/dvb-usb/dtv5100.h)0
-rw-r--r--drivers/media/usb/dvb-usb/dvb-usb-common.h (renamed from drivers/media/dvb/dvb-usb/dvb-usb-common.h)0
-rw-r--r--drivers/media/usb/dvb-usb/dvb-usb-dvb.c288
-rw-r--r--drivers/media/usb/dvb-usb/dvb-usb-firmware.c (renamed from drivers/media/dvb/dvb-usb/dvb-usb-firmware.c)0
-rw-r--r--drivers/media/usb/dvb-usb/dvb-usb-i2c.c (renamed from drivers/media/dvb/dvb-usb/dvb-usb-i2c.c)3
-rw-r--r--drivers/media/usb/dvb-usb/dvb-usb-init.c304
-rw-r--r--drivers/media/usb/dvb-usb/dvb-usb-remote.c391
-rw-r--r--drivers/media/usb/dvb-usb/dvb-usb-urb.c121
-rw-r--r--drivers/media/usb/dvb-usb/dvb-usb.h (renamed from drivers/media/dvb/dvb-usb/dvb-usb.h)153
-rw-r--r--drivers/media/usb/dvb-usb/dw2102.c2159
-rw-r--r--drivers/media/usb/dvb-usb/dw2102.h9
-rw-r--r--drivers/media/usb/dvb-usb/friio-fe.c472
-rw-r--r--drivers/media/usb/dvb-usb/friio.c522
-rw-r--r--drivers/media/usb/dvb-usb/friio.h99
-rw-r--r--drivers/media/usb/dvb-usb/gp8psk-fe.c (renamed from drivers/media/dvb/dvb-usb/gp8psk-fe.c)45
-rw-r--r--drivers/media/usb/dvb-usb/gp8psk.c (renamed from drivers/media/dvb/dvb-usb/gp8psk.c)65
-rw-r--r--drivers/media/usb/dvb-usb/gp8psk.h (renamed from drivers/media/dvb/dvb-usb/gp8psk.h)11
-rw-r--r--drivers/media/usb/dvb-usb/m920x.c1276
-rw-r--r--drivers/media/usb/dvb-usb/m920x.h (renamed from drivers/media/dvb/dvb-usb/m920x.h)2
-rw-r--r--drivers/media/usb/dvb-usb/nova-t-usb2.c233
-rw-r--r--drivers/media/usb/dvb-usb/opera1.c (renamed from drivers/media/dvb/dvb-usb/opera1.c)147
-rw-r--r--drivers/media/usb/dvb-usb/pctv452e.c1063
-rw-r--r--drivers/media/usb/dvb-usb/technisat-usb2.c790
-rw-r--r--drivers/media/usb/dvb-usb/ttusb2.c826
-rw-r--r--drivers/media/usb/dvb-usb/ttusb2.h (renamed from drivers/media/dvb/dvb-usb/ttusb2.h)0
-rw-r--r--drivers/media/usb/dvb-usb/umt-010.c (renamed from drivers/media/dvb/dvb-usb/umt-010.c)29
-rw-r--r--drivers/media/usb/dvb-usb/usb-urb.c (renamed from drivers/media/dvb/dvb-usb/usb-urb.c)15
-rw-r--r--drivers/media/usb/dvb-usb/vp702x-fe.c (renamed from drivers/media/dvb/dvb-usb/vp702x-fe.c)100
-rw-r--r--drivers/media/usb/dvb-usb/vp702x.c444
-rw-r--r--drivers/media/usb/dvb-usb/vp702x.h (renamed from drivers/media/dvb/dvb-usb/vp702x.h)7
-rw-r--r--drivers/media/usb/dvb-usb/vp7045-fe.c (renamed from drivers/media/dvb/dvb-usb/vp7045-fe.c)32
-rw-r--r--drivers/media/usb/dvb-usb/vp7045.c302
-rw-r--r--drivers/media/usb/dvb-usb/vp7045.h (renamed from drivers/media/dvb/dvb-usb/vp7045.h)3
-rw-r--r--drivers/media/usb/em28xx/Kconfig73
-rw-r--r--drivers/media/usb/em28xx/Makefile16
-rw-r--r--drivers/media/usb/em28xx/em28xx-audio.c1055
-rw-r--r--drivers/media/usb/em28xx/em28xx-camera.c458
-rw-r--r--drivers/media/usb/em28xx/em28xx-cards.c3529
-rw-r--r--drivers/media/usb/em28xx/em28xx-core.c1138
-rw-r--r--drivers/media/usb/em28xx/em28xx-dvb.c1767
-rw-r--r--drivers/media/usb/em28xx/em28xx-i2c.c981
-rw-r--r--drivers/media/usb/em28xx/em28xx-input.c896
-rw-r--r--drivers/media/usb/em28xx/em28xx-reg.h266
-rw-r--r--drivers/media/usb/em28xx/em28xx-v4l.h20
-rw-r--r--drivers/media/usb/em28xx/em28xx-vbi.c115
-rw-r--r--drivers/media/usb/em28xx/em28xx-video.c2644
-rw-r--r--drivers/media/usb/em28xx/em28xx.h807
-rw-r--r--drivers/media/usb/gspca/Kconfig444
-rw-r--r--drivers/media/usb/gspca/Makefile97
-rw-r--r--drivers/media/usb/gspca/autogain_functions.c178
-rw-r--r--drivers/media/usb/gspca/benq.c289
-rw-r--r--drivers/media/usb/gspca/conex.c (renamed from drivers/media/video/gspca/conex.c)241
-rw-r--r--drivers/media/usb/gspca/cpia1.c1902
-rw-r--r--drivers/media/usb/gspca/dtcs033.c441
-rw-r--r--drivers/media/usb/gspca/etoms.c (renamed from drivers/media/video/gspca/etoms.c)299
-rw-r--r--drivers/media/usb/gspca/finepix.c310
-rw-r--r--drivers/media/usb/gspca/gl860/Kconfig8
-rw-r--r--drivers/media/usb/gspca/gl860/Makefile10
-rw-r--r--drivers/media/usb/gspca/gl860/gl860-mi1320.c536
-rw-r--r--drivers/media/usb/gspca/gl860/gl860-mi2020.c805
-rw-r--r--drivers/media/usb/gspca/gl860/gl860-ov2640.c489
-rw-r--r--drivers/media/usb/gspca/gl860/gl860-ov9655.c336
-rw-r--r--drivers/media/usb/gspca/gl860/gl860.c741
-rw-r--r--drivers/media/usb/gspca/gl860/gl860.h105
-rw-r--r--drivers/media/usb/gspca/gspca.c2271
-rw-r--r--drivers/media/usb/gspca/gspca.h239
-rw-r--r--drivers/media/usb/gspca/jeilinj.c549
-rw-r--r--drivers/media/usb/gspca/jl2005bcd.c539
-rw-r--r--drivers/media/usb/gspca/jpeg.h170
-rw-r--r--drivers/media/usb/gspca/kinect.c410
-rw-r--r--drivers/media/usb/gspca/konica.c483
-rw-r--r--drivers/media/usb/gspca/m5602/Kconfig (renamed from drivers/media/video/gspca/m5602/Kconfig)0
-rw-r--r--drivers/media/usb/gspca/m5602/Makefile11
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_bridge.h180
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_core.c438
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_mt9m111.c457
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_mt9m111.h273
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_ov7660.c318
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_ov7660.h263
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_ov9650.c636
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_ov9650.h309
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_po1030.c518
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_po1030.h274
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_s5k4aa.c564
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_s5k4aa.h285
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_s5k83a.c456
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_s5k83a.h188
-rw-r--r--drivers/media/usb/gspca/m5602/m5602_sensor.h (renamed from drivers/media/video/gspca/m5602/m5602_sensor.h)23
-rw-r--r--drivers/media/usb/gspca/mars.c440
-rw-r--r--drivers/media/usb/gspca/mr97310a.c1091
-rw-r--r--drivers/media/usb/gspca/nw80x.c2111
-rw-r--r--drivers/media/usb/gspca/ov519.c5040
-rw-r--r--drivers/media/usb/gspca/ov534.c1544
-rw-r--r--drivers/media/usb/gspca/ov534_9.c1832
-rw-r--r--drivers/media/usb/gspca/pac207.c489
-rw-r--r--drivers/media/usb/gspca/pac7302.c966
-rw-r--r--drivers/media/usb/gspca/pac7311.c700
-rw-r--r--drivers/media/usb/gspca/pac_common.h134
-rw-r--r--drivers/media/usb/gspca/se401.c739
-rw-r--r--drivers/media/usb/gspca/se401.h90
-rw-r--r--drivers/media/usb/gspca/sn9c2028.c735
-rw-r--r--drivers/media/usb/gspca/sn9c2028.h51
-rw-r--r--drivers/media/usb/gspca/sn9c20x.c2396
-rw-r--r--drivers/media/usb/gspca/sonixb.c1477
-rw-r--r--drivers/media/usb/gspca/sonixj.c2992
-rw-r--r--drivers/media/usb/gspca/spca1528.c445
-rw-r--r--drivers/media/usb/gspca/spca500.c (renamed from drivers/media/video/gspca/spca500.c)317
-rw-r--r--drivers/media/usb/gspca/spca501.c (renamed from drivers/media/video/gspca/spca501.c)358
-rw-r--r--drivers/media/usb/gspca/spca505.c805
-rw-r--r--drivers/media/usb/gspca/spca506.c611
-rw-r--r--drivers/media/usb/gspca/spca508.c1535
-rw-r--r--drivers/media/usb/gspca/spca561.c932
-rw-r--r--drivers/media/usb/gspca/sq905.c439
-rw-r--r--drivers/media/usb/gspca/sq905c.c342
-rw-r--r--drivers/media/usb/gspca/sq930x.c1163
-rw-r--r--drivers/media/usb/gspca/stk014.c447
-rw-r--r--drivers/media/usb/gspca/stk1135.c688
-rw-r--r--drivers/media/usb/gspca/stk1135.h57
-rw-r--r--drivers/media/usb/gspca/stv0680.c353
-rw-r--r--drivers/media/usb/gspca/stv06xx/Kconfig (renamed from drivers/media/video/gspca/stv06xx/Kconfig)0
-rw-r--r--drivers/media/usb/gspca/stv06xx/Makefile10
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx.c639
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx.h (renamed from drivers/media/video/gspca/stv06xx/stv06xx.h)25
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx_hdcs.c544
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx_hdcs.h (renamed from drivers/media/video/gspca/stv06xx/stv06xx_hdcs.h)87
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.c436
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx_pb0100.h144
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx_sensor.h (renamed from drivers/media/video/gspca/stv06xx/stv06xx_sensor.h)19
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx_st6422.c287
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx_st6422.h52
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx_vv6410.c281
-rw-r--r--drivers/media/usb/gspca/stv06xx/stv06xx_vv6410.h255
-rw-r--r--drivers/media/usb/gspca/sunplus.c1076
-rw-r--r--drivers/media/usb/gspca/t613.c1054
-rw-r--r--drivers/media/usb/gspca/topro.c4978
-rw-r--r--drivers/media/usb/gspca/tv8532.c379
-rw-r--r--drivers/media/usb/gspca/vc032x.c3843
-rw-r--r--drivers/media/usb/gspca/vicam.c364
-rw-r--r--drivers/media/usb/gspca/w996Xcf.c570
-rw-r--r--drivers/media/usb/gspca/xirlink_cit.c3139
-rw-r--r--drivers/media/usb/gspca/zc3xx-reg.h (renamed from drivers/media/video/gspca/zc3xx-reg.h)2
-rw-r--r--drivers/media/usb/gspca/zc3xx.c7021
-rw-r--r--drivers/media/usb/hdpvr/Kconfig10
-rw-r--r--drivers/media/usb/hdpvr/Makefile7
-rw-r--r--drivers/media/usb/hdpvr/hdpvr-control.c190
-rw-r--r--drivers/media/usb/hdpvr/hdpvr-core.c471
-rw-r--r--drivers/media/usb/hdpvr/hdpvr-i2c.c230
-rw-r--r--drivers/media/usb/hdpvr/hdpvr-video.c1255
-rw-r--r--drivers/media/usb/hdpvr/hdpvr.h331
-rw-r--r--drivers/media/usb/pvrusb2/Kconfig65
-rw-r--r--drivers/media/usb/pvrusb2/Makefile22
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-audio.c96
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-audio.h (renamed from drivers/media/video/pvrusb2/pvrusb2-audio.h)6
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-context.c (renamed from drivers/media/video/pvrusb2/pvrusb2-context.c)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-context.h (renamed from drivers/media/video/pvrusb2/pvrusb2-context.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-cs53l32a.c95
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-cs53l32a.h48
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-ctrl.c (renamed from drivers/media/video/pvrusb2/pvrusb2-ctrl.c)24
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-ctrl.h (renamed from drivers/media/video/pvrusb2/pvrusb2-ctrl.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-cx2584x-v4l.c166
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-cx2584x-v4l.h (renamed from drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.h)4
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-debug.h (renamed from drivers/media/video/pvrusb2/pvrusb2-debug.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-debugifc.c (renamed from drivers/media/video/pvrusb2/pvrusb2-debugifc.c)37
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-debugifc.h (renamed from drivers/media/video/pvrusb2/pvrusb2-debugifc.h)12
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-devattr.c576
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-devattr.h199
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-dvb.c (renamed from drivers/media/video/pvrusb2/pvrusb2-dvb.c)3
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-dvb.h (renamed from drivers/media/video/pvrusb2/pvrusb2-dvb.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-eeprom.c (renamed from drivers/media/video/pvrusb2/pvrusb2-eeprom.c)3
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-eeprom.h (renamed from drivers/media/video/pvrusb2/pvrusb2-eeprom.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-encoder.c (renamed from drivers/media/video/pvrusb2/pvrusb2-encoder.c)10
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-encoder.h (renamed from drivers/media/video/pvrusb2/pvrusb2-encoder.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-fx2-cmd.h (renamed from drivers/media/video/pvrusb2/pvrusb2-fx2-cmd.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-hdw-internal.h (renamed from drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h)78
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-hdw.c (renamed from drivers/media/video/pvrusb2/pvrusb2-hdw.c)1062
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-hdw.h (renamed from drivers/media/video/pvrusb2/pvrusb2-hdw.h)28
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-i2c-core.c698
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-i2c-core.h40
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-io.c (renamed from drivers/media/video/pvrusb2/pvrusb2-io.c)4
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-io.h (renamed from drivers/media/video/pvrusb2/pvrusb2-io.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-ioread.c (renamed from drivers/media/video/pvrusb2/pvrusb2-ioread.c)5
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-ioread.h (renamed from drivers/media/video/pvrusb2/pvrusb2-ioread.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-main.c (renamed from drivers/media/video/pvrusb2/pvrusb2-main.c)10
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-std.c (renamed from drivers/media/video/pvrusb2/pvrusb2-std.c)10
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-std.h (renamed from drivers/media/video/pvrusb2/pvrusb2-std.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-sysfs.c (renamed from drivers/media/video/pvrusb2/pvrusb2-sysfs.c)80
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-sysfs.h (renamed from drivers/media/video/pvrusb2/pvrusb2-sysfs.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-util.h (renamed from drivers/media/video/pvrusb2/pvrusb2-util.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-v4l2.c1378
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-v4l2.h (renamed from drivers/media/video/pvrusb2/pvrusb2-v4l2.h)0
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-video-v4l.c114
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-video-v4l.h (renamed from drivers/media/video/pvrusb2/pvrusb2-video-v4l.h)7
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-wm8775.c70
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2-wm8775.h (renamed from drivers/media/video/pvrusb2/pvrusb2-wm8775.h)4
-rw-r--r--drivers/media/usb/pvrusb2/pvrusb2.h (renamed from drivers/media/video/pvrusb2/pvrusb2.h)0
-rw-r--r--drivers/media/usb/pwc/Kconfig48
-rw-r--r--drivers/media/usb/pwc/Makefile4
-rw-r--r--drivers/media/usb/pwc/philips.txt (renamed from drivers/media/video/pwc/philips.txt)2
-rw-r--r--drivers/media/usb/pwc/pwc-ctrl.c555
-rw-r--r--drivers/media/usb/pwc/pwc-dec1.c (renamed from drivers/media/video/pwc/pwc-dec1.c)26
-rw-r--r--drivers/media/usb/pwc/pwc-dec1.h (renamed from drivers/media/video/pwc/pwc-dec1.h)12
-rw-r--r--drivers/media/usb/pwc/pwc-dec23.c691
-rw-r--r--drivers/media/usb/pwc/pwc-dec23.h (renamed from drivers/media/video/pwc/pwc-dec23.h)24
-rw-r--r--drivers/media/usb/pwc/pwc-if.c1169
-rw-r--r--drivers/media/usb/pwc/pwc-kiara.c (renamed from drivers/media/video/pwc/pwc-kiara.c)1
-rw-r--r--drivers/media/usb/pwc/pwc-kiara.h (renamed from drivers/media/video/pwc/pwc-kiara.h)2
-rw-r--r--drivers/media/usb/pwc/pwc-misc.c93
-rw-r--r--drivers/media/usb/pwc/pwc-nala.h (renamed from drivers/media/video/pwc/pwc-nala.h)0
-rw-r--r--drivers/media/usb/pwc/pwc-timon.c (renamed from drivers/media/video/pwc/pwc-timon.c)0
-rw-r--r--drivers/media/usb/pwc/pwc-timon.h (renamed from drivers/media/video/pwc/pwc-timon.h)2
-rw-r--r--drivers/media/usb/pwc/pwc-uncompress.c107
-rw-r--r--drivers/media/usb/pwc/pwc-v4l.c1052
-rw-r--r--drivers/media/usb/pwc/pwc.h393
-rw-r--r--drivers/media/usb/s2255/Kconfig9
-rw-r--r--drivers/media/usb/s2255/Makefile2
-rw-r--r--drivers/media/usb/s2255/s2255drv.c2408
-rw-r--r--drivers/media/usb/siano/Kconfig11
-rw-r--r--drivers/media/usb/siano/Makefile6
-rw-r--r--drivers/media/usb/siano/smsusb.c677
-rw-r--r--drivers/media/usb/stk1160/Kconfig24
-rw-r--r--drivers/media/usb/stk1160/Makefile11
-rw-r--r--drivers/media/usb/stk1160/stk1160-ac97.c150
-rw-r--r--drivers/media/usb/stk1160/stk1160-core.c445
-rw-r--r--drivers/media/usb/stk1160/stk1160-i2c.c294
-rw-r--r--drivers/media/usb/stk1160/stk1160-reg.h93
-rw-r--r--drivers/media/usb/stk1160/stk1160-v4l.c699
-rw-r--r--drivers/media/usb/stk1160/stk1160-video.c541
-rw-r--r--drivers/media/usb/stk1160/stk1160.h209
-rw-r--r--drivers/media/usb/stkwebcam/Kconfig13
-rw-r--r--drivers/media/usb/stkwebcam/Makefile4
-rw-r--r--drivers/media/usb/stkwebcam/stk-sensor.c (renamed from drivers/media/video/stk-sensor.c)0
-rw-r--r--drivers/media/usb/stkwebcam/stk-webcam.c (renamed from drivers/media/video/stk-webcam.c)541
-rw-r--r--drivers/media/usb/stkwebcam/stk-webcam.h (renamed from drivers/media/video/stk-webcam.h)8
-rw-r--r--drivers/media/usb/tlg2300/Kconfig16
-rw-r--r--drivers/media/usb/tlg2300/Makefile9
-rw-r--r--drivers/media/usb/tlg2300/pd-alsa.c337
-rw-r--r--drivers/media/usb/tlg2300/pd-common.h271
-rw-r--r--drivers/media/usb/tlg2300/pd-dvb.c597
-rw-r--r--drivers/media/usb/tlg2300/pd-main.c551
-rw-r--r--drivers/media/usb/tlg2300/pd-radio.c340
-rw-r--r--drivers/media/usb/tlg2300/pd-video.c1571
-rw-r--r--drivers/media/usb/tlg2300/vendorcmds.h243
-rw-r--r--drivers/media/usb/tm6000/Kconfig33
-rw-r--r--drivers/media/usb/tm6000/Makefile15
-rw-r--r--drivers/media/usb/tm6000/tm6000-alsa.c529
-rw-r--r--drivers/media/usb/tm6000/tm6000-cards.c1413
-rw-r--r--drivers/media/usb/tm6000/tm6000-core.c938
-rw-r--r--drivers/media/usb/tm6000/tm6000-dvb.c467
-rw-r--r--drivers/media/usb/tm6000/tm6000-i2c.c334
-rw-r--r--drivers/media/usb/tm6000/tm6000-input.c501
-rw-r--r--drivers/media/usb/tm6000/tm6000-regs.h600
-rw-r--r--drivers/media/usb/tm6000/tm6000-stds.c638
-rw-r--r--drivers/media/usb/tm6000/tm6000-usb-isoc.h50
-rw-r--r--drivers/media/usb/tm6000/tm6000-video.c1760
-rw-r--r--drivers/media/usb/tm6000/tm6000.h409
-rw-r--r--drivers/media/usb/ttusb-budget/Kconfig18
-rw-r--r--drivers/media/usb/ttusb-budget/Makefile3
-rw-r--r--drivers/media/usb/ttusb-budget/dvb-ttusb-budget.c (renamed from drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c)204
-rw-r--r--drivers/media/usb/ttusb-dec/Kconfig (renamed from drivers/media/dvb/ttusb-dec/Kconfig)0
-rw-r--r--drivers/media/usb/ttusb-dec/Makefile3
-rw-r--r--drivers/media/usb/ttusb-dec/ttusb_dec.c (renamed from drivers/media/dvb/ttusb-dec/ttusb_dec.c)201
-rw-r--r--drivers/media/usb/ttusb-dec/ttusbdecfe.c (renamed from drivers/media/dvb/ttusb-dec/ttusbdecfe.c)14
-rw-r--r--drivers/media/usb/ttusb-dec/ttusbdecfe.h (renamed from drivers/media/dvb/ttusb-dec/ttusbdecfe.h)0
-rw-r--r--drivers/media/usb/usbtv/Kconfig10
-rw-r--r--drivers/media/usb/usbtv/Makefile4
-rw-r--r--drivers/media/usb/usbtv/usbtv-core.c134
-rw-r--r--drivers/media/usb/usbtv/usbtv-video.c735
-rw-r--r--drivers/media/usb/usbtv/usbtv.h99
-rw-r--r--drivers/media/usb/usbvision/Kconfig12
-rw-r--r--drivers/media/usb/usbvision/Makefile6
-rw-r--r--drivers/media/usb/usbvision/usbvision-cards.c1133
-rw-r--r--drivers/media/usb/usbvision/usbvision-cards.h (renamed from drivers/media/video/usbvision/usbvision-cards.h)2
-rw-r--r--drivers/media/usb/usbvision/usbvision-core.c2518
-rw-r--r--drivers/media/usb/usbvision/usbvision-i2c.c455
-rw-r--r--drivers/media/usb/usbvision/usbvision-video.c1723
-rw-r--r--drivers/media/usb/usbvision/usbvision.h527
-rw-r--r--drivers/media/usb/uvc/Kconfig20
-rw-r--r--drivers/media/usb/uvc/Makefile6
-rw-r--r--drivers/media/usb/uvc/uvc_ctrl.c2171
-rw-r--r--drivers/media/usb/uvc/uvc_debugfs.c136
-rw-r--r--drivers/media/usb/uvc/uvc_driver.c2539
-rw-r--r--drivers/media/usb/uvc/uvc_entity.c128
-rw-r--r--drivers/media/usb/uvc/uvc_isight.c (renamed from drivers/media/video/uvc/uvc_isight.c)19
-rw-r--r--drivers/media/usb/uvc/uvc_queue.c398
-rw-r--r--drivers/media/usb/uvc/uvc_status.c (renamed from drivers/media/video/uvc/uvc_status.c)52
-rw-r--r--drivers/media/usb/uvc/uvc_v4l2.c1383
-rw-r--r--drivers/media/usb/uvc/uvc_video.c1918
-rw-r--r--drivers/media/usb/uvc/uvcvideo.h737
-rw-r--r--drivers/media/usb/zr364xx/Kconfig14
-rw-r--r--drivers/media/usb/zr364xx/Makefile2
-rw-r--r--drivers/media/usb/zr364xx/zr364xx.c1640
-rw-r--r--drivers/media/v4l2-core/Kconfig89
-rw-r--r--drivers/media/v4l2-core/Makefile41
-rw-r--r--drivers/media/v4l2-core/tuner-core.c1357
-rw-r--r--drivers/media/v4l2-core/v4l2-async.c312
-rw-r--r--drivers/media/v4l2-core/v4l2-clk.c281
-rw-r--r--drivers/media/v4l2-core/v4l2-common.c531
-rw-r--r--drivers/media/v4l2-core/v4l2-compat-ioctl32.c1021
-rw-r--r--drivers/media/v4l2-core/v4l2-ctrls.c3021
-rw-r--r--drivers/media/v4l2-core/v4l2-dev.c1048
-rw-r--r--drivers/media/v4l2-core/v4l2-device.c297
-rw-r--r--drivers/media/v4l2-core/v4l2-dv-timings.c629
-rw-r--r--drivers/media/v4l2-core/v4l2-event.c356
-rw-r--r--drivers/media/v4l2-core/v4l2-fh.c120
-rw-r--r--drivers/media/v4l2-core/v4l2-ioctl.c2446
-rw-r--r--drivers/media/v4l2-core/v4l2-mem2mem.c868
-rw-r--r--drivers/media/v4l2-core/v4l2-of.c144
-rw-r--r--drivers/media/v4l2-core/v4l2-subdev.c545
-rw-r--r--drivers/media/v4l2-core/videobuf-core.c1193
-rw-r--r--drivers/media/v4l2-core/videobuf-dma-contig.c403
-rw-r--r--drivers/media/v4l2-core/videobuf-dma-sg.c633
-rw-r--r--drivers/media/v4l2-core/videobuf-dvb.c (renamed from drivers/media/video/videobuf-dvb.c)13
-rw-r--r--drivers/media/v4l2-core/videobuf-vmalloc.c349
-rw-r--r--drivers/media/v4l2-core/videobuf2-core.c3464
-rw-r--r--drivers/media/v4l2-core/videobuf2-dma-contig.c851
-rw-r--r--drivers/media/v4l2-core/videobuf2-dma-sg.c359
-rw-r--r--drivers/media/v4l2-core/videobuf2-dvb.c336
-rw-r--r--drivers/media/v4l2-core/videobuf2-memops.c187
-rw-r--r--drivers/media/v4l2-core/videobuf2-vmalloc.c279
-rw-r--r--drivers/media/video/Kconfig932
-rw-r--r--drivers/media/video/Makefile155
-rw-r--r--drivers/media/video/adv7170.c379
-rw-r--r--drivers/media/video/adv7175.c411
-rw-r--r--drivers/media/video/arv.c918
-rw-r--r--drivers/media/video/au0828/Kconfig15
-rw-r--r--drivers/media/video/au0828/Makefile9
-rw-r--r--drivers/media/video/au0828/au0828-cards.c221
-rw-r--r--drivers/media/video/au0828/au0828-core.c257
-rw-r--r--drivers/media/video/au0828/au0828-dvb.c441
-rw-r--r--drivers/media/video/au0828/au0828-i2c.c381
-rw-r--r--drivers/media/video/au0828/au0828-reg.h38
-rw-r--r--drivers/media/video/au0828/au0828.h125
-rw-r--r--drivers/media/video/bt819.c504
-rw-r--r--drivers/media/video/bt856.c303
-rw-r--r--drivers/media/video/bt866.c286
-rw-r--r--drivers/media/video/bt8xx/Kconfig27
-rw-r--r--drivers/media/video/bt8xx/Makefile13
-rw-r--r--drivers/media/video/bt8xx/bttv-cards.c4905
-rw-r--r--drivers/media/video/bt8xx/bttv-driver.c4676
-rw-r--r--drivers/media/video/bt8xx/bttv-i2c.c460
-rw-r--r--drivers/media/video/bt8xx/bttv-input.c423
-rw-r--r--drivers/media/video/bw-qcam.c1063
-rw-r--r--drivers/media/video/bw-qcam.h69
-rw-r--r--drivers/media/video/c-qcam.c874
-rw-r--r--drivers/media/video/cafe_ccic-regs.h166
-rw-r--r--drivers/media/video/cafe_ccic.c2331
-rw-r--r--drivers/media/video/cpia.c4043
-rw-r--r--drivers/media/video/cpia.h432
-rw-r--r--drivers/media/video/cpia2/Kconfig9
-rw-r--r--drivers/media/video/cpia2/cpia2_v4l.c2061
-rw-r--r--drivers/media/video/cpia2/cpia2dev.h50
-rw-r--r--drivers/media/video/cpia_pp.c868
-rw-r--r--drivers/media/video/cpia_usb.c643
-rw-r--r--drivers/media/video/cs5345.c223
-rw-r--r--drivers/media/video/cs53l32a.c226
-rw-r--r--drivers/media/video/cs8420.h50
-rw-r--r--drivers/media/video/cx18/Kconfig21
-rw-r--r--drivers/media/video/cx18/Makefile11
-rw-r--r--drivers/media/video/cx18/cx18-audio.c87
-rw-r--r--drivers/media/video/cx18/cx18-av-core.c1079
-rw-r--r--drivers/media/video/cx18/cx18-av-firmware.c147
-rw-r--r--drivers/media/video/cx18/cx18-av-vbi.c270
-rw-r--r--drivers/media/video/cx18/cx18-cards.c455
-rw-r--r--drivers/media/video/cx18/cx18-controls.c317
-rw-r--r--drivers/media/video/cx18/cx18-controls.h29
-rw-r--r--drivers/media/video/cx18/cx18-driver.c1178
-rw-r--r--drivers/media/video/cx18/cx18-driver.h514
-rw-r--r--drivers/media/video/cx18/cx18-dvb.c310
-rw-r--r--drivers/media/video/cx18/cx18-fileops.c721
-rw-r--r--drivers/media/video/cx18/cx18-gpio.c218
-rw-r--r--drivers/media/video/cx18/cx18-i2c.c432
-rw-r--r--drivers/media/video/cx18/cx18-ioctl.c843
-rw-r--r--drivers/media/video/cx18/cx18-mailbox.c703
-rw-r--r--drivers/media/video/cx18/cx18-queue.c235
-rw-r--r--drivers/media/video/cx18/cx18-queue.h71
-rw-r--r--drivers/media/video/cx18/cx18-streams.c654
-rw-r--r--drivers/media/video/cx18/cx18-streams.h38
-rw-r--r--drivers/media/video/cx18/cx18-vbi.c211
-rw-r--r--drivers/media/video/cx18/cx18-version.h34
-rw-r--r--drivers/media/video/cx18/cx18-video.c45
-rw-r--r--drivers/media/video/cx2341x.c1071
-rw-r--r--drivers/media/video/cx23885/Kconfig30
-rw-r--r--drivers/media/video/cx23885/Makefile10
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c664
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c627
-rw-r--r--drivers/media/video/cx23885/cx23885-video.c1556
-rw-r--r--drivers/media/video/cx23885/cx23885.h486
-rw-r--r--drivers/media/video/cx25840/Makefile6
-rw-r--r--drivers/media/video/cx25840/cx25840-audio.c437
-rw-r--r--drivers/media/video/cx25840/cx25840-core.c1528
-rw-r--r--drivers/media/video/cx25840/cx25840-core.h85
-rw-r--r--drivers/media/video/cx25840/cx25840-firmware.c137
-rw-r--r--drivers/media/video/cx25840/cx25840-vbi.c280
-rw-r--r--drivers/media/video/cx88/Kconfig85
-rw-r--r--drivers/media/video/cx88/Makefile16
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c1357
-rw-r--r--drivers/media/video/cx88/cx88-input.c518
-rw-r--r--drivers/media/video/cx88/cx88-video.c2140
-rw-r--r--drivers/media/video/dabusb.c895
-rw-r--r--drivers/media/video/dabusb.h85
-rw-r--r--drivers/media/video/em28xx/Kconfig40
-rw-r--r--drivers/media/video/em28xx/Makefile14
-rw-r--r--drivers/media/video/em28xx/em28xx-audio.c514
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c2203
-rw-r--r--drivers/media/video/em28xx/em28xx-core.c1119
-rw-r--r--drivers/media/video/em28xx/em28xx-dvb.c515
-rw-r--r--drivers/media/video/em28xx/em28xx-i2c.c646
-rw-r--r--drivers/media/video/em28xx/em28xx-input.c501
-rw-r--r--drivers/media/video/em28xx/em28xx-reg.h234
-rw-r--r--drivers/media/video/em28xx/em28xx-video.c2035
-rw-r--r--drivers/media/video/em28xx/em28xx.h724
-rw-r--r--drivers/media/video/et61x251/Kconfig14
-rw-r--r--drivers/media/video/et61x251/Makefile4
-rw-r--r--drivers/media/video/et61x251/et61x251.h234
-rw-r--r--drivers/media/video/et61x251/et61x251_core.c2704
-rw-r--r--drivers/media/video/et61x251/et61x251_sensor.h108
-rw-r--r--drivers/media/video/et61x251/et61x251_tas5130d1b.c141
-rw-r--r--drivers/media/video/font.h407
-rw-r--r--drivers/media/video/gspca/Kconfig225
-rw-r--r--drivers/media/video/gspca/Makefile50
-rw-r--r--drivers/media/video/gspca/finepix.c471
-rw-r--r--drivers/media/video/gspca/gspca.c2106
-rw-r--r--drivers/media/video/gspca/gspca.h197
-rw-r--r--drivers/media/video/gspca/jpeg.h301
-rw-r--r--drivers/media/video/gspca/m5602/Makefile11
-rw-r--r--drivers/media/video/gspca/m5602/m5602_bridge.h142
-rw-r--r--drivers/media/video/gspca/m5602/m5602_core.c405
-rw-r--r--drivers/media/video/gspca/m5602/m5602_mt9m111.c270
-rw-r--r--drivers/media/video/gspca/m5602/m5602_mt9m111.h1009
-rw-r--r--drivers/media/video/gspca/m5602/m5602_ov9650.c582
-rw-r--r--drivers/media/video/gspca/m5602/m5602_ov9650.h533
-rw-r--r--drivers/media/video/gspca/m5602/m5602_po1030.c338
-rw-r--r--drivers/media/video/gspca/m5602/m5602_po1030.h502
-rw-r--r--drivers/media/video/gspca/m5602/m5602_s5k4aa.c414
-rw-r--r--drivers/media/video/gspca/m5602/m5602_s5k4aa.h332
-rw-r--r--drivers/media/video/gspca/m5602/m5602_s5k83a.c354
-rw-r--r--drivers/media/video/gspca/m5602/m5602_s5k83a.h473
-rw-r--r--drivers/media/video/gspca/mars.c436
-rw-r--r--drivers/media/video/gspca/ov519.c2195
-rw-r--r--drivers/media/video/gspca/ov534.c601
-rw-r--r--drivers/media/video/gspca/pac207.c580
-rw-r--r--drivers/media/video/gspca/pac7311.c1112
-rw-r--r--drivers/media/video/gspca/pac_common.h60
-rw-r--r--drivers/media/video/gspca/sonixb.c1287
-rw-r--r--drivers/media/video/gspca/sonixj.c1809
-rw-r--r--drivers/media/video/gspca/spca505.c878
-rw-r--r--drivers/media/video/gspca/spca506.c787
-rw-r--r--drivers/media/video/gspca/spca508.c1681
-rw-r--r--drivers/media/video/gspca/spca561.c1212
-rw-r--r--drivers/media/video/gspca/stk014.c580
-rw-r--r--drivers/media/video/gspca/stv06xx/Makefile9
-rw-r--r--drivers/media/video/gspca/stv06xx/stv06xx.c522
-rw-r--r--drivers/media/video/gspca/stv06xx/stv06xx_hdcs.c535
-rw-r--r--drivers/media/video/gspca/stv06xx/stv06xx_pb0100.c430
-rw-r--r--drivers/media/video/gspca/stv06xx/stv06xx_pb0100.h275
-rw-r--r--drivers/media/video/gspca/stv06xx/stv06xx_vv6410.c251
-rw-r--r--drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h315
-rw-r--r--drivers/media/video/gspca/sunplus.c1480
-rw-r--r--drivers/media/video/gspca/t613.c1187
-rw-r--r--drivers/media/video/gspca/tv8532.c586
-rw-r--r--drivers/media/video/gspca/vc032x.c2475
-rw-r--r--drivers/media/video/gspca/zc3xx.c7620
-rw-r--r--drivers/media/video/hexium_gemini.c555
-rw-r--r--drivers/media/video/ibmmpeg2.h94
-rw-r--r--drivers/media/video/indycam.c470
-rw-r--r--drivers/media/video/ir-kbd-i2c.c555
-rw-r--r--drivers/media/video/ivtv/Kconfig46
-rw-r--r--drivers/media/video/ivtv/Makefile14
-rw-r--r--drivers/media/video/ivtv/ivtv-controls.c308
-rw-r--r--drivers/media/video/ivtv/ivtv-controls.h30
-rw-r--r--drivers/media/video/ivtv/ivtv-firmware.c273
-rw-r--r--drivers/media/video/ivtv/ivtv-i2c.c629
-rw-r--r--drivers/media/video/ivtv/ivtv-ioctl.c1917
-rw-r--r--drivers/media/video/ivtv/ivtv-routing.c115
-rw-r--r--drivers/media/video/ivtv/ivtv-version.h31
-rw-r--r--drivers/media/video/ks0127.c793
-rw-r--r--drivers/media/video/msp3400-driver.c1057
-rw-r--r--drivers/media/video/mt9m001.c757
-rw-r--r--drivers/media/video/mt9m111.c1029
-rw-r--r--drivers/media/video/mt9t031.c736
-rw-r--r--drivers/media/video/mt9v022.c877
-rw-r--r--drivers/media/video/mxb.c927
-rw-r--r--drivers/media/video/mxb.h42
-rw-r--r--drivers/media/video/ov511.c5986
-rw-r--r--drivers/media/video/ov511.h570
-rw-r--r--drivers/media/video/ov7670.c1371
-rw-r--r--drivers/media/video/ov772x.c1013
-rw-r--r--drivers/media/video/ovcamchip/Makefile4
-rw-r--r--drivers/media/video/ovcamchip/ov6x20.c414
-rw-r--r--drivers/media/video/ovcamchip/ov6x30.c373
-rw-r--r--drivers/media/video/ovcamchip/ov76be.c302
-rw-r--r--drivers/media/video/ovcamchip/ov7x10.c334
-rw-r--r--drivers/media/video/ovcamchip/ov7x20.c454
-rw-r--r--drivers/media/video/ovcamchip/ovcamchip_core.c434
-rw-r--r--drivers/media/video/ovcamchip/ovcamchip_priv.h94
-rw-r--r--drivers/media/video/pms.c1090
-rw-r--r--drivers/media/video/pvrusb2/Kconfig66
-rw-r--r--drivers/media/video/pvrusb2/Makefile21
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-audio.c191
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c334
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-devattr.c524
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-devattr.h168
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c113
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c322
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.h50
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-i2c-core.c1048
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-i2c-core.h95
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-tuner.c120
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-tuner.h37
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-v4l2.c1355
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-video-v4l.c258
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-wm8775.c171
-rw-r--r--drivers/media/video/pwc/Kconfig37
-rw-r--r--drivers/media/video/pwc/Makefile4
-rw-r--r--drivers/media/video/pwc/pwc-ctrl.c1670
-rw-r--r--drivers/media/video/pwc/pwc-dec23.c941
-rw-r--r--drivers/media/video/pwc/pwc-if.c2081
-rw-r--r--drivers/media/video/pwc/pwc-ioctl.h323
-rw-r--r--drivers/media/video/pwc/pwc-misc.c133
-rw-r--r--drivers/media/video/pwc/pwc-uncompress.c138
-rw-r--r--drivers/media/video/pwc/pwc-uncompress.h40
-rw-r--r--drivers/media/video/pwc/pwc-v4l.c1261
-rw-r--r--drivers/media/video/pwc/pwc.h355
-rw-r--r--drivers/media/video/pxa_camera.c1574
-rw-r--r--drivers/media/video/s2255drv.c2616
-rw-r--r--drivers/media/video/saa5246a.c1105
-rw-r--r--drivers/media/video/saa5249.c631
-rw-r--r--drivers/media/video/saa6588.c523
-rw-r--r--drivers/media/video/saa7110.c490
-rw-r--r--drivers/media/video/saa7111.c492
-rw-r--r--drivers/media/video/saa7114.c1068
-rw-r--r--drivers/media/video/saa7115.c1639
-rw-r--r--drivers/media/video/saa7121.h132
-rw-r--r--drivers/media/video/saa7134/Kconfig45
-rw-r--r--drivers/media/video/saa7134/Makefile16
-rw-r--r--drivers/media/video/saa7134/saa6752hs.c909
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c1494
-rw-r--r--drivers/media/video/saa7134/saa7134-empress.c586
-rw-r--r--drivers/media/video/saa7134/saa7134-input.c895
-rw-r--r--drivers/media/video/saa7134/saa7134-ts.c290
-rw-r--r--drivers/media/video/saa7134/saa7134-vbi.c256
-rw-r--r--drivers/media/video/saa7134/saa7134-video.c2638
-rw-r--r--drivers/media/video/saa7146.h114
-rw-r--r--drivers/media/video/saa7146reg.h283
-rw-r--r--drivers/media/video/saa7185.c395
-rw-r--r--drivers/media/video/saa7191.c807
-rw-r--r--drivers/media/video/se401.c1470
-rw-r--r--drivers/media/video/se401.h235
-rw-r--r--drivers/media/video/sh_mobile_ceu_camera.c902
-rw-r--r--drivers/media/video/sn9c102/Kconfig11
-rw-r--r--drivers/media/video/sn9c102/sn9c102_devtable.h151
-rw-r--r--drivers/media/video/soc_camera.c1163
-rw-r--r--drivers/media/video/soc_camera_platform.c201
-rw-r--r--drivers/media/video/stradis.c2214
-rw-r--r--drivers/media/video/stv680.c1564
-rw-r--r--drivers/media/video/stv680.h227
-rw-r--r--drivers/media/video/tda7432.c506
-rw-r--r--drivers/media/video/tda9840.c271
-rw-r--r--drivers/media/video/tda9840.h14
-rw-r--r--drivers/media/video/tda9875.c409
-rw-r--r--drivers/media/video/tea6415c.c200
-rw-r--r--drivers/media/video/tea6420.c180
-rw-r--r--drivers/media/video/tea6420.h17
-rw-r--r--drivers/media/video/tlv320aic23b.c216
-rw-r--r--drivers/media/video/tuner-core.c1376
-rw-r--r--drivers/media/video/tveeprom.c758
-rw-r--r--drivers/media/video/tvp514x.c1569
-rw-r--r--drivers/media/video/tvp5150.c1135
-rw-r--r--drivers/media/video/tw9910.c951
-rw-r--r--drivers/media/video/usbvideo/Kconfig50
-rw-r--r--drivers/media/video/usbvideo/Makefile5
-rw-r--r--drivers/media/video/usbvideo/ibmcam.c3977
-rw-r--r--drivers/media/video/usbvideo/konicawc.c991
-rw-r--r--drivers/media/video/usbvideo/quickcam_messenger.c1124
-rw-r--r--drivers/media/video/usbvideo/quickcam_messenger.h112
-rw-r--r--drivers/media/video/usbvideo/ultracam.c685
-rw-r--r--drivers/media/video/usbvideo/usbvideo.c2234
-rw-r--r--drivers/media/video/usbvideo/usbvideo.h395
-rw-r--r--drivers/media/video/usbvideo/vicam.c953
-rw-r--r--drivers/media/video/usbvision/Kconfig12
-rw-r--r--drivers/media/video/usbvision/Makefile6
-rw-r--r--drivers/media/video/usbvision/usbvision-cards.c1103
-rw-r--r--drivers/media/video/usbvision/usbvision-core.c2637
-rw-r--r--drivers/media/video/usbvision/usbvision-i2c.c530
-rw-r--r--drivers/media/video/usbvision/usbvision-video.c1864
-rw-r--r--drivers/media/video/usbvision/usbvision.h523
-rw-r--r--drivers/media/video/uvc/Kconfig17
-rw-r--r--drivers/media/video/uvc/Makefile3
-rw-r--r--drivers/media/video/uvc/uvc_ctrl.c1523
-rw-r--r--drivers/media/video/uvc/uvc_driver.c2001
-rw-r--r--drivers/media/video/uvc/uvc_queue.c492
-rw-r--r--drivers/media/video/uvc/uvc_v4l2.c1109
-rw-r--r--drivers/media/video/uvc/uvc_video.c1108
-rw-r--r--drivers/media/video/uvc/uvcvideo.h823
-rw-r--r--drivers/media/video/v4l1-compat.c1268
-rw-r--r--drivers/media/video/v4l2-common.c994
-rw-r--r--drivers/media/video/v4l2-compat-ioctl32.c1079
-rw-r--r--drivers/media/video/v4l2-dev.c591
-rw-r--r--drivers/media/video/v4l2-device.c86
-rw-r--r--drivers/media/video/v4l2-ioctl.c1952
-rw-r--r--drivers/media/video/v4l2-subdev.c110
-rw-r--r--drivers/media/video/videobuf-core.c1136
-rw-r--r--drivers/media/video/videobuf-dma-contig.c418
-rw-r--r--drivers/media/video/videobuf-dma-sg.c739
-rw-r--r--drivers/media/video/videobuf-vmalloc.c447
-rw-r--r--drivers/media/video/vivi.c1349
-rw-r--r--drivers/media/video/vpx3220.c601
-rw-r--r--drivers/media/video/w9966.c996
-rw-r--r--drivers/media/video/w9968cf.c3674
-rw-r--r--drivers/media/video/w9968cf.h329
-rw-r--r--drivers/media/video/w9968cf_decoder.h86
-rw-r--r--drivers/media/video/w9968cf_vpp.h40
-rw-r--r--drivers/media/video/wm8739.c351
-rw-r--r--drivers/media/video/wm8775.c276
-rw-r--r--drivers/media/video/zc0301/Kconfig11
-rw-r--r--drivers/media/video/zc0301/Makefile3
-rw-r--r--drivers/media/video/zc0301/zc0301.h196
-rw-r--r--drivers/media/video/zc0301/zc0301_core.c2090
-rw-r--r--drivers/media/video/zc0301/zc0301_pas202bcb.c362
-rw-r--r--drivers/media/video/zc0301/zc0301_pb0330.c188
-rw-r--r--drivers/media/video/zc0301/zc0301_sensor.h99
-rw-r--r--drivers/media/video/zoran/Kconfig73
-rw-r--r--drivers/media/video/zoran/zoran.h510
-rw-r--r--drivers/media/video/zoran/zoran_card.c1665
-rw-r--r--drivers/media/video/zoran/zoran_driver.c4637
-rw-r--r--drivers/media/video/zr364xx.c944
-rw-r--r--drivers/memory/Kconfig68
-rw-r--r--drivers/memory/Makefile13
-rw-r--r--drivers/memory/emif.c1940
-rw-r--r--drivers/memory/emif.h589
-rw-r--r--drivers/memory/fsl_ifc.c309
-rw-r--r--drivers/memory/mvebu-devbus.c362
-rw-r--r--drivers/memory/of_memory.c153
-rw-r--r--drivers/memory/of_memory.h36
-rw-r--r--drivers/memory/tegra20-mc.c255
-rw-r--r--drivers/memory/tegra30-mc.c378
-rw-r--r--drivers/memory/ti-aemif.c427
-rw-r--r--drivers/memstick/Kconfig2
-rw-r--r--drivers/memstick/Makefile4
-rw-r--r--drivers/memstick/core/Kconfig12
-rw-r--r--drivers/memstick/core/Makefile6
-rw-r--r--drivers/memstick/core/memstick.c40
-rw-r--r--drivers/memstick/core/ms_block.c2385
-rw-r--r--drivers/memstick/core/ms_block.h290
-rw-r--r--drivers/memstick/core/mspro_block.c201
-rw-r--r--drivers/memstick/host/Kconfig40
-rw-r--r--drivers/memstick/host/Makefile7
-rw-r--r--drivers/memstick/host/jmb38x_ms.c143
-rw-r--r--drivers/memstick/host/r592.c896
-rw-r--r--drivers/memstick/host/r592.h175
-rw-r--r--drivers/memstick/host/rtsx_pci_ms.c656
-rw-r--r--drivers/memstick/host/rtsx_usb_ms.c839
-rw-r--r--drivers/memstick/host/tifm_ms.c7
-rw-r--r--drivers/message/fusion/Makefile2
-rw-r--r--drivers/message/fusion/lsi/mpi_cnfg.h2
-rw-r--r--drivers/message/fusion/lsi/mpi_history.txt6
-rw-r--r--drivers/message/fusion/lsi/mpi_ioc.h3
-rw-r--r--drivers/message/fusion/lsi/mpi_log_fc.h4
-rw-r--r--drivers/message/fusion/lsi/mpi_log_sas.h16
-rw-r--r--drivers/message/fusion/mptbase.c2277
-rw-r--r--drivers/message/fusion/mptbase.h301
-rw-r--r--drivers/message/fusion/mptctl.c795
-rw-r--r--drivers/message/fusion/mptdebug.h3
-rw-r--r--drivers/message/fusion/mptfc.c105
-rw-r--r--drivers/message/fusion/mptlan.c12
-rw-r--r--drivers/message/fusion/mptlan.h1
-rw-r--r--drivers/message/fusion/mptsas.c3748
-rw-r--r--drivers/message/fusion/mptsas.h42
-rw-r--r--drivers/message/fusion/mptscsih.c1679
-rw-r--r--drivers/message/fusion/mptscsih.h16
-rw-r--r--drivers/message/fusion/mptspi.c148
-rw-r--r--drivers/message/i2o/README2
-rw-r--r--drivers/message/i2o/README.ioctl14
-rw-r--r--drivers/message/i2o/core.h2
-rw-r--r--drivers/message/i2o/device.c40
-rw-r--r--drivers/message/i2o/driver.c21
-rw-r--r--drivers/message/i2o/exec-osm.c8
-rw-r--r--drivers/message/i2o/i2o_block.c117
-rw-r--r--drivers/message/i2o/i2o_block.h2
-rw-r--r--drivers/message/i2o/i2o_config.c96
-rw-r--r--drivers/message/i2o/i2o_proc.c163
-rw-r--r--drivers/message/i2o/i2o_scsi.c18
-rw-r--r--drivers/message/i2o/iop.c92
-rw-r--r--drivers/message/i2o/memory.c6
-rw-r--r--drivers/message/i2o/pci.c17
-rw-r--r--drivers/mfd/88pm800.c634
-rw-r--r--drivers/mfd/88pm805.c292
-rw-r--r--drivers/mfd/88pm80x.c164
-rw-r--r--drivers/mfd/88pm860x-core.c1281
-rw-r--r--drivers/mfd/88pm860x-i2c.c240
-rw-r--r--drivers/mfd/Kconfig1249
-rw-r--r--drivers/mfd/Makefile142
-rw-r--r--drivers/mfd/aat2870-core.c522
-rw-r--r--drivers/mfd/ab3100-core.c999
-rw-r--r--drivers/mfd/ab3100-otp.c251
-rw-r--r--drivers/mfd/ab8500-core.c1869
-rw-r--r--drivers/mfd/ab8500-debugfs.c3232
-rw-r--r--drivers/mfd/ab8500-gpadc.c1088
-rw-r--r--drivers/mfd/ab8500-sysctrl.c254
-rw-r--r--drivers/mfd/abx500-core.c156
-rw-r--r--drivers/mfd/adp5520.c366
-rw-r--r--drivers/mfd/arizona-core.c1039
-rw-r--r--drivers/mfd/arizona-i2c.c110
-rw-r--r--drivers/mfd/arizona-irq.c373
-rw-r--r--drivers/mfd/arizona-spi.c104
-rw-r--r--drivers/mfd/arizona.h57
-rw-r--r--drivers/mfd/as3711.c237
-rw-r--r--drivers/mfd/as3722.c453
-rw-r--r--drivers/mfd/asic3.c572
-rw-r--r--drivers/mfd/axp20x.c258
-rw-r--r--drivers/mfd/bcm590xx.c132
-rw-r--r--drivers/mfd/cros_ec.c194
-rw-r--r--drivers/mfd/cros_ec_i2c.c201
-rw-r--r--drivers/mfd/cros_ec_spi.c440
-rw-r--r--drivers/mfd/cs5535-mfd.c192
-rw-r--r--drivers/mfd/da903x.c48
-rw-r--r--drivers/mfd/da9052-core.c580
-rw-r--r--drivers/mfd/da9052-i2c.c234
-rw-r--r--drivers/mfd/da9052-irq.c288
-rw-r--r--drivers/mfd/da9052-spi.c110
-rw-r--r--drivers/mfd/da9055-core.c428
-rw-r--r--drivers/mfd/da9055-i2c.c109
-rw-r--r--drivers/mfd/da9063-core.c188
-rw-r--r--drivers/mfd/da9063-i2c.c182
-rw-r--r--drivers/mfd/da9063-irq.c193
-rw-r--r--drivers/mfd/davinci_voicecodec.c155
-rw-r--r--drivers/mfd/db8500-prcmu.c3248
-rw-r--r--drivers/mfd/dbx500-prcmu-regs.h227
-rw-r--r--drivers/mfd/dm355evm_msp.c23
-rw-r--r--drivers/mfd/ezx-pcap.c542
-rw-r--r--drivers/mfd/htc-egpio.c70
-rw-r--r--drivers/mfd/htc-i2cpld.c695
-rw-r--r--drivers/mfd/htc-pasic3.c186
-rw-r--r--drivers/mfd/intel_msic.c458
-rw-r--r--drivers/mfd/ipaq-micro.c482
-rw-r--r--drivers/mfd/janz-cmodio.c285
-rw-r--r--drivers/mfd/jz4740-adc.c336
-rw-r--r--drivers/mfd/kempld-core.c771
-rw-r--r--drivers/mfd/lm3533-core.c664
-rw-r--r--drivers/mfd/lm3533-ctrlbank.c148
-rw-r--r--drivers/mfd/lp3943.c167
-rw-r--r--drivers/mfd/lp8788-irq.c198
-rw-r--r--drivers/mfd/lp8788.c245
-rw-r--r--drivers/mfd/lpc_ich.c1074
-rw-r--r--drivers/mfd/lpc_sch.c180
-rw-r--r--drivers/mfd/max14577.c478
-rw-r--r--drivers/mfd/max77686-irq.c319
-rw-r--r--drivers/mfd/max77686.c184
-rw-r--r--drivers/mfd/max77693-irq.c336
-rw-r--r--drivers/mfd/max77693.c279
-rw-r--r--drivers/mfd/max8907.c352
-rw-r--r--drivers/mfd/max8925-core.c927
-rw-r--r--drivers/mfd/max8925-i2c.c275
-rw-r--r--drivers/mfd/max8997-irq.c387
-rw-r--r--drivers/mfd/max8997.c535
-rw-r--r--drivers/mfd/max8998-irq.c282
-rw-r--r--drivers/mfd/max8998.c404
-rw-r--r--drivers/mfd/mc13xxx-core.c720
-rw-r--r--drivers/mfd/mc13xxx-i2c.c121
-rw-r--r--drivers/mfd/mc13xxx-spi.c201
-rw-r--r--drivers/mfd/mc13xxx.h49
-rw-r--r--drivers/mfd/mcp-core.c72
-rw-r--r--drivers/mfd/mcp-sa11x0.c220
-rw-r--r--drivers/mfd/mcp.h66
-rw-r--r--drivers/mfd/menelaus.c131
-rw-r--r--drivers/mfd/mfd-core.c221
-rw-r--r--drivers/mfd/omap-usb-host.c916
-rw-r--r--drivers/mfd/omap-usb-tll.c485
-rw-r--r--drivers/mfd/omap-usb.h3
-rw-r--r--drivers/mfd/palmas.c625
-rw-r--r--drivers/mfd/pcf50633-adc.c87
-rw-r--r--drivers/mfd/pcf50633-core.c538
-rw-r--r--drivers/mfd/pcf50633-gpio.c30
-rw-r--r--drivers/mfd/pcf50633-irq.c314
-rw-r--r--drivers/mfd/pm8921-core.c401
-rw-r--r--drivers/mfd/rc5t583-irq.c407
-rw-r--r--drivers/mfd/rc5t583.c347
-rw-r--r--drivers/mfd/rdc321x-southbridge.c115
-rw-r--r--drivers/mfd/retu-mfd.c327
-rw-r--r--drivers/mfd/rtl8411.c509
-rw-r--r--drivers/mfd/rts5209.c281
-rw-r--r--drivers/mfd/rts5227.c301
-rw-r--r--drivers/mfd/rts5229.c277
-rw-r--r--drivers/mfd/rts5249.c353
-rw-r--r--drivers/mfd/rtsx_pcr.c1368
-rw-r--r--drivers/mfd/rtsx_pcr.h75
-rw-r--r--drivers/mfd/rtsx_usb.c766
-rw-r--r--drivers/mfd/sec-core.c441
-rw-r--r--drivers/mfd/sec-irq.c404
-rw-r--r--drivers/mfd/si476x-cmd.c1555
-rw-r--r--drivers/mfd/si476x-i2c.c886
-rw-r--r--drivers/mfd/si476x-prop.c241
-rw-r--r--drivers/mfd/sm501.c196
-rw-r--r--drivers/mfd/smsc-ece1099.c112
-rw-r--r--drivers/mfd/ssbi.c339
-rw-r--r--drivers/mfd/sta2x11-mfd.c680
-rw-r--r--drivers/mfd/stmpe-i2c.c140
-rw-r--r--drivers/mfd/stmpe-spi.c149
-rw-r--r--drivers/mfd/stmpe.c1299
-rw-r--r--drivers/mfd/stmpe.h286
-rw-r--r--drivers/mfd/stw481x.c256
-rw-r--r--drivers/mfd/sun6i-prcm.c134
-rw-r--r--drivers/mfd/syscon.c190
-rw-r--r--drivers/mfd/t7l66xb.c150
-rw-r--r--drivers/mfd/tc3589x.c530
-rw-r--r--drivers/mfd/tc6387xb.c164
-rw-r--r--drivers/mfd/tc6393xb.c159
-rw-r--r--drivers/mfd/ti_am335x_tscadc.c379
-rw-r--r--drivers/mfd/timberdale.c871
-rw-r--r--drivers/mfd/timberdale.h142
-rw-r--r--drivers/mfd/tmio_core.c53
-rw-r--r--drivers/mfd/tps6105x.c247
-rw-r--r--drivers/mfd/tps65010.c65
-rw-r--r--drivers/mfd/tps6507x.c154
-rw-r--r--drivers/mfd/tps65090.c284
-rw-r--r--drivers/mfd/tps65217.c269
-rw-r--r--drivers/mfd/tps65218.c283
-rw-r--r--drivers/mfd/tps6586x.c635
-rw-r--r--drivers/mfd/tps65910.c566
-rw-r--r--drivers/mfd/tps65911-comparator.c190
-rw-r--r--drivers/mfd/tps65912-core.c175
-rw-r--r--drivers/mfd/tps65912-i2c.c140
-rw-r--r--drivers/mfd/tps65912-irq.c223
-rw-r--r--drivers/mfd/tps65912-spi.c142
-rw-r--r--drivers/mfd/tps80031.c573
-rw-r--r--drivers/mfd/twl-core.c1278
-rw-r--r--drivers/mfd/twl-core.h10
-rw-r--r--drivers/mfd/twl4030-audio.c299
-rw-r--r--drivers/mfd/twl4030-core.c829
-rw-r--r--drivers/mfd/twl4030-irq.c668
-rw-r--r--drivers/mfd/twl4030-power.c891
-rw-r--r--drivers/mfd/twl6030-irq.c484
-rw-r--r--drivers/mfd/twl6040.c816
-rw-r--r--drivers/mfd/ucb1400_core.c67
-rw-r--r--drivers/mfd/ucb1x00-assabet.c48
-rw-r--r--drivers/mfd/ucb1x00-core.c534
-rw-r--r--drivers/mfd/ucb1x00-ts.c90
-rw-r--r--drivers/mfd/ucb1x00.h255
-rw-r--r--drivers/mfd/vexpress-sysreg.c276
-rw-r--r--drivers/mfd/viperboard.c137
-rw-r--r--drivers/mfd/vx855.c138
-rw-r--r--drivers/mfd/wl1273-core.c287
-rw-r--r--drivers/mfd/wm5102-tables.c1986
-rw-r--r--drivers/mfd/wm5110-tables.c2784
-rw-r--r--drivers/mfd/wm831x-auxadc.c299
-rw-r--r--drivers/mfd/wm831x-core.c1937
-rw-r--r--drivers/mfd/wm831x-i2c.c120
-rw-r--r--drivers/mfd/wm831x-irq.c665
-rw-r--r--drivers/mfd/wm831x-otp.c91
-rw-r--r--drivers/mfd/wm831x-spi.c127
-rw-r--r--drivers/mfd/wm8350-core.c1195
-rw-r--r--drivers/mfd/wm8350-gpio.c4
-rw-r--r--drivers/mfd/wm8350-i2c.c66
-rw-r--r--drivers/mfd/wm8350-irq.c552
-rw-r--r--drivers/mfd/wm8350-regmap.c3236
-rw-r--r--drivers/mfd/wm8400-core.c352
-rw-r--r--drivers/mfd/wm8994-core.c693
-rw-r--r--drivers/mfd/wm8994-irq.c269
-rw-r--r--drivers/mfd/wm8994-regmap.c1223
-rw-r--r--drivers/mfd/wm8994.h25
-rw-r--r--drivers/mfd/wm8997-tables.c1527
-rw-r--r--drivers/misc/Kconfig407
-rw-r--r--drivers/misc/Makefile40
-rw-r--r--drivers/misc/ad525x_dpot-i2c.c121
-rw-r--r--drivers/misc/ad525x_dpot-spi.c143
-rw-r--r--drivers/misc/ad525x_dpot.c770
-rw-r--r--drivers/misc/ad525x_dpot.h215
-rw-r--r--drivers/misc/altera-stapl/Kconfig8
-rw-r--r--drivers/misc/altera-stapl/Makefile3
-rw-r--r--drivers/misc/altera-stapl/altera-comp.c142
-rw-r--r--drivers/misc/altera-stapl/altera-exprt.h33
-rw-r--r--drivers/misc/altera-stapl/altera-jtag.c1021
-rw-r--r--drivers/misc/altera-stapl/altera-jtag.h113
-rw-r--r--drivers/misc/altera-stapl/altera-lpt.c70
-rw-r--r--drivers/misc/altera-stapl/altera.c2537
-rw-r--r--drivers/misc/apds9802als.c322
-rw-r--r--drivers/misc/apds990x.c1290
-rw-r--r--drivers/misc/arm-charlcd.c389
-rw-r--r--drivers/misc/atmel-ssc.c165
-rw-r--r--drivers/misc/atmel_pwm.c21
-rw-r--r--drivers/misc/atmel_tclib.c66
-rw-r--r--drivers/misc/bh1770glc.c1418
-rw-r--r--drivers/misc/bh1780gli.c272
-rw-r--r--drivers/misc/bmp085-i2c.c84
-rw-r--r--drivers/misc/bmp085-spi.c80
-rw-r--r--drivers/misc/bmp085.c506
-rw-r--r--drivers/misc/bmp085.h33
-rw-r--r--drivers/misc/c2port/Kconfig11
-rw-r--r--drivers/misc/c2port/c2port-duramar2150.c3
-rw-r--r--drivers/misc/c2port/core.c120
-rw-r--r--drivers/misc/carma/Kconfig17
-rw-r--r--drivers/misc/carma/Makefile2
-rw-r--r--drivers/misc/carma/carma-fpga-program.c1143
-rw-r--r--drivers/misc/carma/carma-fpga.c1447
-rw-r--r--drivers/misc/cb710/Kconfig25
-rw-r--r--drivers/misc/cb710/Makefile6
-rw-r--r--drivers/misc/cb710/core.c359
-rw-r--r--drivers/misc/cb710/debug.c118
-rw-r--r--drivers/misc/cb710/sgbuf2.c146
-rw-r--r--drivers/misc/cs5535-mfgpt.c384
-rw-r--r--drivers/misc/ds1682.c (renamed from drivers/i2c/chips/ds1682.c)26
-rw-r--r--drivers/misc/dummy-irq.c63
-rw-r--r--drivers/misc/echo/Kconfig (renamed from drivers/staging/echo/Kconfig)0
-rw-r--r--drivers/misc/echo/Makefile (renamed from drivers/staging/echo/Makefile)0
-rw-r--r--drivers/misc/echo/echo.c674
-rw-r--r--drivers/misc/echo/echo.h (renamed from drivers/staging/echo/echo.h)49
-rw-r--r--drivers/misc/echo/fir.h216
-rw-r--r--drivers/misc/echo/oslec.h94
-rw-r--r--drivers/misc/eeprom/Kconfig112
-rw-r--r--drivers/misc/eeprom/Makefile8
-rw-r--r--drivers/misc/eeprom/at24.c696
-rw-r--r--drivers/misc/eeprom/at25.c485
-rw-r--r--drivers/misc/eeprom/digsy_mtc_eeprom.c85
-rw-r--r--drivers/misc/eeprom/eeprom.c237
-rw-r--r--drivers/misc/eeprom/eeprom_93cx6.c321
-rw-r--r--drivers/misc/eeprom/eeprom_93xx46.c398
-rw-r--r--drivers/misc/eeprom/max6875.c214
-rw-r--r--drivers/misc/eeprom/sunxi_sid.c157
-rw-r--r--drivers/misc/eeprom_93cx6.c240
-rw-r--r--drivers/misc/enclosure.c120
-rw-r--r--drivers/misc/fsa9480.c549
-rw-r--r--drivers/misc/genwqe/Kconfig13
-rw-r--r--drivers/misc/genwqe/Makefile7
-rw-r--r--drivers/misc/genwqe/card_base.c1205
-rw-r--r--drivers/misc/genwqe/card_base.h577
-rw-r--r--drivers/misc/genwqe/card_ddcb.c1380
-rw-r--r--drivers/misc/genwqe/card_ddcb.h188
-rw-r--r--drivers/misc/genwqe/card_debugfs.c499
-rw-r--r--drivers/misc/genwqe/card_dev.c1403
-rw-r--r--drivers/misc/genwqe/card_sysfs.c288
-rw-r--r--drivers/misc/genwqe/card_utils.c1034
-rw-r--r--drivers/misc/genwqe/genwqe_driver.h77
-rw-r--r--drivers/misc/hdpuftrs/Makefile1
-rw-r--r--drivers/misc/hdpuftrs/hdpu_cpustate.c256
-rw-r--r--drivers/misc/hdpuftrs/hdpu_nexus.c149
-rw-r--r--drivers/misc/hmc6352.c155
-rw-r--r--drivers/misc/hpilo.c376
-rw-r--r--drivers/misc/hpilo.h37
-rw-r--r--drivers/misc/ibmasm/command.c4
-rw-r--r--drivers/misc/ibmasm/dot_command.c2
-rw-r--r--drivers/misc/ibmasm/dot_command.h2
-rw-r--r--drivers/misc/ibmasm/event.c4
-rw-r--r--drivers/misc/ibmasm/heartbeat.c2
-rw-r--r--drivers/misc/ibmasm/i2o.h2
-rw-r--r--drivers/misc/ibmasm/ibmasm.h2
-rw-r--r--drivers/misc/ibmasm/ibmasmfs.c70
-rw-r--r--drivers/misc/ibmasm/lowlevel.c2
-rw-r--r--drivers/misc/ibmasm/lowlevel.h2
-rw-r--r--drivers/misc/ibmasm/module.c24
-rw-r--r--drivers/misc/ibmasm/r_heartbeat.c3
-rw-r--r--drivers/misc/ibmasm/remote.h4
-rw-r--r--drivers/misc/ibmasm/uart.c18
-rw-r--r--drivers/misc/ics932s401.c66
-rw-r--r--drivers/misc/ioc4.c34
-rw-r--r--drivers/misc/isl29003.c481
-rw-r--r--drivers/misc/isl29020.c238
-rw-r--r--drivers/misc/kgdbts.c219
-rw-r--r--drivers/misc/lattice-ecp3-config.c242
-rw-r--r--drivers/misc/lis3lv02d/Kconfig37
-rw-r--r--drivers/misc/lis3lv02d/Makefile7
-rw-r--r--drivers/misc/lis3lv02d/lis3lv02d.c1244
-rw-r--r--drivers/misc/lis3lv02d/lis3lv02d.h331
-rw-r--r--drivers/misc/lis3lv02d/lis3lv02d_i2c.c290
-rw-r--r--drivers/misc/lis3lv02d/lis3lv02d_spi.c154
-rw-r--r--drivers/misc/lkdtm.c761
-rw-r--r--drivers/misc/mei/Kconfig45
-rw-r--r--drivers/misc/mei/Makefile23
-rw-r--r--drivers/misc/mei/amthif.c745
-rw-r--r--drivers/misc/mei/bus.c548
-rw-r--r--drivers/misc/mei/client.c1067
-rw-r--r--drivers/misc/mei/client.h109
-rw-r--r--drivers/misc/mei/debugfs.c197
-rw-r--r--drivers/misc/mei/hbm.c879
-rw-r--r--drivers/misc/mei/hbm.h64
-rw-r--r--drivers/misc/mei/hw-me-regs.h185
-rw-r--r--drivers/misc/mei/hw-me.c885
-rw-r--r--drivers/misc/mei/hw-me.h56
-rw-r--r--drivers/misc/mei/hw-txe-regs.h294
-rw-r--r--drivers/misc/mei/hw-txe.c1190
-rw-r--r--drivers/misc/mei/hw-txe.h77
-rw-r--r--drivers/misc/mei/hw.h274
-rw-r--r--drivers/misc/mei/init.c395
-rw-r--r--drivers/misc/mei/interrupt.c659
-rw-r--r--drivers/misc/mei/main.c719
-rw-r--r--drivers/misc/mei/mei_dev.h752
-rw-r--r--drivers/misc/mei/nfc.c558
-rw-r--r--drivers/misc/mei/pci-me.c488
-rw-r--r--drivers/misc/mei/pci-txe.c436
-rw-r--r--drivers/misc/mei/wd.c401
-rw-r--r--drivers/misc/mic/Kconfig37
-rw-r--r--drivers/misc/mic/Makefile6
-rw-r--r--drivers/misc/mic/card/Makefile11
-rw-r--r--drivers/misc/mic/card/mic_debugfs.c130
-rw-r--r--drivers/misc/mic/card/mic_device.c305
-rw-r--r--drivers/misc/mic/card/mic_device.h134
-rw-r--r--drivers/misc/mic/card/mic_virtio.c633
-rw-r--r--drivers/misc/mic/card/mic_virtio.h76
-rw-r--r--drivers/misc/mic/card/mic_x100.c256
-rw-r--r--drivers/misc/mic/card/mic_x100.h48
-rw-r--r--drivers/misc/mic/common/mic_dev.h51
-rw-r--r--drivers/misc/mic/host/Makefile14
-rw-r--r--drivers/misc/mic/host/mic_boot.c300
-rw-r--r--drivers/misc/mic/host/mic_debugfs.c491
-rw-r--r--drivers/misc/mic/host/mic_device.h207
-rw-r--r--drivers/misc/mic/host/mic_fops.c222
-rw-r--r--drivers/misc/mic/host/mic_fops.h32
-rw-r--r--drivers/misc/mic/host/mic_intr.c630
-rw-r--r--drivers/misc/mic/host/mic_intr.h137
-rw-r--r--drivers/misc/mic/host/mic_main.c536
-rw-r--r--drivers/misc/mic/host/mic_smpt.c442
-rw-r--r--drivers/misc/mic/host/mic_smpt.h98
-rw-r--r--drivers/misc/mic/host/mic_sysfs.c459
-rw-r--r--drivers/misc/mic/host/mic_virtio.c701
-rw-r--r--drivers/misc/mic/host/mic_virtio.h138
-rw-r--r--drivers/misc/mic/host/mic_x100.c574
-rw-r--r--drivers/misc/mic/host/mic_x100.h98
-rw-r--r--drivers/misc/pch_phub.c896
-rw-r--r--drivers/misc/phantom.c51
-rw-r--r--drivers/misc/pti.c988
-rw-r--r--drivers/misc/sgi-gru/Makefile6
-rw-r--r--drivers/misc/sgi-gru/gru.h11
-rw-r--r--drivers/misc/sgi-gru/gru_instructions.h229
-rw-r--r--drivers/misc/sgi-gru/grufault.c503
-rw-r--r--drivers/misc/sgi-gru/grufile.c409
-rw-r--r--drivers/misc/sgi-gru/gruhandles.c216
-rw-r--r--drivers/misc/sgi-gru/gruhandles.h235
-rw-r--r--drivers/misc/sgi-gru/grukdump.c234
-rw-r--r--drivers/misc/sgi-gru/grukservices.c766
-rw-r--r--drivers/misc/sgi-gru/grukservices.h98
-rw-r--r--drivers/misc/sgi-gru/grulib.h64
-rw-r--r--drivers/misc/sgi-gru/grumain.c434
-rw-r--r--drivers/misc/sgi-gru/gruprocfs.c110
-rw-r--r--drivers/misc/sgi-gru/grutables.h171
-rw-r--r--drivers/misc/sgi-gru/grutlbpurge.c24
-rw-r--r--drivers/misc/sgi-xp/xp.h26
-rw-r--r--drivers/misc/sgi-xp/xp_main.c15
-rw-r--r--drivers/misc/sgi-xp/xp_sn2.c10
-rw-r--r--drivers/misc/sgi-xp/xp_uv.c33
-rw-r--r--drivers/misc/sgi-xp/xpc.h276
-rw-r--r--drivers/misc/sgi-xp/xpc_channel.c148
-rw-r--r--drivers/misc/sgi-xp/xpc_main.c183
-rw-r--r--drivers/misc/sgi-xp/xpc_partition.c59
-rw-r--r--drivers/misc/sgi-xp/xpc_sn2.c249
-rw-r--r--drivers/misc/sgi-xp/xpc_uv.c630
-rw-r--r--drivers/misc/sgi-xp/xpnet.c26
-rw-r--r--drivers/misc/spear13xx_pcie_gadget.c923
-rw-r--r--drivers/misc/sram.c228
-rw-r--r--drivers/misc/ti-st/Kconfig17
-rw-r--r--drivers/misc/ti-st/Makefile6
-rw-r--r--drivers/misc/ti-st/st_core.c898
-rw-r--r--drivers/misc/ti-st/st_kim.c869
-rw-r--r--drivers/misc/ti-st/st_ll.c169
-rw-r--r--drivers/misc/ti_dac7512.c104
-rw-r--r--drivers/misc/tifm_7xx1.c24
-rw-r--r--drivers/misc/tifm_core.c25
-rw-r--r--drivers/misc/tsl2550.c (renamed from drivers/i2c/chips/tsl2550.c)109
-rw-r--r--drivers/misc/vexpress-syscfg.c328
-rw-r--r--drivers/misc/vmw_balloon.c839
-rw-r--r--drivers/misc/vmw_vmci/Kconfig16
-rw-r--r--drivers/misc/vmw_vmci/Makefile4
-rw-r--r--drivers/misc/vmw_vmci/vmci_context.c1214
-rw-r--r--drivers/misc/vmw_vmci/vmci_context.h182
-rw-r--r--drivers/misc/vmw_vmci/vmci_datagram.c502
-rw-r--r--drivers/misc/vmw_vmci/vmci_datagram.h52
-rw-r--r--drivers/misc/vmw_vmci/vmci_doorbell.c601
-rw-r--r--drivers/misc/vmw_vmci/vmci_doorbell.h51
-rw-r--r--drivers/misc/vmw_vmci/vmci_driver.c117
-rw-r--r--drivers/misc/vmw_vmci/vmci_driver.h57
-rw-r--r--drivers/misc/vmw_vmci/vmci_event.c224
-rw-r--r--drivers/misc/vmw_vmci/vmci_event.h25
-rw-r--r--drivers/misc/vmw_vmci/vmci_guest.c772
-rw-r--r--drivers/misc/vmw_vmci/vmci_handle_array.c142
-rw-r--r--drivers/misc/vmw_vmci/vmci_handle_array.h52
-rw-r--r--drivers/misc/vmw_vmci/vmci_host.c1039
-rw-r--r--drivers/misc/vmw_vmci/vmci_queue_pair.c3339
-rw-r--r--drivers/misc/vmw_vmci/vmci_queue_pair.h173
-rw-r--r--drivers/misc/vmw_vmci/vmci_resource.c227
-rw-r--r--drivers/misc/vmw_vmci/vmci_resource.h59
-rw-r--r--drivers/misc/vmw_vmci/vmci_route.c226
-rw-r--r--drivers/misc/vmw_vmci/vmci_route.h30
-rw-r--r--drivers/mmc/Makefile7
-rw-r--r--drivers/mmc/card/Kconfig22
-rw-r--r--drivers/mmc/card/Makefile4
-rw-r--r--drivers/mmc/card/block.c2462
-rw-r--r--drivers/mmc/card/mmc_test.c1987
-rw-r--r--drivers/mmc/card/queue.c403
-rw-r--r--drivers/mmc/card/queue.h63
-rw-r--r--drivers/mmc/card/sdio_uart.c522
-rw-r--r--drivers/mmc/core/Kconfig17
-rw-r--r--drivers/mmc/core/Makefile7
-rw-r--r--drivers/mmc/core/bus.c179
-rw-r--r--drivers/mmc/core/bus.h2
-rw-r--r--drivers/mmc/core/core.c2088
-rw-r--r--drivers/mmc/core/core.h34
-rw-r--r--drivers/mmc/core/debugfs.c171
-rw-r--r--drivers/mmc/core/host.c447
-rw-r--r--drivers/mmc/core/host.h1
-rw-r--r--drivers/mmc/core/mmc.c1470
-rw-r--r--drivers/mmc/core/mmc_ops.c414
-rw-r--r--drivers/mmc/core/mmc_ops.h3
-rw-r--r--drivers/mmc/core/quirks.c99
-rw-r--r--drivers/mmc/core/sd.c937
-rw-r--r--drivers/mmc/core/sd.h16
-rw-r--r--drivers/mmc/core/sd_ops.c100
-rw-r--r--drivers/mmc/core/sd_ops.h1
-rw-r--r--drivers/mmc/core/sdio.c976
-rw-r--r--drivers/mmc/core/sdio_bus.c119
-rw-r--r--drivers/mmc/core/sdio_cis.c168
-rw-r--r--drivers/mmc/core/sdio_io.c107
-rw-r--r--drivers/mmc/core/sdio_irq.c111
-rw-r--r--drivers/mmc/core/sdio_ops.c97
-rw-r--r--drivers/mmc/core/sdio_ops.h1
-rw-r--r--drivers/mmc/core/slot-gpio.c355
-rw-r--r--drivers/mmc/host/Kconfig607
-rw-r--r--drivers/mmc/host/Makefile60
-rw-r--r--drivers/mmc/host/android-goldfish.c568
-rw-r--r--drivers/mmc/host/at91_mci.c1250
-rw-r--r--drivers/mmc/host/atmel-mci-regs.h223
-rw-r--r--drivers/mmc/host/atmel-mci.c1572
-rw-r--r--drivers/mmc/host/au1xmmc.c160
-rw-r--r--drivers/mmc/host/bfin_sdh.c682
-rw-r--r--drivers/mmc/host/cb710-mmc.c780
-rw-r--r--drivers/mmc/host/cb710-mmc.h104
-rw-r--r--drivers/mmc/host/davinci_mmc.c1483
-rw-r--r--drivers/mmc/host/dw_mmc-exynos.c450
-rw-r--r--drivers/mmc/host/dw_mmc-k3.c97
-rw-r--r--drivers/mmc/host/dw_mmc-pci.c125
-rw-r--r--drivers/mmc/host/dw_mmc-pltfm.c142
-rw-r--r--drivers/mmc/host/dw_mmc-pltfm.h20
-rw-r--r--drivers/mmc/host/dw_mmc.c2669
-rw-r--r--drivers/mmc/host/dw_mmc.h261
-rw-r--r--drivers/mmc/host/imxmmc.c1174
-rw-r--r--drivers/mmc/host/imxmmc.h64
-rw-r--r--drivers/mmc/host/jz4740_mmc.c921
-rw-r--r--drivers/mmc/host/mmc_spi.c421
-rw-r--r--drivers/mmc/host/mmci.c1506
-rw-r--r--drivers/mmc/host/mmci.h140
-rw-r--r--drivers/mmc/host/moxart-mmc.c730
-rw-r--r--drivers/mmc/host/msm_sdcc.c1474
-rw-r--r--drivers/mmc/host/msm_sdcc.h256
-rw-r--r--drivers/mmc/host/mvsdio.c881
-rw-r--r--drivers/mmc/host/mvsdio.h190
-rw-r--r--drivers/mmc/host/mxcmmc.c1252
-rw-r--r--drivers/mmc/host/mxs-mmc.c750
-rw-r--r--drivers/mmc/host/of_mmc_spi.c72
-rw-r--r--drivers/mmc/host/omap.c718
-rw-r--r--drivers/mmc/host/omap_hsmmc.c2261
-rw-r--r--drivers/mmc/host/pxamci.c307
-rw-r--r--drivers/mmc/host/ricoh_mmc.c262
-rw-r--r--drivers/mmc/host/rtsx_pci_sdmmc.c1306
-rw-r--r--drivers/mmc/host/rtsx_usb_sdmmc.c1456
-rw-r--r--drivers/mmc/host/s3cmci.c750
-rw-r--r--drivers/mmc/host/s3cmci.h14
-rw-r--r--drivers/mmc/host/sdhci-acpi.c417
-rw-r--r--drivers/mmc/host/sdhci-bcm-kona.c373
-rw-r--r--drivers/mmc/host/sdhci-bcm2835.c208
-rw-r--r--drivers/mmc/host/sdhci-cns3xxx.c121
-rw-r--r--drivers/mmc/host/sdhci-dove.c162
-rw-r--r--drivers/mmc/host/sdhci-esdhc-imx.c1223
-rw-r--r--drivers/mmc/host/sdhci-esdhc.h50
-rw-r--r--drivers/mmc/host/sdhci-msm.c622
-rw-r--r--drivers/mmc/host/sdhci-of-arasan.c228
-rw-r--r--drivers/mmc/host/sdhci-of-esdhc.c404
-rw-r--r--drivers/mmc/host/sdhci-of-hlwd.c104
-rw-r--r--drivers/mmc/host/sdhci-pci-data.c5
-rw-r--r--drivers/mmc/host/sdhci-pci-o2micro.c397
-rw-r--r--drivers/mmc/host/sdhci-pci-o2micro.h75
-rw-r--r--drivers/mmc/host/sdhci-pci.c1141
-rw-r--r--drivers/mmc/host/sdhci-pci.h78
-rw-r--r--drivers/mmc/host/sdhci-pltfm.c282
-rw-r--r--drivers/mmc/host/sdhci-pltfm.h122
-rw-r--r--drivers/mmc/host/sdhci-pxav2.c279
-rw-r--r--drivers/mmc/host/sdhci-pxav3.c514
-rw-r--r--drivers/mmc/host/sdhci-s3c-regs.h87
-rw-r--r--drivers/mmc/host/sdhci-s3c.c762
-rw-r--r--drivers/mmc/host/sdhci-sirf.c184
-rw-r--r--drivers/mmc/host/sdhci-spear.c245
-rw-r--r--drivers/mmc/host/sdhci-tegra.c335
-rw-r--r--drivers/mmc/host/sdhci.c2488
-rw-r--r--drivers/mmc/host/sdhci.h307
-rw-r--r--drivers/mmc/host/sdricoh_cs.c36
-rw-r--r--drivers/mmc/host/sh_mmcif.c1586
-rw-r--r--drivers/mmc/host/sh_mobile_sdhi.c357
-rw-r--r--drivers/mmc/host/sunxi-mmc.c1049
-rw-r--r--drivers/mmc/host/tifm_sd.c46
-rw-r--r--drivers/mmc/host/tmio_mmc.c675
-rw-r--r--drivers/mmc/host/tmio_mmc.h311
-rw-r--r--drivers/mmc/host/tmio_mmc_dma.c358
-rw-r--r--drivers/mmc/host/tmio_mmc_pio.c1189
-rw-r--r--drivers/mmc/host/usdhi6rol0.c1847
-rw-r--r--drivers/mmc/host/ushc.c569
-rw-r--r--drivers/mmc/host/via-sdmmc.c1339
-rw-r--r--drivers/mmc/host/vub300.c2490
-rw-r--r--drivers/mmc/host/wbsd.c96
-rw-r--r--drivers/mmc/host/wmt-sdmmc.c1006
-rw-r--r--drivers/mtd/Kconfig125
-rw-r--r--drivers/mtd/Makefile12
-rw-r--r--drivers/mtd/afs.c15
-rw-r--r--drivers/mtd/ar7part.c40
-rw-r--r--drivers/mtd/bcm47xxpart.c282
-rw-r--r--drivers/mtd/bcm63xxpart.c241
-rw-r--r--drivers/mtd/chips/Kconfig35
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0001.c499
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0002.c1161
-rw-r--r--drivers/mtd/chips/cfi_cmdset_0020.c194
-rw-r--r--drivers/mtd/chips/cfi_probe.c66
-rw-r--r--drivers/mtd/chips/cfi_util.c38
-rw-r--r--drivers/mtd/chips/chipreg.c6
-rw-r--r--drivers/mtd/chips/fwh_lock.h15
-rw-r--r--drivers/mtd/chips/gen_probe.c23
-rw-r--r--drivers/mtd/chips/jedec_probe.c444
-rw-r--r--drivers/mtd/chips/map_absent.c11
-rw-r--r--drivers/mtd/chips/map_ram.c30
-rw-r--r--drivers/mtd/chips/map_rom.c35
-rw-r--r--drivers/mtd/cmdlinepart.c285
-rw-r--r--drivers/mtd/devices/Kconfig174
-rw-r--r--drivers/mtd/devices/Makefile17
-rw-r--r--drivers/mtd/devices/bcm47xxsflash.c340
-rw-r--r--drivers/mtd/devices/bcm47xxsflash.h76
-rw-r--r--drivers/mtd/devices/block2mtd.c138
-rw-r--r--drivers/mtd/devices/doc2000.c1202
-rw-r--r--drivers/mtd/devices/doc2001.c842
-rw-r--r--drivers/mtd/devices/doc2001plus.c1107
-rw-r--r--drivers/mtd/devices/docecc.c523
-rw-r--r--drivers/mtd/devices/docg3.c2143
-rw-r--r--drivers/mtd/devices/docg3.h370
-rw-r--r--drivers/mtd/devices/docprobe.c338
-rw-r--r--drivers/mtd/devices/elm.c579
-rw-r--r--drivers/mtd/devices/lart.c52
-rw-r--r--drivers/mtd/devices/m25p80.c792
-rw-r--r--drivers/mtd/devices/ms02-nv.c18
-rw-r--r--drivers/mtd/devices/mtd_dataflash.c227
-rw-r--r--drivers/mtd/devices/mtdram.c58
-rw-r--r--drivers/mtd/devices/phram.c195
-rw-r--r--drivers/mtd/devices/pmc551.c122
-rw-r--r--drivers/mtd/devices/ps3vram.c768
-rw-r--r--drivers/mtd/devices/serial_flash_cmds.h61
-rw-r--r--drivers/mtd/devices/slram.c72
-rw-r--r--drivers/mtd/devices/spear_smi.c1093
-rw-r--r--drivers/mtd/devices/sst25l.c431
-rw-r--r--drivers/mtd/devices/st_spi_fsm.c2080
-rw-r--r--drivers/mtd/ftl.c128
-rw-r--r--drivers/mtd/inftlcore.c116
-rw-r--r--drivers/mtd/inftlmount.c149
-rw-r--r--drivers/mtd/lpddr/Kconfig17
-rw-r--r--drivers/mtd/lpddr/Makefile1
-rw-r--r--drivers/mtd/lpddr/lpddr2_nvm.c507
-rw-r--r--drivers/mtd/lpddr/lpddr_cmds.c189
-rw-r--r--drivers/mtd/lpddr/qinfo_probe.c14
-rw-r--r--drivers/mtd/maps/Kconfig299
-rw-r--r--drivers/mtd/maps/Makefile30
-rw-r--r--drivers/mtd/maps/alchemy-flash.c166
-rw-r--r--drivers/mtd/maps/amd76xrom.c20
-rw-r--r--drivers/mtd/maps/autcpu12-nvram.c125
-rw-r--r--drivers/mtd/maps/bfin-async-flash.c78
-rw-r--r--drivers/mtd/maps/cdb89712.c278
-rw-r--r--drivers/mtd/maps/ceiva.c347
-rw-r--r--drivers/mtd/maps/cfi_flagadm.c16
-rw-r--r--drivers/mtd/maps/ck804xrom.c23
-rw-r--r--drivers/mtd/maps/dbox2-flash.c123
-rw-r--r--drivers/mtd/maps/dc21285.c32
-rw-r--r--drivers/mtd/maps/dilnetpc.c495
-rw-r--r--drivers/mtd/maps/dmv182.c146
-rw-r--r--drivers/mtd/maps/edb7312.c144
-rw-r--r--drivers/mtd/maps/esb2rom.c22
-rw-r--r--drivers/mtd/maps/fortunet.c276
-rw-r--r--drivers/mtd/maps/gpio-addr-flash.c288
-rw-r--r--drivers/mtd/maps/h720x-flash.c141
-rw-r--r--drivers/mtd/maps/ichxrom.c22
-rw-r--r--drivers/mtd/maps/impa7.c63
-rw-r--r--drivers/mtd/maps/integrator-flash.c211
-rw-r--r--drivers/mtd/maps/intel_vr_nor.c63
-rw-r--r--drivers/mtd/maps/ipaq-flash.c460
-rw-r--r--drivers/mtd/maps/ixp2000.c272
-rw-r--r--drivers/mtd/maps/ixp4xx.c89
-rw-r--r--drivers/mtd/maps/l440gx.c18
-rw-r--r--drivers/mtd/maps/lantiq-flash.c217
-rw-r--r--drivers/mtd/maps/latch-addr-flash.c230
-rw-r--r--drivers/mtd/maps/mbx860.c98
-rw-r--r--drivers/mtd/maps/netsc520.c4
-rw-r--r--drivers/mtd/maps/nettel.c12
-rw-r--r--drivers/mtd/maps/octagon-5066.c247
-rw-r--r--drivers/mtd/maps/omap_nor.c186
-rw-r--r--drivers/mtd/maps/pci.c53
-rw-r--r--drivers/mtd/maps/pcmciamtd.c467
-rw-r--r--drivers/mtd/maps/physmap.c200
-rw-r--r--drivers/mtd/maps/physmap_of.c400
-rw-r--r--drivers/mtd/maps/pismo.c292
-rw-r--r--drivers/mtd/maps/plat-ram.c81
-rw-r--r--drivers/mtd/maps/pmcmsp-flash.c83
-rw-r--r--drivers/mtd/maps/pmcmsp-ramroot.c104
-rw-r--r--drivers/mtd/maps/pxa2xx-flash.c129
-rw-r--r--drivers/mtd/maps/rbtx4939-flash.c140
-rw-r--r--drivers/mtd/maps/redwood.c174
-rw-r--r--drivers/mtd/maps/rpxlite.c64
-rw-r--r--drivers/mtd/maps/sa1100-flash.c236
-rw-r--r--drivers/mtd/maps/sbc8240.c250
-rw-r--r--drivers/mtd/maps/sbc_gxx.c5
-rw-r--r--drivers/mtd/maps/sc520cdp.c16
-rw-r--r--drivers/mtd/maps/scb2_flash.c38
-rw-r--r--drivers/mtd/maps/scx200_docflash.c21
-rw-r--r--drivers/mtd/maps/sharpsl-flash.c116
-rw-r--r--drivers/mtd/maps/solutionengine.c49
-rw-r--r--drivers/mtd/maps/sun_uflash.c40
-rw-r--r--drivers/mtd/maps/tqm8xxl.c259
-rw-r--r--drivers/mtd/maps/ts5500_flash.c5
-rw-r--r--drivers/mtd/maps/tsunami_flash.c9
-rw-r--r--drivers/mtd/maps/uclinux.c64
-rw-r--r--drivers/mtd/maps/vmax301.c197
-rw-r--r--drivers/mtd/maps/vmu-flash.c824
-rw-r--r--drivers/mtd/maps/wr_sbc82xx_flash.c178
-rw-r--r--drivers/mtd/mtd_blkdevs.c474
-rw-r--r--drivers/mtd/mtdblock.c141
-rw-r--r--drivers/mtd/mtdblock_ro.c31
-rw-r--r--drivers/mtd/mtdchar.c1002
-rw-r--r--drivers/mtd/mtdconcat.c212
-rw-r--r--drivers/mtd/mtdcore.c1192
-rw-r--r--drivers/mtd/mtdcore.h28
-rw-r--r--drivers/mtd/mtdoops.c405
-rw-r--r--drivers/mtd/mtdpart.c546
-rw-r--r--drivers/mtd/mtdsuper.c98
-rw-r--r--drivers/mtd/mtdswap.c1591
-rw-r--r--drivers/mtd/nand/Kconfig390
-rw-r--r--drivers/mtd/nand/Makefile33
-rw-r--r--drivers/mtd/nand/alauda.c742
-rw-r--r--drivers/mtd/nand/ams-delta.c164
-rw-r--r--drivers/mtd/nand/atmel_nand.c2013
-rw-r--r--drivers/mtd/nand/atmel_nand_ecc.h114
-rw-r--r--drivers/mtd/nand/atmel_nand_nfc.h98
-rw-r--r--drivers/mtd/nand/au1550nd.c371
-rw-r--r--drivers/mtd/nand/autcpu12.c239
-rw-r--r--drivers/mtd/nand/bcm47xxnflash/Makefile4
-rw-r--r--drivers/mtd/nand/bcm47xxnflash/bcm47xxnflash.h26
-rw-r--r--drivers/mtd/nand/bcm47xxnflash/main.c80
-rw-r--r--drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c413
-rw-r--r--drivers/mtd/nand/bf5xx_nand.c249
-rw-r--r--drivers/mtd/nand/cafe_nand.c179
-rw-r--r--drivers/mtd/nand/cmx270_nand.c46
-rw-r--r--drivers/mtd/nand/cs553x_nand.c37
-rw-r--r--drivers/mtd/nand/davinci_nand.c884
-rw-r--r--drivers/mtd/nand/denali.c1616
-rw-r--r--drivers/mtd/nand/denali.h502
-rw-r--r--drivers/mtd/nand/denali_dt.c132
-rw-r--r--drivers/mtd/nand/denali_pci.c142
-rw-r--r--drivers/mtd/nand/diskonchip.c138
-rw-r--r--drivers/mtd/nand/docg4.c1394
-rw-r--r--drivers/mtd/nand/edb7312.c210
-rw-r--r--drivers/mtd/nand/excite_nandflash.c247
-rw-r--r--drivers/mtd/nand/fsl_elbc_nand.c732
-rw-r--r--drivers/mtd/nand/fsl_ifc_nand.c1181
-rw-r--r--drivers/mtd/nand/fsl_upm.c205
-rw-r--r--drivers/mtd/nand/fsmc_nand.c1238
-rw-r--r--drivers/mtd/nand/gpio.c349
-rw-r--r--drivers/mtd/nand/gpmi-nand/Makefile3
-rw-r--r--drivers/mtd/nand/gpmi-nand/bch-regs.h128
-rw-r--r--drivers/mtd/nand/gpmi-nand/gpmi-lib.c1355
-rw-r--r--drivers/mtd/nand/gpmi-nand/gpmi-nand.c1844
-rw-r--r--drivers/mtd/nand/gpmi-nand/gpmi-nand.h305
-rw-r--r--drivers/mtd/nand/gpmi-nand/gpmi-regs.h187
-rw-r--r--drivers/mtd/nand/h1910.c186
-rw-r--r--drivers/mtd/nand/jz4740_nand.c589
-rw-r--r--drivers/mtd/nand/lpc32xx_mlc.c896
-rw-r--r--drivers/mtd/nand/lpc32xx_slc.c1018
-rw-r--r--drivers/mtd/nand/mpc5121_nfc.c859
-rw-r--r--drivers/mtd/nand/mxc_nand.c1905
-rw-r--r--drivers/mtd/nand/nand_base.c3395
-rw-r--r--drivers/mtd/nand/nand_bbt.c1206
-rw-r--r--drivers/mtd/nand/nand_bch.c243
-rw-r--r--drivers/mtd/nand/nand_ecc.c73
-rw-r--r--drivers/mtd/nand/nand_ids.c240
-rw-r--r--drivers/mtd/nand/nandsim.c486
-rw-r--r--drivers/mtd/nand/ndfc.c148
-rw-r--r--drivers/mtd/nand/nuc900_nand.c312
-rw-r--r--drivers/mtd/nand/omap2.c2078
-rw-r--r--drivers/mtd/nand/orion_nand.c158
-rw-r--r--drivers/mtd/nand/pasemi_nand.c43
-rw-r--r--drivers/mtd/nand/plat_nand.c139
-rw-r--r--drivers/mtd/nand/ppchameleonevb.c437
-rw-r--r--drivers/mtd/nand/pxa3xx_nand.c2061
-rw-r--r--drivers/mtd/nand/r852.c1085
-rw-r--r--drivers/mtd/nand/r852.h161
-rw-r--r--drivers/mtd/nand/rtc_from4.c624
-rw-r--r--drivers/mtd/nand/s3c2410.c568
-rw-r--r--drivers/mtd/nand/sh_flctl.c763
-rw-r--r--drivers/mtd/nand/sharpsl.c51
-rw-r--r--drivers/mtd/nand/sm_common.c141
-rw-r--r--drivers/mtd/nand/sm_common.h61
-rw-r--r--drivers/mtd/nand/socrates_nand.c254
-rw-r--r--drivers/mtd/nand/spia.c176
-rw-r--r--drivers/mtd/nand/tmio_nand.c130
-rw-r--r--drivers/mtd/nand/ts7250.c204
-rw-r--r--drivers/mtd/nand/txx9ndfmc.c428
-rw-r--r--drivers/mtd/nand/xway_nand.c201
-rw-r--r--drivers/mtd/nftlcore.c123
-rw-r--r--drivers/mtd/nftlmount.c42
-rw-r--r--drivers/mtd/ofpart.c165
-rw-r--r--drivers/mtd/onenand/Kconfig24
-rw-r--r--drivers/mtd/onenand/Makefile4
-rw-r--r--drivers/mtd/onenand/generic.c83
-rw-r--r--drivers/mtd/onenand/omap2.c296
-rw-r--r--drivers/mtd/onenand/onenand_base.c1952
-rw-r--r--drivers/mtd/onenand/onenand_bbt.c35
-rw-r--r--drivers/mtd/onenand/onenand_sim.c495
-rw-r--r--drivers/mtd/onenand/samsung.c1137
-rw-r--r--drivers/mtd/onenand/samsung.h59
-rw-r--r--drivers/mtd/redboot.c48
-rw-r--r--drivers/mtd/rfd_ftl.c59
-rw-r--r--drivers/mtd/sm_ftl.c1297
-rw-r--r--drivers/mtd/sm_ftl.h94
-rw-r--r--drivers/mtd/spi-nor/Kconfig17
-rw-r--r--drivers/mtd/spi-nor/Makefile2
-rw-r--r--drivers/mtd/spi-nor/fsl-quadspi.c1009
-rw-r--r--drivers/mtd/spi-nor/spi-nor.c1107
-rw-r--r--drivers/mtd/ssfdc.c63
-rw-r--r--drivers/mtd/tests/Makefile11
-rw-r--r--drivers/mtd/tests/mtd_nandecctest.c316
-rw-r--r--drivers/mtd/tests/mtd_oobtest.c742
-rw-r--r--drivers/mtd/tests/mtd_pagetest.c632
-rw-r--r--drivers/mtd/tests/mtd_readtest.c253
-rw-r--r--drivers/mtd/tests/mtd_speedtest.c502
-rw-r--r--drivers/mtd/tests/mtd_stresstest.c330
-rw-r--r--drivers/mtd/tests/mtd_subpagetest.c525
-rw-r--r--drivers/mtd/tests/mtd_test.c113
-rw-r--r--drivers/mtd/tests/mtd_test.h11
-rw-r--r--drivers/mtd/tests/mtd_torturetest.c530
-rw-r--r--drivers/mtd/tests/nandbiterrs.c428
-rw-r--r--drivers/mtd/tests/oobtest.c649
-rw-r--r--drivers/mtd/tests/pagetest.c464
-rw-r--r--drivers/mtd/tests/readtest.c222
-rw-r--r--drivers/mtd/tests/speedtest.c416
-rw-r--r--drivers/mtd/tests/stresstest.c250
-rw-r--r--drivers/mtd/tests/subpagetest.c435
-rw-r--r--drivers/mtd/tests/torturetest.c483
-rw-r--r--drivers/mtd/ubi/Kconfig111
-rw-r--r--drivers/mtd/ubi/Kconfig.debug104
-rw-r--r--drivers/mtd/ubi/Makefile9
-rw-r--r--drivers/mtd/ubi/attach.c1757
-rw-r--r--drivers/mtd/ubi/block.c649
-rw-r--r--drivers/mtd/ubi/build.c743
-rw-r--r--drivers/mtd/ubi/cdev.c340
-rw-r--r--drivers/mtd/ubi/debug.c450
-rw-r--r--drivers/mtd/ubi/debug.h166
-rw-r--r--drivers/mtd/ubi/eba.c372
-rw-r--r--drivers/mtd/ubi/fastmap.c1567
-rw-r--r--drivers/mtd/ubi/gluebi.c448
-rw-r--r--drivers/mtd/ubi/io.c773
-rw-r--r--drivers/mtd/ubi/kapi.c230
-rw-r--r--drivers/mtd/ubi/misc.c60
-rw-r--r--drivers/mtd/ubi/scan.c1314
-rw-r--r--drivers/mtd/ubi/scan.h162
-rw-r--r--drivers/mtd/ubi/ubi-media.h159
-rw-r--r--drivers/mtd/ubi/ubi.h527
-rw-r--r--drivers/mtd/ubi/upd.c68
-rw-r--r--drivers/mtd/ubi/vmt.c154
-rw-r--r--drivers/mtd/ubi/vtbl.c275
-rw-r--r--drivers/mtd/ubi/wl.c1130
-rw-r--r--drivers/net/3c501.c899
-rw-r--r--drivers/net/3c501.h91
-rw-r--r--drivers/net/3c503.c756
-rw-r--r--drivers/net/3c503.h91
-rw-r--r--drivers/net/3c505.c1659
-rw-r--r--drivers/net/3c505.h292
-rw-r--r--drivers/net/3c507.c938
-rw-r--r--drivers/net/3c523.c1307
-rw-r--r--drivers/net/3c523.h355
-rw-r--r--drivers/net/3c527.c1659
-rw-r--r--drivers/net/3c527.h81
-rw-r--r--drivers/net/7990.c674
-rw-r--r--drivers/net/7990.h254
-rw-r--r--drivers/net/Kconfig3117
-rw-r--r--drivers/net/Makefile297
-rw-r--r--drivers/net/Space.c211
-rw-r--r--drivers/net/a2065.c818
-rw-r--r--drivers/net/ac3200.c421
-rw-r--r--drivers/net/appletalk/Kconfig20
-rw-r--r--drivers/net/appletalk/cops.c72
-rw-r--r--drivers/net/appletalk/ipddp.c80
-rw-r--r--drivers/net/appletalk/ltpc.c67
-rw-r--r--drivers/net/arcnet/Kconfig12
-rw-r--r--drivers/net/arcnet/Makefile1
-rw-r--r--drivers/net/arcnet/arc-rawmode.c6
-rw-r--r--drivers/net/arcnet/arc-rimi.c18
-rw-r--r--drivers/net/arcnet/arcnet.c116
-rw-r--r--drivers/net/arcnet/capmode.c183
-rw-r--r--drivers/net/arcnet/com20020-isa.c8
-rw-r--r--drivers/net/arcnet/com20020-pci.c17
-rw-r--r--drivers/net/arcnet/com20020.c15
-rw-r--r--drivers/net/arcnet/com20020_cs.c335
-rw-r--r--drivers/net/arcnet/com90io.c6
-rw-r--r--drivers/net/arcnet/com90xx.c4
-rw-r--r--drivers/net/arcnet/rfc1051.c13
-rw-r--r--drivers/net/arcnet/rfc1201.c48
-rw-r--r--drivers/net/ariadne.c858
-rw-r--r--drivers/net/arm/Kconfig65
-rw-r--r--drivers/net/arm/Makefile13
-rw-r--r--drivers/net/arm/at91_ether.c1251
-rw-r--r--drivers/net/arm/at91_ether.h109
-rw-r--r--drivers/net/at1700.c901
-rw-r--r--drivers/net/au1000_eth.c1319
-rw-r--r--drivers/net/au1000_eth.h119
-rw-r--r--drivers/net/ax88796.c1020
-rw-r--r--drivers/net/bfin_mac.c1210
-rw-r--r--drivers/net/bfin_mac.h72
-rw-r--r--drivers/net/bnx2.c7998
-rw-r--r--drivers/net/bnx2_fw.h4567
-rw-r--r--drivers/net/bnx2_fw2.h4616
-rw-r--r--drivers/net/bnx2x.h1163
-rw-r--r--drivers/net/bnx2x_fw_defs.h403
-rw-r--r--drivers/net/bnx2x_hsi.h2873
-rw-r--r--drivers/net/bnx2x_init.h812
-rw-r--r--drivers/net/bnx2x_init_values.h14723
-rw-r--r--drivers/net/bnx2x_link.c4906
-rw-r--r--drivers/net/bnx2x_link.h173
-rw-r--r--drivers/net/bnx2x_main.c10621
-rw-r--r--drivers/net/bnx2x_reg.h5653
-rw-r--r--drivers/net/bonding/Makefile6
-rw-r--r--drivers/net/bonding/bond_3ad.c1801
-rw-r--r--drivers/net/bonding/bond_3ad.h203
-rw-r--r--drivers/net/bonding/bond_alb.c1218
-rw-r--r--drivers/net/bonding/bond_alb.h85
-rw-r--r--drivers/net/bonding/bond_debugfs.c145
-rw-r--r--drivers/net/bonding/bond_ipv6.c216
-rw-r--r--drivers/net/bonding/bond_main.c5446
-rw-r--r--drivers/net/bonding/bond_netlink.c573
-rw-r--r--drivers/net/bonding/bond_options.c1394
-rw-r--r--drivers/net/bonding/bond_options.h130
-rw-r--r--drivers/net/bonding/bond_procfs.c296
-rw-r--r--drivers/net/bonding/bond_sysfs.c1507
-rw-r--r--drivers/net/bonding/bond_sysfs_slave.c144
-rw-r--r--drivers/net/bonding/bonding.h618
-rw-r--r--drivers/net/caif/Kconfig56
-rw-r--r--drivers/net/caif/Makefile14
-rw-r--r--drivers/net/caif/caif_hsi.c1482
-rw-r--r--drivers/net/caif/caif_serial.c474
-rw-r--r--drivers/net/caif/caif_spi.c871
-rw-r--r--drivers/net/caif/caif_spi_slave.c254
-rw-r--r--drivers/net/caif/caif_virtio.c791
-rw-r--r--drivers/net/can/Kconfig149
-rw-r--r--drivers/net/can/Makefile26
-rw-r--r--drivers/net/can/at91_can.c1439
-rw-r--r--drivers/net/can/bfin_can.c692
-rw-r--r--drivers/net/can/c_can/Kconfig23
-rw-r--r--drivers/net/can/c_can/Makefile9
-rw-r--r--drivers/net/can/c_can/c_can.c1274
-rw-r--r--drivers/net/can/c_can/c_can.h207
-rw-r--r--drivers/net/can/c_can/c_can_pci.c292
-rw-r--r--drivers/net/can/c_can/c_can_platform.c432
-rw-r--r--drivers/net/can/cc770/Kconfig21
-rw-r--r--drivers/net/can/cc770/Makefile9
-rw-r--r--drivers/net/can/cc770/cc770.c883
-rw-r--r--drivers/net/can/cc770/cc770.h203
-rw-r--r--drivers/net/can/cc770/cc770_isa.c380
-rw-r--r--drivers/net/can/cc770/cc770_platform.c274
-rw-r--r--drivers/net/can/dev.c939
-rw-r--r--drivers/net/can/flexcan.c1256
-rw-r--r--drivers/net/can/grcan.c1752
-rw-r--r--drivers/net/can/janz-ican3.c1924
-rw-r--r--drivers/net/can/led.c127
-rw-r--r--drivers/net/can/mscan/Kconfig24
-rw-r--r--drivers/net/can/mscan/Makefile5
-rw-r--r--drivers/net/can/mscan/mpc5xxx_can.c459
-rw-r--r--drivers/net/can/mscan/mscan.c737
-rw-r--r--drivers/net/can/mscan/mscan.h303
-rw-r--r--drivers/net/can/pch_can.c1279
-rw-r--r--drivers/net/can/rcar_can.c876
-rw-r--r--drivers/net/can/sja1000/Kconfig103
-rw-r--r--drivers/net/can/sja1000/Makefile16
-rw-r--r--drivers/net/can/sja1000/ems_pci.c372
-rw-r--r--drivers/net/can/sja1000/ems_pcmcia.c320
-rw-r--r--drivers/net/can/sja1000/kvaser_pci.c399
-rw-r--r--drivers/net/can/sja1000/peak_pci.c761
-rw-r--r--drivers/net/can/sja1000/peak_pcmcia.c744
-rw-r--r--drivers/net/can/sja1000/plx_pci.c650
-rw-r--r--drivers/net/can/sja1000/sja1000.c694
-rw-r--r--drivers/net/can/sja1000/sja1000.h182
-rw-r--r--drivers/net/can/sja1000/sja1000_isa.c324
-rw-r--r--drivers/net/can/sja1000/sja1000_platform.c261
-rw-r--r--drivers/net/can/sja1000/tscan1.c216
-rw-r--r--drivers/net/can/slcan.c782
-rw-r--r--drivers/net/can/softing/Kconfig30
-rw-r--r--drivers/net/can/softing/Makefile6
-rw-r--r--drivers/net/can/softing/softing.h167
-rw-r--r--drivers/net/can/softing/softing_cs.c346
-rw-r--r--drivers/net/can/softing/softing_fw.c692
-rw-r--r--drivers/net/can/softing/softing_main.c870
-rw-r--r--drivers/net/can/softing/softing_platform.h40
-rw-r--r--drivers/net/can/spi/Kconfig10
-rw-r--r--drivers/net/can/spi/Makefile8
-rw-r--r--drivers/net/can/spi/mcp251x.c1266
-rw-r--r--drivers/net/can/ti_hecc.c1055
-rw-r--r--drivers/net/can/usb/Kconfig67
-rw-r--r--drivers/net/can/usb/Makefile12
-rw-r--r--drivers/net/can/usb/ems_usb.c1090
-rw-r--r--drivers/net/can/usb/esd_usb2.c1157
-rw-r--r--drivers/net/can/usb/gs_usb.c971
-rw-r--r--drivers/net/can/usb/kvaser_usb.c1665
-rw-r--r--drivers/net/can/usb/peak_usb/Makefile2
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb.c903
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_core.c950
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_core.h145
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_pro.c1064
-rw-r--r--drivers/net/can/usb/peak_usb/pcan_usb_pro.h179
-rw-r--r--drivers/net/can/usb/usb_8dev.c1035
-rw-r--r--drivers/net/can/vcan.c49
-rw-r--r--drivers/net/can/xilinx_can.c1208
-rw-r--r--drivers/net/chelsio/common.h392
-rw-r--r--drivers/net/chelsio/regs.h2168
-rw-r--r--drivers/net/chelsio/sge.c2144
-rw-r--r--drivers/net/cris/eth_v10.c123
-rw-r--r--drivers/net/cs89x0.c1988
-rw-r--r--drivers/net/cxgb3/Makefile8
-rw-r--r--drivers/net/cxgb3/adapter.h310
-rw-r--r--drivers/net/cxgb3/ael1002.c1217
-rw-r--r--drivers/net/cxgb3/common.h818
-rw-r--r--drivers/net/cxgb3/l2t.c445
-rw-r--r--drivers/net/cxgb3/l2t.h141
-rw-r--r--drivers/net/cxgb3/regs.h2557
-rw-r--r--drivers/net/cxgb3/sge.c3257
-rw-r--r--drivers/net/cxgb3/version.h44
-rw-r--r--drivers/net/cxgb3/xgmac.c655
-rw-r--r--drivers/net/de600.c543
-rw-r--r--drivers/net/de600.h168
-rw-r--r--drivers/net/de620.c1012
-rw-r--r--drivers/net/de620.h117
-rw-r--r--drivers/net/depca.c2097
-rw-r--r--drivers/net/depca.h185
-rw-r--r--drivers/net/dl2k.c1845
-rw-r--r--drivers/net/dm9000.c1488
-rw-r--r--drivers/net/dsa/Kconfig39
-rw-r--r--drivers/net/dsa/Makefile9
-rw-r--r--drivers/net/dsa/mv88e6060.c286
-rw-r--r--drivers/net/dsa/mv88e6123_61_65.c409
-rw-r--r--drivers/net/dsa/mv88e6131.c398
-rw-r--r--drivers/net/dsa/mv88e6xxx.c521
-rw-r--r--drivers/net/dsa/mv88e6xxx.h95
-rw-r--r--drivers/net/dummy.c102
-rw-r--r--drivers/net/e1000/e1000.h354
-rw-r--r--drivers/net/e1000/e1000_hw.c8878
-rw-r--r--drivers/net/e1000/e1000_hw.h3406
-rw-r--r--drivers/net/e1000/e1000_main.c4849
-rw-r--r--drivers/net/e1000e/82571.c1515
-rw-r--r--drivers/net/e1000e/Makefile37
-rw-r--r--drivers/net/e1000e/defines.h784
-rw-r--r--drivers/net/e1000e/e1000.h576
-rw-r--r--drivers/net/e1000e/es2lan.c1430
-rw-r--r--drivers/net/e1000e/ethtool.c1956
-rw-r--r--drivers/net/e1000e/hw.h904
-rw-r--r--drivers/net/e1000e/ich8lan.c2653
-rw-r--r--drivers/net/e1000e/lib.c2524
-rw-r--r--drivers/net/e1000e/netdev.c5253
-rw-r--r--drivers/net/e1000e/param.c473
-rw-r--r--drivers/net/e1000e/phy.c2291
-rw-r--r--drivers/net/e2100.c490
-rw-r--r--drivers/net/eepro.c1815
-rw-r--r--drivers/net/eexpress.c1718
-rw-r--r--drivers/net/eexpress.h179
-rw-r--r--drivers/net/ehea/ehea_ethtool.c282
-rw-r--r--drivers/net/ehea/ehea_hcall.h51
-rw-r--r--drivers/net/ehea/ehea_main.c3671
-rw-r--r--drivers/net/enic/Makefile5
-rw-r--r--drivers/net/enic/cq_desc.h80
-rw-r--r--drivers/net/enic/cq_enet_desc.h169
-rw-r--r--drivers/net/enic/enic.h114
-rw-r--r--drivers/net/enic/enic_main.c1944
-rw-r--r--drivers/net/enic/rq_enet_desc.h60
-rw-r--r--drivers/net/enic/vnic_cq.c89
-rw-r--r--drivers/net/enic/vnic_cq.h113
-rw-r--r--drivers/net/enic/vnic_dev.c692
-rw-r--r--drivers/net/enic/vnic_dev.h120
-rw-r--r--drivers/net/enic/vnic_devcmd.h299
-rw-r--r--drivers/net/enic/vnic_intr.c62
-rw-r--r--drivers/net/enic/vnic_intr.h92
-rw-r--r--drivers/net/enic/vnic_nic.h65
-rw-r--r--drivers/net/enic/vnic_resource.h63
-rw-r--r--drivers/net/enic/vnic_rq.c199
-rw-r--r--drivers/net/enic/vnic_rq.h211
-rw-r--r--drivers/net/enic/vnic_stats.h70
-rw-r--r--drivers/net/enic/vnic_wq.c184
-rw-r--r--drivers/net/enic/vnic_wq.h161
-rw-r--r--drivers/net/enic/wq_enet_desc.h98
-rw-r--r--drivers/net/epic100.c1618
-rw-r--r--drivers/net/eql.c125
-rw-r--r--drivers/net/es3210.c447
-rw-r--r--drivers/net/eth16i.c1476
-rw-r--r--drivers/net/ethernet/3com/3c509.c (renamed from drivers/net/3c509.c)301
-rw-r--r--drivers/net/ethernet/3com/3c515.c (renamed from drivers/net/3c515.c)210
-rw-r--r--drivers/net/ethernet/3com/3c574_cs.c (renamed from drivers/net/pcmcia/3c574_cs.c)343
-rw-r--r--drivers/net/ethernet/3com/3c589_cs.c971
-rw-r--r--drivers/net/ethernet/3com/3c59x.c (renamed from drivers/net/3c59x.c)957
-rw-r--r--drivers/net/ethernet/3com/Kconfig107
-rw-r--r--drivers/net/ethernet/3com/Makefile10
-rw-r--r--drivers/net/ethernet/3com/typhoon.c (renamed from drivers/net/typhoon.c)607
-rw-r--r--drivers/net/ethernet/3com/typhoon.h624
-rw-r--r--drivers/net/ethernet/8390/8390.c (renamed from drivers/net/8390.c)14
-rw-r--r--drivers/net/ethernet/8390/8390.h (renamed from drivers/net/8390.h)50
-rw-r--r--drivers/net/ethernet/8390/8390p.c (renamed from drivers/net/8390p.c)23
-rw-r--r--drivers/net/ethernet/8390/Kconfig205
-rw-r--r--drivers/net/ethernet/8390/Makefile18
-rw-r--r--drivers/net/ethernet/8390/apne.c (renamed from drivers/net/apne.c)72
-rw-r--r--drivers/net/ethernet/8390/ax88796.c1016
-rw-r--r--drivers/net/ethernet/8390/axnet_cs.c (renamed from drivers/net/pcmcia/axnet_cs.c)616
-rw-r--r--drivers/net/ethernet/8390/etherh.c (renamed from drivers/net/arm/etherh.c)90
-rw-r--r--drivers/net/ethernet/8390/hydra.c (renamed from drivers/net/hydra.c)62
-rw-r--r--drivers/net/ethernet/8390/lib8390.c (renamed from drivers/net/lib8390.c)411
-rw-r--r--drivers/net/ethernet/8390/mac8390.c882
-rw-r--r--drivers/net/ethernet/8390/mcf8390.c481
-rw-r--r--drivers/net/ethernet/8390/ne.c (renamed from drivers/net/ne.c)110
-rw-r--r--drivers/net/ethernet/8390/ne2k-pci.c (renamed from drivers/net/ne2k-pci.c)92
-rw-r--r--drivers/net/ethernet/8390/pcnet_cs.c (renamed from drivers/net/pcmcia/pcnet_cs.c)617
-rw-r--r--drivers/net/ethernet/8390/smc-ultra.c (renamed from drivers/net/smc-ultra.c)66
-rw-r--r--drivers/net/ethernet/8390/stnic.c (renamed from drivers/net/stnic.c)32
-rw-r--r--drivers/net/ethernet/8390/wd.c574
-rw-r--r--drivers/net/ethernet/8390/zorro8390.c458
-rw-r--r--drivers/net/ethernet/Kconfig186
-rw-r--r--drivers/net/ethernet/Makefile83
-rw-r--r--drivers/net/ethernet/adaptec/Kconfig35
-rw-r--r--drivers/net/ethernet/adaptec/Makefile5
-rw-r--r--drivers/net/ethernet/adaptec/starfire.c (renamed from drivers/net/starfire.c)315
-rw-r--r--drivers/net/ethernet/adi/Kconfig69
-rw-r--r--drivers/net/ethernet/adi/Makefile5
-rw-r--r--drivers/net/ethernet/adi/bfin_mac.c1921
-rw-r--r--drivers/net/ethernet/adi/bfin_mac.h109
-rw-r--r--drivers/net/ethernet/aeroflex/Kconfig11
-rw-r--r--drivers/net/ethernet/aeroflex/Makefile5
-rw-r--r--drivers/net/ethernet/aeroflex/greth.c1607
-rw-r--r--drivers/net/ethernet/aeroflex/greth.h142
-rw-r--r--drivers/net/ethernet/allwinner/Kconfig37
-rw-r--r--drivers/net/ethernet/allwinner/Makefile5
-rw-r--r--drivers/net/ethernet/allwinner/sun4i-emac.c970
-rw-r--r--drivers/net/ethernet/allwinner/sun4i-emac.h108
-rw-r--r--drivers/net/ethernet/alteon/Kconfig48
-rw-r--r--drivers/net/ethernet/alteon/Makefile5
-rw-r--r--drivers/net/ethernet/alteon/acenic.c (renamed from drivers/net/acenic.c)255
-rw-r--r--drivers/net/ethernet/alteon/acenic.h (renamed from drivers/net/acenic.h)23
-rw-r--r--drivers/net/ethernet/altera/Kconfig9
-rw-r--r--drivers/net/ethernet/altera/Makefile8
-rw-r--r--drivers/net/ethernet/altera/altera_msgdma.c206
-rw-r--r--drivers/net/ethernet/altera/altera_msgdma.h35
-rw-r--r--drivers/net/ethernet/altera/altera_msgdmahw.h162
-rw-r--r--drivers/net/ethernet/altera/altera_sgdma.c540
-rw-r--r--drivers/net/ethernet/altera/altera_sgdma.h36
-rw-r--r--drivers/net/ethernet/altera/altera_sgdmahw.h126
-rw-r--r--drivers/net/ethernet/altera/altera_tse.h537
-rw-r--r--drivers/net/ethernet/altera/altera_tse_ethtool.c275
-rw-r--r--drivers/net/ethernet/altera/altera_tse_main.c1577
-rw-r--r--drivers/net/ethernet/altera/altera_utils.c44
-rw-r--r--drivers/net/ethernet/altera/altera_utils.h27
-rw-r--r--drivers/net/ethernet/amd/7990.c666
-rw-r--r--drivers/net/ethernet/amd/7990.h250
-rw-r--r--drivers/net/ethernet/amd/Kconfig192
-rw-r--r--drivers/net/ethernet/amd/Makefile20
-rw-r--r--drivers/net/ethernet/amd/a2065.c783
-rw-r--r--drivers/net/ethernet/amd/a2065.h (renamed from drivers/net/a2065.h)0
-rw-r--r--drivers/net/ethernet/amd/am79c961a.c (renamed from drivers/net/arm/am79c961a.c)226
-rw-r--r--drivers/net/ethernet/amd/am79c961a.h (renamed from drivers/net/arm/am79c961a.h)3
-rw-r--r--drivers/net/ethernet/amd/amd8111e.c (renamed from drivers/net/amd8111e.c)180
-rw-r--r--drivers/net/ethernet/amd/amd8111e.h (renamed from drivers/net/amd8111e.h)16
-rw-r--r--drivers/net/ethernet/amd/ariadne.c792
-rw-r--r--drivers/net/ethernet/amd/ariadne.h (renamed from drivers/net/ariadne.h)2
-rw-r--r--drivers/net/ethernet/amd/atarilance.c (renamed from drivers/net/atarilance.c)89
-rw-r--r--drivers/net/ethernet/amd/au1000_eth.c1347
-rw-r--r--drivers/net/ethernet/amd/au1000_eth.h133
-rw-r--r--drivers/net/ethernet/amd/declance.c (renamed from drivers/net/declance.c)122
-rw-r--r--drivers/net/ethernet/amd/hplance.c232
-rw-r--r--drivers/net/ethernet/amd/hplance.h (renamed from drivers/net/hplance.h)0
-rw-r--r--drivers/net/ethernet/amd/lance.c (renamed from drivers/net/lance.c)121
-rw-r--r--drivers/net/ethernet/amd/mvme147.c (renamed from drivers/net/mvme147.c)66
-rw-r--r--drivers/net/ethernet/amd/ni65.c (renamed from drivers/net/ni65.c)117
-rw-r--r--drivers/net/ethernet/amd/ni65.h (renamed from drivers/net/ni65.h)0
-rw-r--r--drivers/net/ethernet/amd/nmclan_cs.c (renamed from drivers/net/pcmcia/nmclan_cs.c)407
-rw-r--r--drivers/net/ethernet/amd/pcnet32.c (renamed from drivers/net/pcnet32.c)1058
-rw-r--r--drivers/net/ethernet/amd/sun3lance.c (renamed from drivers/net/sun3lance.c)53
-rw-r--r--drivers/net/ethernet/amd/sunlance.c (renamed from drivers/net/sunlance.c)137
-rw-r--r--drivers/net/ethernet/amd/xgbe/Makefile6
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-common.h1007
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-debugfs.c375
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-desc.c556
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-dev.c2182
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-drv.c1351
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c510
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-main.c513
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe-mdio.c433
-rw-r--r--drivers/net/ethernet/amd/xgbe/xgbe.h676
-rw-r--r--drivers/net/ethernet/apple/Kconfig65
-rw-r--r--drivers/net/ethernet/apple/Makefile7
-rw-r--r--drivers/net/ethernet/apple/bmac.c (renamed from drivers/net/bmac.c)108
-rw-r--r--drivers/net/ethernet/apple/bmac.h (renamed from drivers/net/bmac.h)0
-rw-r--r--drivers/net/ethernet/apple/mace.c (renamed from drivers/net/mace.c)61
-rw-r--r--drivers/net/ethernet/apple/mace.h (renamed from drivers/net/mace.h)0
-rw-r--r--drivers/net/ethernet/apple/macmace.c (renamed from drivers/net/macmace.c)105
-rw-r--r--drivers/net/ethernet/arc/Kconfig31
-rw-r--r--drivers/net/ethernet/arc/Makefile6
-rw-r--r--drivers/net/ethernet/arc/emac.h214
-rw-r--r--drivers/net/ethernet/arc/emac_main.c887
-rw-r--r--drivers/net/ethernet/arc/emac_mdio.c152
-rw-r--r--drivers/net/ethernet/atheros/Kconfig83
-rw-r--r--drivers/net/ethernet/atheros/Makefile9
-rw-r--r--drivers/net/ethernet/atheros/alx/Makefile3
-rw-r--r--drivers/net/ethernet/atheros/alx/alx.h117
-rw-r--r--drivers/net/ethernet/atheros/alx/ethtool.c313
-rw-r--r--drivers/net/ethernet/atheros/alx/hw.c1110
-rw-r--r--drivers/net/ethernet/atheros/alx/hw.h581
-rw-r--r--drivers/net/ethernet/atheros/alx/main.c1557
-rw-r--r--drivers/net/ethernet/atheros/alx/reg.h854
-rw-r--r--drivers/net/ethernet/atheros/atl1c/Makefile2
-rw-r--r--drivers/net/ethernet/atheros/atl1c/atl1c.h605
-rw-r--r--drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.c309
-rw-r--r--drivers/net/ethernet/atheros/atl1c/atl1c_hw.c865
-rw-r--r--drivers/net/ethernet/atheros/atl1c/atl1c_hw.h1024
-rw-r--r--drivers/net/ethernet/atheros/atl1c/atl1c_main.c2803
-rw-r--r--drivers/net/ethernet/atheros/atl1e/Makefile (renamed from drivers/net/atl1e/Makefile)0
-rw-r--r--drivers/net/ethernet/atheros/atl1e/atl1e.h (renamed from drivers/net/atl1e/atl1e.h)31
-rw-r--r--drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.c (renamed from drivers/net/atl1e/atl1e_ethtool.c)55
-rw-r--r--drivers/net/ethernet/atheros/atl1e/atl1e_hw.c (renamed from drivers/net/atl1e/atl1e_hw.c)57
-rw-r--r--drivers/net/ethernet/atheros/atl1e/atl1e_hw.h (renamed from drivers/net/atl1e/atl1e_hw.h)111
-rw-r--r--drivers/net/ethernet/atheros/atl1e/atl1e_main.c (renamed from drivers/net/atl1e/atl1e_main.c)695
-rw-r--r--drivers/net/ethernet/atheros/atl1e/atl1e_param.c (renamed from drivers/net/atl1e/atl1e_param.c)44
-rw-r--r--drivers/net/ethernet/atheros/atlx/Makefile (renamed from drivers/net/atlx/Makefile)0
-rw-r--r--drivers/net/ethernet/atheros/atlx/atl1.c (renamed from drivers/net/atlx/atl1.c)599
-rw-r--r--drivers/net/ethernet/atheros/atlx/atl1.h (renamed from drivers/net/atlx/atl1.h)35
-rw-r--r--drivers/net/ethernet/atheros/atlx/atl2.c (renamed from drivers/net/atlx/atl2.c)310
-rw-r--r--drivers/net/ethernet/atheros/atlx/atl2.h (renamed from drivers/net/atlx/atl2.h)14
-rw-r--r--drivers/net/ethernet/atheros/atlx/atlx.c (renamed from drivers/net/atlx/atlx.c)97
-rw-r--r--drivers/net/ethernet/atheros/atlx/atlx.h (renamed from drivers/net/atlx/atlx.h)7
-rw-r--r--drivers/net/ethernet/broadcom/Kconfig164
-rw-r--r--drivers/net/ethernet/broadcom/Makefile14
-rw-r--r--drivers/net/ethernet/broadcom/b44.c (renamed from drivers/net/b44.c)773
-rw-r--r--drivers/net/ethernet/broadcom/b44.h (renamed from drivers/net/b44.h)21
-rw-r--r--drivers/net/ethernet/broadcom/bcm63xx_enet.c2919
-rw-r--r--drivers/net/ethernet/broadcom/bcm63xx_enet.h360
-rw-r--r--drivers/net/ethernet/broadcom/bcmsysport.c1633
-rw-r--r--drivers/net/ethernet/broadcom/bcmsysport.h678
-rw-r--r--drivers/net/ethernet/broadcom/bgmac.c1588
-rw-r--r--drivers/net/ethernet/broadcom/bgmac.h488
-rw-r--r--drivers/net/ethernet/broadcom/bnx2.c8818
-rw-r--r--drivers/net/ethernet/broadcom/bnx2.h (renamed from drivers/net/bnx2.h)389
-rw-r--r--drivers/net/ethernet/broadcom/bnx2_fw.h88
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/Makefile8
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x.h2557
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c4971
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h1326
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c2555
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.h205
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_dump.h2220
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c3513
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_fw_defs.h392
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_fw_file_hdr.h38
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h5794
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_init.h786
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_init_ops.h934
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c13716
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.h543
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c14166
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_mfw_req.h168
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_reg.h7491
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c5943
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h1425
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c3001
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.h584
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c2006
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.h555
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c2034
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.h434
-rw-r--r--drivers/net/ethernet/broadcom/cnic.c5760
-rw-r--r--drivers/net/ethernet/broadcom/cnic.h426
-rw-r--r--drivers/net/ethernet/broadcom/cnic_defs.h5461
-rw-r--r--drivers/net/ethernet/broadcom/cnic_if.h370
-rw-r--r--drivers/net/ethernet/broadcom/genet/Makefile2
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmgenet.c2584
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmgenet.h628
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmmii.c469
-rw-r--r--drivers/net/ethernet/broadcom/sb1250-mac.c (renamed from drivers/net/sb1250-mac.c)445
-rw-r--r--drivers/net/ethernet/broadcom/tg3.c18214
-rw-r--r--drivers/net/ethernet/broadcom/tg3.h3426
-rw-r--r--drivers/net/ethernet/brocade/Kconfig23
-rw-r--r--drivers/net/ethernet/brocade/Makefile5
-rw-r--r--drivers/net/ethernet/brocade/bna/Kconfig17
-rw-r--r--drivers/net/ethernet/brocade/bna/Makefile12
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_cee.c287
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_cee.h65
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_cs.h124
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_defs.h295
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_defs_cna.h220
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_defs_mfg_comm.h154
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_defs_status.h215
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_ioc.c3398
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_ioc.h368
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c944
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_msgq.c667
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_msgq.h130
-rw-r--r--drivers/net/ethernet/brocade/bna/bfi.h570
-rw-r--r--drivers/net/ethernet/brocade/bna/bfi_cna.h163
-rw-r--r--drivers/net/ethernet/brocade/bna/bfi_enet.h858
-rw-r--r--drivers/net/ethernet/brocade/bna/bfi_reg.h456
-rw-r--r--drivers/net/ethernet/brocade/bna/bna.h564
-rw-r--r--drivers/net/ethernet/brocade/bna/bna_enet.c2155
-rw-r--r--drivers/net/ethernet/brocade/bna/bna_hw_defs.h410
-rw-r--r--drivers/net/ethernet/brocade/bna/bna_tx_rx.c4017
-rw-r--r--drivers/net/ethernet/brocade/bna/bna_types.h956
-rw-r--r--drivers/net/ethernet/brocade/bna/bnad.c3899
-rw-r--r--drivers/net/ethernet/brocade/bna/bnad.h431
-rw-r--r--drivers/net/ethernet/brocade/bna/bnad_debugfs.c588
-rw-r--r--drivers/net/ethernet/brocade/bna/bnad_ethtool.c1141
-rw-r--r--drivers/net/ethernet/brocade/bna/cna.h106
-rw-r--r--drivers/net/ethernet/brocade/bna/cna_fwimg.c93
-rw-r--r--drivers/net/ethernet/cadence/Kconfig44
-rw-r--r--drivers/net/ethernet/cadence/Makefile6
-rw-r--r--drivers/net/ethernet/cadence/at91_ether.c483
-rw-r--r--drivers/net/ethernet/cadence/macb.c2067
-rw-r--r--drivers/net/ethernet/cadence/macb.h621
-rw-r--r--drivers/net/ethernet/calxeda/Kconfig7
-rw-r--r--drivers/net/ethernet/calxeda/Makefile1
-rw-r--r--drivers/net/ethernet/calxeda/xgmac.c1950
-rw-r--r--drivers/net/ethernet/chelsio/Kconfig108
-rw-r--r--drivers/net/ethernet/chelsio/Makefile8
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/Makefile (renamed from drivers/net/chelsio/Makefile)0
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/common.h351
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/cphy.h (renamed from drivers/net/chelsio/cphy.h)54
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/cpl5_cmd.h (renamed from drivers/net/chelsio/cpl5_cmd.h)3
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/cxgb2.c (renamed from drivers/net/chelsio/cxgb2.c)232
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/elmer0.h (renamed from drivers/net/chelsio/elmer0.h)3
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/espi.c (renamed from drivers/net/chelsio/espi.c)7
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/espi.h (renamed from drivers/net/chelsio/espi.h)3
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/fpga_defs.h (renamed from drivers/net/chelsio/fpga_defs.h)0
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/gmac.h (renamed from drivers/net/chelsio/gmac.h)3
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.c (renamed from drivers/net/chelsio/mv88e1xxx.c)7
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/mv88e1xxx.h (renamed from drivers/net/chelsio/mv88e1xxx.h)0
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/mv88x201x.c (renamed from drivers/net/chelsio/mv88x201x.c)53
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/my3126.c (renamed from drivers/net/chelsio/my3126.c)16
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/pm3393.c (renamed from drivers/net/chelsio/pm3393.c)33
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/regs.h2167
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/sge.c2123
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/sge.h (renamed from drivers/net/chelsio/sge.h)7
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/subr.c (renamed from drivers/net/chelsio/subr.c)145
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/suni1x10gexp_regs.h (renamed from drivers/net/chelsio/suni1x10gexp_regs.h)3
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/tp.c (renamed from drivers/net/chelsio/tp.c)7
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/tp.h (renamed from drivers/net/chelsio/tp.h)1
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/vsc7326.c (renamed from drivers/net/chelsio/vsc7326.c)28
-rw-r--r--drivers/net/ethernet/chelsio/cxgb/vsc7326_reg.h (renamed from drivers/net/chelsio/vsc7326_reg.h)0
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/Makefile8
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/adapter.h334
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/ael1002.c941
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/aq100x.c354
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/common.h773
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/cxgb3_ctl_defs.h (renamed from drivers/net/cxgb3/cxgb3_ctl_defs.h)0
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/cxgb3_defs.h (renamed from drivers/net/cxgb3/cxgb3_defs.h)3
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/cxgb3_ioctl.h (renamed from drivers/net/cxgb3/cxgb3_ioctl.h)0
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c (renamed from drivers/net/cxgb3/cxgb3_main.c)1069
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.c (renamed from drivers/net/cxgb3/cxgb3_offload.c)200
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/cxgb3_offload.h (renamed from drivers/net/cxgb3/cxgb3_offload.h)15
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/firmware_exports.h (renamed from drivers/net/cxgb3/firmware_exports.h)0
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/l2t.c470
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/l2t.h149
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/mc5.c (renamed from drivers/net/cxgb3/mc5.c)40
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/regs.h2563
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/sge.c3305
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/sge_defs.h (renamed from drivers/net/cxgb3/sge_defs.h)0
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/t3_cpl.h (renamed from drivers/net/cxgb3/t3_cpl.h)0
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/t3_hw.c (renamed from drivers/net/cxgb3/t3_hw.c)610
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/t3cdev.h (renamed from drivers/net/cxgb3/t3cdev.h)2
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/version.h44
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/vsc8211.c (renamed from drivers/net/cxgb3/vsc8211.c)70
-rw-r--r--drivers/net/ethernet/chelsio/cxgb3/xgmac.c657
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/Makefile7
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4.h1052
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c6445
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.h295
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/l2t.c665
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/l2t.h111
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/sge.c2831
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4_hw.c3986
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4_hw.h220
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4_msg.h835
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4_regs.h1298
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4fw_api.h2208
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4vf/Makefile7
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4vf/adapter.h533
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c3009
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4vf/sge.c2461
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4vf/t4vf_common.h305
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4vf/t4vf_defs.h121
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4vf/t4vf_hw.c1392
-rw-r--r--drivers/net/ethernet/cirrus/Kconfig64
-rw-r--r--drivers/net/ethernet/cirrus/Makefile7
-rw-r--r--drivers/net/ethernet/cirrus/cs89x0.c1925
-rw-r--r--drivers/net/ethernet/cirrus/cs89x0.h (renamed from drivers/net/cs89x0.h)4
-rw-r--r--drivers/net/ethernet/cirrus/ep93xx_eth.c (renamed from drivers/net/arm/ep93xx_eth.c)331
-rw-r--r--drivers/net/ethernet/cirrus/mac89x0.c (renamed from drivers/net/mac89x0.c)102
-rw-r--r--drivers/net/ethernet/cisco/Kconfig23
-rw-r--r--drivers/net/ethernet/cisco/Makefile5
-rw-r--r--drivers/net/ethernet/cisco/enic/Kconfig9
-rw-r--r--drivers/net/ethernet/cisco/enic/Makefile6
-rw-r--r--drivers/net/ethernet/cisco/enic/cq_desc.h80
-rw-r--r--drivers/net/ethernet/cisco/enic/cq_enet_desc.h185
-rw-r--r--drivers/net/ethernet/cisco/enic/enic.h213
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_api.c48
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_api.h30
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_dev.c292
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_dev.h65
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_ethtool.c306
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_main.c2476
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_pp.c368
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_pp.h36
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_res.c (renamed from drivers/net/enic/enic_res.c)111
-rw-r--r--drivers/net/ethernet/cisco/enic/enic_res.h (renamed from drivers/net/enic/enic_res.h)48
-rw-r--r--drivers/net/ethernet/cisco/enic/rq_enet_desc.h60
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_cq.c91
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_cq.h123
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_dev.c1050
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_dev.h137
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_devcmd.h627
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_enet.h (renamed from drivers/net/enic/vnic_enet.h)14
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_intr.c68
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_intr.h111
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_nic.h72
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_resource.h76
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_rq.c216
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_rq.h212
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_rss.h (renamed from drivers/net/enic/vnic_rss.h)7
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_stats.h70
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_vic.c79
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_vic.h83
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_wq.c195
-rw-r--r--drivers/net/ethernet/cisco/enic/vnic_wq.h175
-rw-r--r--drivers/net/ethernet/cisco/enic/wq_enet_desc.h98
-rw-r--r--drivers/net/ethernet/davicom/Kconfig23
-rw-r--r--drivers/net/ethernet/davicom/Makefile5
-rw-r--r--drivers/net/ethernet/davicom/dm9000.c1766
-rw-r--r--drivers/net/ethernet/davicom/dm9000.h (renamed from drivers/net/dm9000.h)38
-rw-r--r--drivers/net/ethernet/dec/Kconfig21
-rw-r--r--drivers/net/ethernet/dec/Makefile5
-rw-r--r--drivers/net/ethernet/dec/tulip/21142.c257
-rw-r--r--drivers/net/ethernet/dec/tulip/Kconfig172
-rw-r--r--drivers/net/ethernet/dec/tulip/Makefile19
-rw-r--r--drivers/net/ethernet/dec/tulip/de2104x.c (renamed from drivers/net/tulip/de2104x.c)407
-rw-r--r--drivers/net/ethernet/dec/tulip/de4x5.c (renamed from drivers/net/tulip/de4x5.c)249
-rw-r--r--drivers/net/ethernet/dec/tulip/de4x5.h (renamed from drivers/net/tulip/de4x5.h)2
-rw-r--r--drivers/net/ethernet/dec/tulip/dmfe.c (renamed from drivers/net/tulip/dmfe.c)518
-rw-r--r--drivers/net/ethernet/dec/tulip/eeprom.c382
-rw-r--r--drivers/net/ethernet/dec/tulip/interrupt.c814
-rw-r--r--drivers/net/ethernet/dec/tulip/media.c (renamed from drivers/net/tulip/media.c)95
-rw-r--r--drivers/net/ethernet/dec/tulip/pnic.c (renamed from drivers/net/tulip/pnic.c)41
-rw-r--r--drivers/net/ethernet/dec/tulip/pnic2.c (renamed from drivers/net/tulip/pnic2.c)74
-rw-r--r--drivers/net/ethernet/dec/tulip/timer.c176
-rw-r--r--drivers/net/ethernet/dec/tulip/tulip.h (renamed from drivers/net/tulip/tulip.h)112
-rw-r--r--drivers/net/ethernet/dec/tulip/tulip_core.c (renamed from drivers/net/tulip/tulip_core.c)531
-rw-r--r--drivers/net/ethernet/dec/tulip/uli526x.c1845
-rw-r--r--drivers/net/ethernet/dec/tulip/winbond-840.c (renamed from drivers/net/tulip/winbond-840.c)263
-rw-r--r--drivers/net/ethernet/dec/tulip/xircom_cb.c1171
-rw-r--r--drivers/net/ethernet/dlink/Kconfig55
-rw-r--r--drivers/net/ethernet/dlink/Makefile6
-rw-r--r--drivers/net/ethernet/dlink/dl2k.c1768
-rw-r--r--drivers/net/ethernet/dlink/dl2k.h (renamed from drivers/net/dl2k.h)139
-rw-r--r--drivers/net/ethernet/dlink/sundance.c (renamed from drivers/net/sundance.c)539
-rw-r--r--drivers/net/ethernet/dnet.c975
-rw-r--r--drivers/net/ethernet/dnet.h225
-rw-r--r--drivers/net/ethernet/ec_bhf.c706
-rw-r--r--drivers/net/ethernet/emulex/Kconfig23
-rw-r--r--drivers/net/ethernet/emulex/Makefile5
-rw-r--r--drivers/net/ethernet/emulex/benet/Kconfig14
-rw-r--r--drivers/net/ethernet/emulex/benet/Makefile7
-rw-r--r--drivers/net/ethernet/emulex/benet/be.h894
-rw-r--r--drivers/net/ethernet/emulex/benet/be_cmds.c3957
-rw-r--r--drivers/net/ethernet/emulex/benet/be_cmds.h2170
-rw-r--r--drivers/net/ethernet/emulex/benet/be_ethtool.c1188
-rw-r--r--drivers/net/ethernet/emulex/benet/be_hw.h560
-rw-r--r--drivers/net/ethernet/emulex/benet/be_main.c5115
-rw-r--r--drivers/net/ethernet/emulex/benet/be_roce.c185
-rw-r--r--drivers/net/ethernet/emulex/benet/be_roce.h78
-rw-r--r--drivers/net/ethernet/ethoc.c1327
-rw-r--r--drivers/net/ethernet/faraday/Kconfig39
-rw-r--r--drivers/net/ethernet/faraday/Makefile6
-rw-r--r--drivers/net/ethernet/faraday/ftgmac100.c1346
-rw-r--r--drivers/net/ethernet/faraday/ftgmac100.h246
-rw-r--r--drivers/net/ethernet/faraday/ftmac100.c1203
-rw-r--r--drivers/net/ethernet/faraday/ftmac100.h180
-rw-r--r--drivers/net/ethernet/fealnx.c (renamed from drivers/net/fealnx.c)171
-rw-r--r--drivers/net/ethernet/freescale/Kconfig97
-rw-r--r--drivers/net/ethernet/freescale/Makefile19
-rw-r--r--drivers/net/ethernet/freescale/fec.h353
-rw-r--r--drivers/net/ethernet/freescale/fec_main.c2726
-rw-r--r--drivers/net/ethernet/freescale/fec_mpc52xx.c1118
-rw-r--r--drivers/net/ethernet/freescale/fec_mpc52xx.h (renamed from drivers/net/fec_mpc52xx.h)4
-rw-r--r--drivers/net/ethernet/freescale/fec_mpc52xx_phy.c158
-rw-r--r--drivers/net/ethernet/freescale/fec_ptp.c400
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/Kconfig34
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/Makefile (renamed from drivers/net/fs_enet/Makefile)0
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/fec.h44
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c (renamed from drivers/net/fs_enet/fs_enet-main.c)354
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/fs_enet.h (renamed from drivers/net/fs_enet/fs_enet.h)54
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/mac-fcc.c (renamed from drivers/net/fs_enet/mac-fcc.c)79
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/mac-fec.c (renamed from drivers/net/fs_enet/mac-fec.c)120
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/mac-scc.c (renamed from drivers/net/fs_enet/mac-scc.c)29
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/mii-bitbang.c234
-rw-r--r--drivers/net/ethernet/freescale/fs_enet/mii-fec.c235
-rw-r--r--drivers/net/ethernet/freescale/fsl_pq_mdio.c488
-rw-r--r--drivers/net/ethernet/freescale/gianfar.c3481
-rw-r--r--drivers/net/ethernet/freescale/gianfar.h1274
-rw-r--r--drivers/net/ethernet/freescale/gianfar_ethtool.c1906
-rw-r--r--drivers/net/ethernet/freescale/gianfar_ptp.c576
-rw-r--r--drivers/net/ethernet/freescale/ucc_geth.c3977
-rw-r--r--drivers/net/ethernet/freescale/ucc_geth.h (renamed from drivers/net/ucc_geth.h)145
-rw-r--r--drivers/net/ethernet/freescale/ucc_geth_ethtool.c (renamed from drivers/net/ucc_geth_ethtool.c)92
-rw-r--r--drivers/net/ethernet/freescale/xgmac_mdio.c277
-rw-r--r--drivers/net/ethernet/fujitsu/Kconfig31
-rw-r--r--drivers/net/ethernet/fujitsu/Makefile5
-rw-r--r--drivers/net/ethernet/fujitsu/fmvj18x_cs.c1172
-rw-r--r--drivers/net/ethernet/hisilicon/Kconfig27
-rw-r--r--drivers/net/ethernet/hisilicon/Makefile5
-rw-r--r--drivers/net/ethernet/hisilicon/hix5hd2_gmac.c1066
-rw-r--r--drivers/net/ethernet/hp/Kconfig32
-rw-r--r--drivers/net/ethernet/hp/Makefile5
-rw-r--r--drivers/net/ethernet/hp/hp100.c (renamed from drivers/net/hp100.c)226
-rw-r--r--drivers/net/ethernet/hp/hp100.h (renamed from drivers/net/hp100.h)2
-rw-r--r--drivers/net/ethernet/i825xx/82596.c (renamed from drivers/net/82596.c)246
-rw-r--r--drivers/net/ethernet/i825xx/Kconfig69
-rw-r--r--drivers/net/ethernet/i825xx/Makefile10
-rw-r--r--drivers/net/ethernet/i825xx/ether1.c (renamed from drivers/net/arm/ether1.c)77
-rw-r--r--drivers/net/ethernet/i825xx/ether1.h (renamed from drivers/net/arm/ether1.h)1
-rw-r--r--drivers/net/ethernet/i825xx/lasi_82596.c (renamed from drivers/net/lasi_82596.c)18
-rw-r--r--drivers/net/ethernet/i825xx/lib82596.c (renamed from drivers/net/lib82596.c)91
-rw-r--r--drivers/net/ethernet/i825xx/sni_82596.c (renamed from drivers/net/sni_82596.c)10
-rw-r--r--drivers/net/ethernet/i825xx/sun3_82586.c (renamed from drivers/net/sun3_82586.c)111
-rw-r--r--drivers/net/ethernet/i825xx/sun3_82586.h (renamed from drivers/net/sun3_82586.h)4
-rw-r--r--drivers/net/ethernet/ibm/Kconfig42
-rw-r--r--drivers/net/ethernet/ibm/Makefile7
-rw-r--r--drivers/net/ethernet/ibm/ehea/Makefile (renamed from drivers/net/ehea/Makefile)0
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea.h (renamed from drivers/net/ehea/ehea.h)57
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea_ethtool.c282
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea_hw.h (renamed from drivers/net/ehea/ehea_hw.h)27
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea_main.c3582
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea_phyp.c (renamed from drivers/net/ehea/ehea_phyp.c)54
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea_phyp.h (renamed from drivers/net/ehea/ehea_phyp.h)25
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea_qmr.c (renamed from drivers/net/ehea/ehea_qmr.c)192
-rw-r--r--drivers/net/ethernet/ibm/ehea/ehea_qmr.h (renamed from drivers/net/ehea/ehea_qmr.h)22
-rw-r--r--drivers/net/ethernet/ibm/emac/Kconfig76
-rw-r--r--drivers/net/ethernet/ibm/emac/Makefile11
-rw-r--r--drivers/net/ethernet/ibm/emac/core.c3121
-rw-r--r--drivers/net/ethernet/ibm/emac/core.h470
-rw-r--r--drivers/net/ethernet/ibm/emac/debug.c270
-rw-r--r--drivers/net/ethernet/ibm/emac/debug.h83
-rw-r--r--drivers/net/ethernet/ibm/emac/emac.h314
-rw-r--r--drivers/net/ethernet/ibm/emac/mal.c (renamed from drivers/net/ibm_newemac/mal.c)109
-rw-r--r--drivers/net/ethernet/ibm/emac/mal.h (renamed from drivers/net/ibm_newemac/mal.h)28
-rw-r--r--drivers/net/ethernet/ibm/emac/phy.c541
-rw-r--r--drivers/net/ethernet/ibm/emac/phy.h87
-rw-r--r--drivers/net/ethernet/ibm/emac/rgmii.c (renamed from drivers/net/ibm_newemac/rgmii.c)82
-rw-r--r--drivers/net/ethernet/ibm/emac/rgmii.h82
-rw-r--r--drivers/net/ethernet/ibm/emac/tah.c181
-rw-r--r--drivers/net/ethernet/ibm/emac/tah.h (renamed from drivers/net/ibm_newemac/tah.h)22
-rw-r--r--drivers/net/ethernet/ibm/emac/zmii.c (renamed from drivers/net/ibm_newemac/zmii.c)69
-rw-r--r--drivers/net/ethernet/ibm/emac/zmii.h78
-rw-r--r--drivers/net/ethernet/ibm/ibmveth.c1631
-rw-r--r--drivers/net/ethernet/ibm/ibmveth.h206
-rw-r--r--drivers/net/ethernet/icplus/Kconfig13
-rw-r--r--drivers/net/ethernet/icplus/Makefile5
-rw-r--r--drivers/net/ethernet/icplus/ipg.c (renamed from drivers/net/ipg.c)311
-rw-r--r--drivers/net/ethernet/icplus/ipg.h (renamed from drivers/net/ipg.h)176
-rw-r--r--drivers/net/ethernet/intel/Kconfig303
-rw-r--r--drivers/net/ethernet/intel/Makefile14
-rw-r--r--drivers/net/ethernet/intel/e100.c (renamed from drivers/net/e100.c)791
-rw-r--r--drivers/net/ethernet/intel/e1000/Makefile (renamed from drivers/net/e1000/Makefile)0
-rw-r--r--drivers/net/ethernet/intel/e1000/e1000.h367
-rw-r--r--drivers/net/ethernet/intel/e1000/e1000_ethtool.c (renamed from drivers/net/e1000/e1000_ethtool.c)685
-rw-r--r--drivers/net/ethernet/intel/e1000/e1000_hw.c5769
-rw-r--r--drivers/net/ethernet/intel/e1000/e1000_hw.h3112
-rw-r--r--drivers/net/ethernet/intel/e1000/e1000_main.c5192
-rw-r--r--drivers/net/ethernet/intel/e1000/e1000_osdep.h (renamed from drivers/net/e1000/e1000_osdep.h)32
-rw-r--r--drivers/net/ethernet/intel/e1000/e1000_param.c (renamed from drivers/net/e1000/e1000_param.c)188
-rw-r--r--drivers/net/ethernet/intel/e1000e/80003es2lan.c1418
-rw-r--r--drivers/net/ethernet/intel/e1000e/80003es2lan.h88
-rw-r--r--drivers/net/ethernet/intel/e1000e/82571.c2067
-rw-r--r--drivers/net/ethernet/intel/e1000e/82571.h53
-rw-r--r--drivers/net/ethernet/intel/e1000e/Makefile37
-rw-r--r--drivers/net/ethernet/intel/e1000e/defines.h798
-rw-r--r--drivers/net/ethernet/intel/e1000e/e1000.h591
-rw-r--r--drivers/net/ethernet/intel/e1000e/ethtool.c2322
-rw-r--r--drivers/net/ethernet/intel/e1000e/hw.h692
-rw-r--r--drivers/net/ethernet/intel/e1000e/ich8lan.c5155
-rw-r--r--drivers/net/ethernet/intel/e1000e/ich8lan.h290
-rw-r--r--drivers/net/ethernet/intel/e1000e/mac.c1801
-rw-r--r--drivers/net/ethernet/intel/e1000e/mac.h68
-rw-r--r--drivers/net/ethernet/intel/e1000e/manage.c344
-rw-r--r--drivers/net/ethernet/intel/e1000e/manage.h65
-rw-r--r--drivers/net/ethernet/intel/e1000e/netdev.c7247
-rw-r--r--drivers/net/ethernet/intel/e1000e/nvm.c631
-rw-r--r--drivers/net/ethernet/intel/e1000e/nvm.h40
-rw-r--r--drivers/net/ethernet/intel/e1000e/param.c533
-rw-r--r--drivers/net/ethernet/intel/e1000e/phy.c3237
-rw-r--r--drivers/net/ethernet/intel/e1000e/phy.h236
-rw-r--r--drivers/net/ethernet/intel/e1000e/ptp.c275
-rw-r--r--drivers/net/ethernet/intel/e1000e/regs.h247
-rw-r--r--drivers/net/ethernet/intel/i40e/Makefile46
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e.h647
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_adminq.c1024
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_adminq.h110
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h2173
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_alloc.h58
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_common.c2764
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_dcb.c472
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_dcb.h107
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c316
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_debugfs.c2248
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_diag.c154
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_diag.h51
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_ethtool.c1765
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_hmc.c360
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_hmc.h236
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c1000
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h169
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_main.c9044
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_nvm.c355
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_osdep.h81
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_prototype.h265
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_ptp.c625
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_register.h4674
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_status.h100
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_txrx.c2344
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_txrx.h290
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_type.h1165
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_virtchnl.h363
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c2441
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h130
-rw-r--r--drivers/net/ethernet/intel/i40evf/Makefile36
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_adminq.c978
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_adminq.h110
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_adminq_cmd.h2197
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_alloc.h58
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_common.c624
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_hmc.h236
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_lan_hmc.h169
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_osdep.h75
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_prototype.h94
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_register.h4674
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_status.h100
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_txrx.c1667
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_txrx.h287
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_type.h1165
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h363
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40evf.h298
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c704
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40evf_main.c2475
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c781
-rw-r--r--drivers/net/ethernet/intel/igb/Makefile36
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_82575.c2865
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_82575.h279
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_defines.h1016
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_hw.h573
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_i210.c902
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_i210.h93
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_mac.c1606
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_mac.h87
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_mbx.c443
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_mbx.h73
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_nvm.c801
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_nvm.h56
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_phy.c2511
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_phy.h174
-rw-r--r--drivers/net/ethernet/intel/igb/e1000_regs.h425
-rw-r--r--drivers/net/ethernet/intel/igb/igb.h576
-rw-r--r--drivers/net/ethernet/intel/igb/igb_ethtool.c3042
-rw-r--r--drivers/net/ethernet/intel/igb/igb_hwmon.c249
-rw-r--r--drivers/net/ethernet/intel/igb/igb_main.c8184
-rw-r--r--drivers/net/ethernet/intel/igb/igb_ptp.c944
-rw-r--r--drivers/net/ethernet/intel/igbvf/Makefile38
-rw-r--r--drivers/net/ethernet/intel/igbvf/defines.h122
-rw-r--r--drivers/net/ethernet/intel/igbvf/ethtool.c479
-rw-r--r--drivers/net/ethernet/intel/igbvf/igbvf.h329
-rw-r--r--drivers/net/ethernet/intel/igbvf/mbx.c350
-rw-r--r--drivers/net/ethernet/intel/igbvf/mbx.h75
-rw-r--r--drivers/net/ethernet/intel/igbvf/netdev.c2914
-rw-r--r--drivers/net/ethernet/intel/igbvf/regs.h108
-rw-r--r--drivers/net/ethernet/intel/igbvf/vf.c400
-rw-r--r--drivers/net/ethernet/intel/igbvf/vf.h266
-rw-r--r--drivers/net/ethernet/intel/ixgb/Makefile (renamed from drivers/net/ixgb/Makefile)0
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb.h (renamed from drivers/net/ixgb/ixgb.h)43
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_ee.c (renamed from drivers/net/ixgb/ixgb_ee.c)77
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_ee.h (renamed from drivers/net/ixgb/ixgb_ee.h)4
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_ethtool.c (renamed from drivers/net/ixgb/ixgb_ethtool.c)201
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_hw.c (renamed from drivers/net/ixgb/ixgb_hw.c)205
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_hw.h (renamed from drivers/net/ixgb/ixgb_hw.h)55
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_ids.h (renamed from drivers/net/ixgb/ixgb_ids.h)5
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_main.c (renamed from drivers/net/ixgb/ixgb_main.c)687
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_osdep.h (renamed from drivers/net/ixgb/ixgb_osdep.h)19
-rw-r--r--drivers/net/ethernet/intel/ixgb/ixgb_param.c (renamed from drivers/net/ixgb/ixgb_param.c)76
-rw-r--r--drivers/net/ethernet/intel/ixgbe/Makefile44
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe.h977
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_82598.c1358
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_82599.c2543
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_common.c3877
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_common.h206
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.c404
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_dcb.h171
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.c288
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82598.h (renamed from drivers/net/ixgbe/ixgbe_dcb_82598.h)39
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.c363
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_82599.h125
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_dcb_nl.c814
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.c276
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c3093
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c1007
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.h87
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c1199
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c8830
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.c471
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.h121
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c2057
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h160
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c1007
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c1301
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.h69
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.c230
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_type.h3102
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c897
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/Makefile38
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/defines.h298
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/ethtool.c817
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/ixgbevf.h470
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c3809
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/mbx.c349
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/mbx.h126
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/regs.h75
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/vf.c604
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/vf.h211
-rw-r--r--drivers/net/ethernet/jme.c3372
-rw-r--r--drivers/net/ethernet/jme.h (renamed from drivers/net/jme.h)189
-rw-r--r--drivers/net/ethernet/korina.c (renamed from drivers/net/korina.c)200
-rw-r--r--drivers/net/ethernet/lantiq_etop.c818
-rw-r--r--drivers/net/ethernet/marvell/Kconfig134
-rw-r--r--drivers/net/ethernet/marvell/Makefile10
-rw-r--r--drivers/net/ethernet/marvell/mv643xx_eth.c3220
-rw-r--r--drivers/net/ethernet/marvell/mvmdio.c301
-rw-r--r--drivers/net/ethernet/marvell/mvneta.c3121
-rw-r--r--drivers/net/ethernet/marvell/pxa168_eth.c1623
-rw-r--r--drivers/net/ethernet/marvell/skge.c (renamed from drivers/net/skge.c)850
-rw-r--r--drivers/net/ethernet/marvell/skge.h (renamed from drivers/net/skge.h)16
-rw-r--r--drivers/net/ethernet/marvell/sky2.c5248
-rw-r--r--drivers/net/ethernet/marvell/sky2.h (renamed from drivers/net/sky2.h)350
-rw-r--r--drivers/net/ethernet/mellanox/Kconfig24
-rw-r--r--drivers/net/ethernet/mellanox/Makefile6
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/Kconfig46
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/Makefile10
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/alloc.c419
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/catas.c (renamed from drivers/net/mlx4/catas.c)68
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/cmd.c2610
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/cq.c359
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_clock.c334
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_cq.c232
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c263
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_ethtool.c1244
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_main.c369
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_netdev.c2664
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_port.c223
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_port.h (renamed from drivers/net/mlx4/en_port.h)56
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_resources.c115
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_rx.c1165
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_selftest.c177
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_tx.c919
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/eq.c1400
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/fw.c2018
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/fw.h228
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/icm.c (renamed from drivers/net/mlx4/icm.c)159
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/icm.h (renamed from drivers/net/mlx4/icm.h)21
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/intf.c (renamed from drivers/net/mlx4/intf.c)35
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/main.c2855
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/mcg.c1474
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/mlx4.h1315
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/mlx4_en.h860
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/mr.c995
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/pd.c286
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/port.c1292
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/profile.c (renamed from drivers/net/mlx4/profile.c)72
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/qp.c625
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/reset.c179
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/resource_tracker.c4876
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/sense.c143
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/srq.c313
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/Kconfig8
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/Makefile5
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/alloc.c238
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/cmd.c1577
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/cq.c237
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/debugfs.c610
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/eq.c526
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/fw.c185
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/health.c200
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/mad.c78
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/main.c548
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/mcg.c106
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h75
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/mr.c248
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c531
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/pd.c101
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/port.c104
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/qp.c302
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/srq.c223
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/uar.c224
-rw-r--r--drivers/net/ethernet/micrel/Kconfig66
-rw-r--r--drivers/net/ethernet/micrel/Makefile9
-rw-r--r--drivers/net/ethernet/micrel/ks8695net.c (renamed from drivers/net/arm/ks8695net.c)501
-rw-r--r--drivers/net/ethernet/micrel/ks8695net.h (renamed from drivers/net/arm/ks8695net.h)0
-rw-r--r--drivers/net/ethernet/micrel/ks8842.c1272
-rw-r--r--drivers/net/ethernet/micrel/ks8851.c1623
-rw-r--r--drivers/net/ethernet/micrel/ks8851.h298
-rw-r--r--drivers/net/ethernet/micrel/ks8851_mll.c1713
-rw-r--r--drivers/net/ethernet/micrel/ksz884x.c7264
-rw-r--r--drivers/net/ethernet/microchip/Kconfig38
-rw-r--r--drivers/net/ethernet/microchip/Makefile5
-rw-r--r--drivers/net/ethernet/microchip/enc28j60.c (renamed from drivers/net/enc28j60.c)40
-rw-r--r--drivers/net/ethernet/microchip/enc28j60_hw.h (renamed from drivers/net/enc28j60_hw.h)2
-rw-r--r--drivers/net/ethernet/moxa/Kconfig30
-rw-r--r--drivers/net/ethernet/moxa/Makefile5
-rw-r--r--drivers/net/ethernet/moxa/moxart_ether.c567
-rw-r--r--drivers/net/ethernet/moxa/moxart_ether.h330
-rw-r--r--drivers/net/ethernet/myricom/Kconfig46
-rw-r--r--drivers/net/ethernet/myricom/Makefile5
-rw-r--r--drivers/net/ethernet/myricom/myri10ge/Makefile (renamed from drivers/net/myri10ge/Makefile)0
-rw-r--r--drivers/net/ethernet/myricom/myri10ge/myri10ge.c (renamed from drivers/net/myri10ge/myri10ge.c)1332
-rw-r--r--drivers/net/ethernet/myricom/myri10ge/myri10ge_mcp.h (renamed from drivers/net/myri10ge/myri10ge_mcp.h)2
-rw-r--r--drivers/net/ethernet/myricom/myri10ge/myri10ge_mcp_gen_header.h (renamed from drivers/net/myri10ge/myri10ge_mcp_gen_header.h)13
-rw-r--r--drivers/net/ethernet/natsemi/Kconfig67
-rw-r--r--drivers/net/ethernet/natsemi/Makefile9
-rw-r--r--drivers/net/ethernet/natsemi/jazzsonic.c (renamed from drivers/net/jazzsonic.c)86
-rw-r--r--drivers/net/ethernet/natsemi/macsonic.c641
-rw-r--r--drivers/net/ethernet/natsemi/natsemi.c (renamed from drivers/net/natsemi.c)250
-rw-r--r--drivers/net/ethernet/natsemi/ns83820.c (renamed from drivers/net/ns83820.c)235
-rw-r--r--drivers/net/ethernet/natsemi/sonic.c (renamed from drivers/net/sonic.c)30
-rw-r--r--drivers/net/ethernet/natsemi/sonic.h (renamed from drivers/net/sonic.h)0
-rw-r--r--drivers/net/ethernet/natsemi/xtsonic.c (renamed from drivers/net/xtsonic.c)66
-rw-r--r--drivers/net/ethernet/neterion/Kconfig55
-rw-r--r--drivers/net/ethernet/neterion/Makefile6
-rw-r--r--drivers/net/ethernet/neterion/s2io-regs.h (renamed from drivers/net/s2io-regs.h)7
-rw-r--r--drivers/net/ethernet/neterion/s2io.c8656
-rw-r--r--drivers/net/ethernet/neterion/s2io.h (renamed from drivers/net/s2io.h)63
-rw-r--r--drivers/net/ethernet/neterion/vxge/Makefile7
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-config.c5114
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-config.h2111
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-ethtool.c1132
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-ethtool.h67
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-main.c4871
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-main.h520
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-reg.h4636
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-traffic.c2480
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-traffic.h2290
-rw-r--r--drivers/net/ethernet/neterion/vxge/vxge-version.h49
-rw-r--r--drivers/net/ethernet/netx-eth.c (renamed from drivers/net/netx-eth.c)45
-rw-r--r--drivers/net/ethernet/nuvoton/Kconfig30
-rw-r--r--drivers/net/ethernet/nuvoton/Makefile5
-rw-r--r--drivers/net/ethernet/nuvoton/w90p910_ether.c1095
-rw-r--r--drivers/net/ethernet/nvidia/Kconfig32
-rw-r--r--drivers/net/ethernet/nvidia/Makefile5
-rw-r--r--drivers/net/ethernet/nvidia/forcedeth.c6385
-rw-r--r--drivers/net/ethernet/nxp/Kconfig8
-rw-r--r--drivers/net/ethernet/nxp/Makefile1
-rw-r--r--drivers/net/ethernet/nxp/lpc_eth.c1609
-rw-r--r--drivers/net/ethernet/octeon/Kconfig14
-rw-r--r--drivers/net/ethernet/octeon/Makefile5
-rw-r--r--drivers/net/ethernet/octeon/octeon_mgmt.c1619
-rw-r--r--drivers/net/ethernet/oki-semi/Kconfig23
-rw-r--r--drivers/net/ethernet/oki-semi/Makefile5
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/Kconfig22
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/Makefile4
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h689
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_api.c262
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_api.h35
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c512
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c2845
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c521
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.c377
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.h37
-rw-r--r--drivers/net/ethernet/packetengines/Kconfig47
-rw-r--r--drivers/net/ethernet/packetengines/Makefile6
-rw-r--r--drivers/net/ethernet/packetengines/hamachi.c (renamed from drivers/net/hamachi.c)276
-rw-r--r--drivers/net/ethernet/packetengines/yellowfin.c (renamed from drivers/net/yellowfin.c)312
-rw-r--r--drivers/net/ethernet/pasemi/Kconfig30
-rw-r--r--drivers/net/ethernet/pasemi/Makefile6
-rw-r--r--drivers/net/ethernet/pasemi/pasemi_mac.c (renamed from drivers/net/pasemi_mac.c)142
-rw-r--r--drivers/net/ethernet/pasemi/pasemi_mac.h (renamed from drivers/net/pasemi_mac.h)6
-rw-r--r--drivers/net/ethernet/pasemi/pasemi_mac_ethtool.c (renamed from drivers/net/pasemi_mac_ethtool.c)30
-rw-r--r--drivers/net/ethernet/qlogic/Kconfig96
-rw-r--r--drivers/net/ethernet/qlogic/Makefile8
-rw-r--r--drivers/net/ethernet/qlogic/netxen/Makefile27
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic.h1889
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c943
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c959
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic_hdr.h (renamed from drivers/net/netxen/netxen_nic_hdr.h)257
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.c2593
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic_hw.h285
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c1931
-rw-r--r--drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c3527
-rw-r--r--drivers/net/ethernet/qlogic/qla3xxx.c3951
-rw-r--r--drivers/net/ethernet/qlogic/qla3xxx.h (renamed from drivers/net/qla3xxx.h)10
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/Makefile15
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic.h2378
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c4065
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h661
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c2448
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c284
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c1428
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c1147
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.h122
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c1874
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_hdr.h948
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c1686
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h225
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c1310
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c2208
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c4300
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c1358
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov.h276
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c2209
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c2047
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_sysfs.c1424
-rw-r--r--drivers/net/ethernet/qlogic/qlge/Makefile (renamed from drivers/net/qlge/Makefile)0
-rw-r--r--drivers/net/ethernet/qlogic/qlge/qlge.h2338
-rw-r--r--drivers/net/ethernet/qlogic/qlge/qlge_dbg.c2042
-rw-r--r--drivers/net/ethernet/qlogic/qlge/qlge_ethtool.c735
-rw-r--r--drivers/net/ethernet/qlogic/qlge/qlge_main.c5010
-rw-r--r--drivers/net/ethernet/qlogic/qlge/qlge_mpi.c1284
-rw-r--r--drivers/net/ethernet/rdc/Kconfig34
-rw-r--r--drivers/net/ethernet/rdc/Makefile5
-rw-r--r--drivers/net/ethernet/rdc/r6040.c1270
-rw-r--r--drivers/net/ethernet/realtek/8139cp.c (renamed from drivers/net/8139cp.c)525
-rw-r--r--drivers/net/ethernet/realtek/8139too.c (renamed from drivers/net/8139too.c)670
-rw-r--r--drivers/net/ethernet/realtek/Kconfig115
-rw-r--r--drivers/net/ethernet/realtek/Makefile8
-rw-r--r--drivers/net/ethernet/realtek/atp.c (renamed from drivers/net/atp.c)91
-rw-r--r--drivers/net/ethernet/realtek/atp.h (renamed from drivers/net/atp.h)2
-rw-r--r--drivers/net/ethernet/realtek/r8169.c7245
-rw-r--r--drivers/net/ethernet/renesas/Kconfig16
-rw-r--r--drivers/net/ethernet/renesas/Makefile5
-rw-r--r--drivers/net/ethernet/renesas/sh_eth.c3000
-rw-r--r--drivers/net/ethernet/renesas/sh_eth.h573
-rw-r--r--drivers/net/ethernet/s6gmac.c1059
-rw-r--r--drivers/net/ethernet/samsung/Kconfig32
-rw-r--r--drivers/net/ethernet/samsung/Makefile5
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/Makefile4
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_common.h537
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_core.c284
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_desc.c522
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_desc.h296
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_dma.c368
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_dma.h50
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_ethtool.c524
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c2319
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_mdio.c254
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_mtl.c254
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_mtl.h104
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_platform.c259
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_reg.h491
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_xpcs.c91
-rw-r--r--drivers/net/ethernet/samsung/sxgbe/sxgbe_xpcs.h38
-rw-r--r--drivers/net/ethernet/seeq/Kconfig35
-rw-r--r--drivers/net/ethernet/seeq/Makefile6
-rw-r--r--drivers/net/ethernet/seeq/ether3.c (renamed from drivers/net/arm/ether3.c)108
-rw-r--r--drivers/net/ethernet/seeq/ether3.h (renamed from drivers/net/arm/ether3.h)1
-rw-r--r--drivers/net/ethernet/seeq/sgiseeq.c (renamed from drivers/net/sgiseeq.c)85
-rw-r--r--drivers/net/ethernet/seeq/sgiseeq.h (renamed from drivers/net/sgiseeq.h)2
-rw-r--r--drivers/net/ethernet/sfc/Kconfig38
-rw-r--r--drivers/net/ethernet/sfc/Makefile8
-rw-r--r--drivers/net/ethernet/sfc/bitfield.h (renamed from drivers/net/sfc/bitfield.h)69
-rw-r--r--drivers/net/ethernet/sfc/ef10.c3699
-rw-r--r--drivers/net/ethernet/sfc/ef10_regs.h355
-rw-r--r--drivers/net/ethernet/sfc/efx.c3288
-rw-r--r--drivers/net/ethernet/sfc/efx.h250
-rw-r--r--drivers/net/ethernet/sfc/enum.h181
-rw-r--r--drivers/net/ethernet/sfc/ethtool.c1133
-rw-r--r--drivers/net/ethernet/sfc/falcon.c2875
-rw-r--r--drivers/net/ethernet/sfc/falcon_boards.c764
-rw-r--r--drivers/net/ethernet/sfc/farch.c2959
-rw-r--r--drivers/net/ethernet/sfc/farch_regs.h2932
-rw-r--r--drivers/net/ethernet/sfc/filter.h272
-rw-r--r--drivers/net/ethernet/sfc/io.h302
-rw-r--r--drivers/net/ethernet/sfc/mcdi.c1891
-rw-r--r--drivers/net/ethernet/sfc/mcdi.h361
-rw-r--r--drivers/net/ethernet/sfc/mcdi_mon.c534
-rw-r--r--drivers/net/ethernet/sfc/mcdi_pcol.h7907
-rw-r--r--drivers/net/ethernet/sfc/mcdi_port.c1024
-rw-r--r--drivers/net/ethernet/sfc/mdio_10g.c323
-rw-r--r--drivers/net/ethernet/sfc/mdio_10g.h110
-rw-r--r--drivers/net/ethernet/sfc/mtd.c133
-rw-r--r--drivers/net/ethernet/sfc/net_driver.h1359
-rw-r--r--drivers/net/ethernet/sfc/nic.c534
-rw-r--r--drivers/net/ethernet/sfc/nic.h798
-rw-r--r--drivers/net/ethernet/sfc/phy.h50
-rw-r--r--drivers/net/ethernet/sfc/ptp.c1939
-rw-r--r--drivers/net/ethernet/sfc/qt202x_phy.c495
-rw-r--r--drivers/net/ethernet/sfc/rx.c981
-rw-r--r--drivers/net/ethernet/sfc/selftest.c789
-rw-r--r--drivers/net/ethernet/sfc/selftest.h55
-rw-r--r--drivers/net/ethernet/sfc/siena.c1017
-rw-r--r--drivers/net/ethernet/sfc/siena_sriov.c1645
-rw-r--r--drivers/net/ethernet/sfc/tenxpress.c494
-rw-r--r--drivers/net/ethernet/sfc/tx.c1347
-rw-r--r--drivers/net/ethernet/sfc/txc43128_phy.c560
-rw-r--r--drivers/net/ethernet/sfc/vfdi.h255
-rw-r--r--drivers/net/ethernet/sfc/workarounds.h53
-rw-r--r--drivers/net/ethernet/sgi/Kconfig35
-rw-r--r--drivers/net/ethernet/sgi/Makefile6
-rw-r--r--drivers/net/ethernet/sgi/ioc3-eth.c (renamed from drivers/net/ioc3-eth.c)195
-rw-r--r--drivers/net/ethernet/sgi/meth.c (renamed from drivers/net/meth.c)149
-rw-r--r--drivers/net/ethernet/sgi/meth.h (renamed from drivers/net/meth.h)4
-rw-r--r--drivers/net/ethernet/silan/Kconfig33
-rw-r--r--drivers/net/ethernet/silan/Makefile5
-rw-r--r--drivers/net/ethernet/silan/sc92031.c (renamed from drivers/net/sc92031.c)151
-rw-r--r--drivers/net/ethernet/sis/Kconfig51
-rw-r--r--drivers/net/ethernet/sis/Makefile6
-rw-r--r--drivers/net/ethernet/sis/sis190.c (renamed from drivers/net/sis190.c)382
-rw-r--r--drivers/net/ethernet/sis/sis900.c (renamed from drivers/net/sis900.c)573
-rw-r--r--drivers/net/ethernet/sis/sis900.h (renamed from drivers/net/sis900.h)2
-rw-r--r--drivers/net/ethernet/smsc/Kconfig131
-rw-r--r--drivers/net/ethernet/smsc/Makefile11
-rw-r--r--drivers/net/ethernet/smsc/epic100.c1596
-rw-r--r--drivers/net/ethernet/smsc/smc911x.c (renamed from drivers/net/smc911x.c)457
-rw-r--r--drivers/net/ethernet/smsc/smc911x.h (renamed from drivers/net/smc911x.h)35
-rw-r--r--drivers/net/ethernet/smsc/smc9194.c (renamed from drivers/net/smc9194.c)184
-rw-r--r--drivers/net/ethernet/smsc/smc9194.h (renamed from drivers/net/smc9194.h)0
-rw-r--r--drivers/net/ethernet/smsc/smc91c92_cs.c2055
-rw-r--r--drivers/net/ethernet/smsc/smc91x.c (renamed from drivers/net/smc91x.c)583
-rw-r--r--drivers/net/ethernet/smsc/smc91x.h (renamed from drivers/net/smc91x.h)272
-rw-r--r--drivers/net/ethernet/smsc/smsc911x.c2634
-rw-r--r--drivers/net/ethernet/smsc/smsc911x.h (renamed from drivers/net/smsc911x.h)49
-rw-r--r--drivers/net/ethernet/smsc/smsc9420.c (renamed from drivers/net/smsc9420.c)328
-rw-r--r--drivers/net/ethernet/smsc/smsc9420.h (renamed from drivers/net/smsc9420.h)4
-rw-r--r--drivers/net/ethernet/stmicro/Kconfig23
-rw-r--r--drivers/net/ethernet/stmicro/Makefile5
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/Kconfig90
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/Makefile10
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/chain_mode.c160
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/common.h458
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/descs.h219
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/descs_com.h134
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c130
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac-sti.c330
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c140
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac100.h126
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac1000.h266
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.c391
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c201
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac100_core.c189
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c146
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h116
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c267
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/enh_desc.c402
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/mmc.h135
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/mmc_core.c267
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/norm_desc.c273
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/ring_mode.c135
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac.h201
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c780
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c148
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_main.c3014
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c318
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c195
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c340
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c212
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h74
-rw-r--r--drivers/net/ethernet/sun/Kconfig88
-rw-r--r--drivers/net/ethernet/sun/Makefile11
-rw-r--r--drivers/net/ethernet/sun/cassini.c (renamed from drivers/net/cassini.c)651
-rw-r--r--drivers/net/ethernet/sun/cassini.h (renamed from drivers/net/cassini.h)13
-rw-r--r--drivers/net/ethernet/sun/niu.c (renamed from drivers/net/niu.c)2307
-rw-r--r--drivers/net/ethernet/sun/niu.h (renamed from drivers/net/niu.h)35
-rw-r--r--drivers/net/ethernet/sun/sunbmac.c (renamed from drivers/net/sunbmac.c)158
-rw-r--r--drivers/net/ethernet/sun/sunbmac.h (renamed from drivers/net/sunbmac.h)23
-rw-r--r--drivers/net/ethernet/sun/sungem.c3028
-rw-r--r--drivers/net/ethernet/sun/sungem.h (renamed from drivers/net/sungem.h)32
-rw-r--r--drivers/net/ethernet/sun/sunhme.c (renamed from drivers/net/sunhme.c)321
-rw-r--r--drivers/net/ethernet/sun/sunhme.h (renamed from drivers/net/sunhme.h)5
-rw-r--r--drivers/net/ethernet/sun/sunqe.c (renamed from drivers/net/sunqe.c)126
-rw-r--r--drivers/net/ethernet/sun/sunqe.h (renamed from drivers/net/sunqe.h)4
-rw-r--r--drivers/net/ethernet/sun/sunvnet.c (renamed from drivers/net/sunvnet.c)163
-rw-r--r--drivers/net/ethernet/sun/sunvnet.h (renamed from drivers/net/sunvnet.h)0
-rw-r--r--drivers/net/ethernet/tehuti/Kconfig27
-rw-r--r--drivers/net/ethernet/tehuti/Makefile5
-rw-r--r--drivers/net/ethernet/tehuti/tehuti.c (renamed from drivers/net/tehuti.c)629
-rw-r--r--drivers/net/ethernet/tehuti/tehuti.h (renamed from drivers/net/tehuti.h)49
-rw-r--r--drivers/net/ethernet/ti/Kconfig105
-rw-r--r--drivers/net/ethernet/ti/Makefile12
-rw-r--r--drivers/net/ethernet/ti/cpmac.c (renamed from drivers/net/cpmac.c)223
-rw-r--r--drivers/net/ethernet/ti/cpsw-phy-sel.c221
-rw-r--r--drivers/net/ethernet/ti/cpsw.c2364
-rw-r--r--drivers/net/ethernet/ti/cpsw.h44
-rw-r--r--drivers/net/ethernet/ti/cpsw_ale.c765
-rw-r--r--drivers/net/ethernet/ti/cpsw_ale.h108
-rw-r--r--drivers/net/ethernet/ti/cpts.c416
-rw-r--r--drivers/net/ethernet/ti/cpts.h144
-rw-r--r--drivers/net/ethernet/ti/davinci_cpdma.c1043
-rw-r--r--drivers/net/ethernet/ti/davinci_cpdma.h117
-rw-r--r--drivers/net/ethernet/ti/davinci_emac.c2121
-rw-r--r--drivers/net/ethernet/ti/davinci_mdio.c488
-rw-r--r--drivers/net/ethernet/ti/tlan.c3253
-rw-r--r--drivers/net/ethernet/ti/tlan.h545
-rw-r--r--drivers/net/ethernet/tile/Kconfig18
-rw-r--r--drivers/net/ethernet/tile/Makefile10
-rw-r--r--drivers/net/ethernet/tile/tilegx.c2281
-rw-r--r--drivers/net/ethernet/tile/tilepro.c2425
-rw-r--r--drivers/net/ethernet/toshiba/Kconfig57
-rw-r--r--drivers/net/ethernet/toshiba/Makefile10
-rw-r--r--drivers/net/ethernet/toshiba/ps3_gelic_net.c (renamed from drivers/net/ps3_gelic_net.c)491
-rw-r--r--drivers/net/ethernet/toshiba/ps3_gelic_net.h (renamed from drivers/net/ps3_gelic_net.h)61
-rw-r--r--drivers/net/ethernet/toshiba/ps3_gelic_wireless.c (renamed from drivers/net/ps3_gelic_wireless.c)291
-rw-r--r--drivers/net/ethernet/toshiba/ps3_gelic_wireless.h (renamed from drivers/net/ps3_gelic_wireless.h)18
-rw-r--r--drivers/net/ethernet/toshiba/spider_net.c (renamed from drivers/net/spider_net.c)112
-rw-r--r--drivers/net/ethernet/toshiba/spider_net.h (renamed from drivers/net/spider_net.h)13
-rw-r--r--drivers/net/ethernet/toshiba/spider_net_ethtool.c (renamed from drivers/net/spider_net_ethtool.c)35
-rw-r--r--drivers/net/ethernet/toshiba/tc35815.c (renamed from drivers/net/tc35815.c)560
-rw-r--r--drivers/net/ethernet/tundra/Kconfig29
-rw-r--r--drivers/net/ethernet/tundra/Makefile5
-rw-r--r--drivers/net/ethernet/tundra/tsi108_eth.c (renamed from drivers/net/tsi108_eth.c)151
-rw-r--r--drivers/net/ethernet/tundra/tsi108_eth.h (renamed from drivers/net/tsi108_eth.h)12
-rw-r--r--drivers/net/ethernet/via/Kconfig56
-rw-r--r--drivers/net/ethernet/via/Makefile6
-rw-r--r--drivers/net/ethernet/via/via-rhine.c2568
-rw-r--r--drivers/net/ethernet/via/via-velocity.c3766
-rw-r--r--drivers/net/ethernet/via/via-velocity.h (renamed from drivers/net/via-velocity.h)147
-rw-r--r--drivers/net/ethernet/wiznet/Kconfig74
-rw-r--r--drivers/net/ethernet/wiznet/Makefile2
-rw-r--r--drivers/net/ethernet/wiznet/w5100.c801
-rw-r--r--drivers/net/ethernet/wiznet/w5300.c713
-rw-r--r--drivers/net/ethernet/xilinx/Kconfig44
-rw-r--r--drivers/net/ethernet/xilinx/Makefile9
-rw-r--r--drivers/net/ethernet/xilinx/ll_temac.h385
-rw-r--r--drivers/net/ethernet/xilinx/ll_temac_main.c1184
-rw-r--r--drivers/net/ethernet/xilinx/ll_temac_mdio.c122
-rw-r--r--drivers/net/ethernet/xilinx/xilinx_axienet.h506
-rw-r--r--drivers/net/ethernet/xilinx/xilinx_axienet_main.c1659
-rw-r--r--drivers/net/ethernet/xilinx/xilinx_axienet_mdio.c239
-rw-r--r--drivers/net/ethernet/xilinx/xilinx_emaclite.c1259
-rw-r--r--drivers/net/ethernet/xircom/Kconfig31
-rw-r--r--drivers/net/ethernet/xircom/Makefile5
-rw-r--r--drivers/net/ethernet/xircom/xirc2ps_cs.c1798
-rw-r--r--drivers/net/ethernet/xscale/Kconfig31
-rw-r--r--drivers/net/ethernet/xscale/Makefile5
-rw-r--r--drivers/net/ethernet/xscale/ixp4xx_eth.c (renamed from drivers/net/arm/ixp4xx_eth.c)397
-rw-r--r--drivers/net/ewrk3.c1969
-rw-r--r--drivers/net/ewrk3.h322
-rw-r--r--drivers/net/fddi/Kconfig77
-rw-r--r--drivers/net/fddi/Makefile6
-rw-r--r--drivers/net/fddi/defxx.c (renamed from drivers/net/defxx.c)215
-rw-r--r--drivers/net/fddi/defxx.h (renamed from drivers/net/defxx.h)0
-rw-r--r--drivers/net/fddi/skfp/Makefile20
-rw-r--r--drivers/net/fddi/skfp/cfm.c (renamed from drivers/net/skfp/cfm.c)10
-rw-r--r--drivers/net/fddi/skfp/drvfbi.c (renamed from drivers/net/skfp/drvfbi.c)16
-rw-r--r--drivers/net/fddi/skfp/ecm.c (renamed from drivers/net/skfp/ecm.c)0
-rw-r--r--drivers/net/fddi/skfp/ess.c (renamed from drivers/net/skfp/ess.c)56
-rw-r--r--drivers/net/fddi/skfp/fplustm.c (renamed from drivers/net/skfp/fplustm.c)61
-rw-r--r--drivers/net/fddi/skfp/h/cmtdef.h (renamed from drivers/net/skfp/h/cmtdef.h)8
-rw-r--r--drivers/net/fddi/skfp/h/fddi.h (renamed from drivers/net/skfp/h/fddi.h)0
-rw-r--r--drivers/net/fddi/skfp/h/fddimib.h (renamed from drivers/net/skfp/h/fddimib.h)0
-rw-r--r--drivers/net/fddi/skfp/h/fplustm.h (renamed from drivers/net/skfp/h/fplustm.h)4
-rw-r--r--drivers/net/fddi/skfp/h/hwmtm.h (renamed from drivers/net/skfp/h/hwmtm.h)4
-rw-r--r--drivers/net/fddi/skfp/h/mbuf.h (renamed from drivers/net/skfp/h/mbuf.h)0
-rw-r--r--drivers/net/fddi/skfp/h/osdef1st.h (renamed from drivers/net/skfp/h/osdef1st.h)0
-rw-r--r--drivers/net/fddi/skfp/h/sba.h (renamed from drivers/net/skfp/h/sba.h)4
-rw-r--r--drivers/net/fddi/skfp/h/sba_def.h (renamed from drivers/net/skfp/h/sba_def.h)0
-rw-r--r--drivers/net/fddi/skfp/h/skfbi.h (renamed from drivers/net/skfp/h/skfbi.h)0
-rw-r--r--drivers/net/fddi/skfp/h/skfbiinc.h (renamed from drivers/net/skfp/h/skfbiinc.h)2
-rw-r--r--drivers/net/fddi/skfp/h/smc.h (renamed from drivers/net/skfp/h/smc.h)41
-rw-r--r--drivers/net/fddi/skfp/h/smt.h (renamed from drivers/net/skfp/h/smt.h)4
-rw-r--r--drivers/net/fddi/skfp/h/smt_p.h (renamed from drivers/net/skfp/h/smt_p.h)0
-rw-r--r--drivers/net/fddi/skfp/h/smtstate.h (renamed from drivers/net/skfp/h/smtstate.h)0
-rw-r--r--drivers/net/fddi/skfp/h/supern_2.h (renamed from drivers/net/skfp/h/supern_2.h)100
-rw-r--r--drivers/net/fddi/skfp/h/targethw.h (renamed from drivers/net/skfp/h/targethw.h)6
-rw-r--r--drivers/net/fddi/skfp/h/targetos.h (renamed from drivers/net/skfp/h/targetos.h)3
-rw-r--r--drivers/net/fddi/skfp/h/types.h (renamed from drivers/net/skfp/h/types.h)0
-rw-r--r--drivers/net/fddi/skfp/hwmtm.c (renamed from drivers/net/skfp/hwmtm.c)41
-rw-r--r--drivers/net/fddi/skfp/hwt.c (renamed from drivers/net/skfp/hwt.c)6
-rw-r--r--drivers/net/fddi/skfp/pcmplc.c (renamed from drivers/net/skfp/pcmplc.c)37
-rw-r--r--drivers/net/fddi/skfp/pmf.c (renamed from drivers/net/skfp/pmf.c)80
-rw-r--r--drivers/net/fddi/skfp/queue.c173
-rw-r--r--drivers/net/fddi/skfp/rmt.c (renamed from drivers/net/skfp/rmt.c)0
-rw-r--r--drivers/net/fddi/skfp/skfddi.c (renamed from drivers/net/skfp/skfddi.c)280
-rw-r--r--drivers/net/fddi/skfp/smt.c (renamed from drivers/net/skfp/smt.c)98
-rw-r--r--drivers/net/fddi/skfp/smtdef.c (renamed from drivers/net/skfp/smtdef.c)4
-rw-r--r--drivers/net/fddi/skfp/smtinit.c (renamed from drivers/net/skfp/smtinit.c)2
-rw-r--r--drivers/net/fddi/skfp/smttimer.c (renamed from drivers/net/skfp/smttimer.c)0
-rw-r--r--drivers/net/fddi/skfp/srf.c (renamed from drivers/net/skfp/srf.c)28
-rw-r--r--drivers/net/fec.c2590
-rw-r--r--drivers/net/fec.h165
-rw-r--r--drivers/net/fec_mpc52xx.c1180
-rw-r--r--drivers/net/fec_mpc52xx_phy.c184
-rw-r--r--drivers/net/forcedeth.c6231
-rw-r--r--drivers/net/fs_enet/Kconfig30
-rw-r--r--drivers/net/fs_enet/fec.h42
-rw-r--r--drivers/net/fs_enet/mii-bitbang.c268
-rw-r--r--drivers/net/fs_enet/mii-fec.c238
-rw-r--r--drivers/net/gianfar.c2327
-rw-r--r--drivers/net/gianfar.h833
-rw-r--r--drivers/net/gianfar_ethtool.c634
-rw-r--r--drivers/net/gianfar_mii.c377
-rw-r--r--drivers/net/gianfar_mii.h54
-rw-r--r--drivers/net/gianfar_sysfs.c312
-rw-r--r--drivers/net/hamradio/6pack.c62
-rw-r--r--drivers/net/hamradio/Kconfig6
-rw-r--r--drivers/net/hamradio/Makefile2
-rw-r--r--drivers/net/hamradio/baycom_epp.c64
-rw-r--r--drivers/net/hamradio/baycom_par.c5
-rw-r--r--drivers/net/hamradio/baycom_ser_fdx.c10
-rw-r--r--drivers/net/hamradio/baycom_ser_hdx.c6
-rw-r--r--drivers/net/hamradio/bpqether.c117
-rw-r--r--drivers/net/hamradio/dmascc.c76
-rw-r--r--drivers/net/hamradio/hdlcdrv.c64
-rw-r--r--drivers/net/hamradio/mkiss.c109
-rw-r--r--drivers/net/hamradio/scc.c47
-rw-r--r--drivers/net/hamradio/yam.c162
-rw-r--r--drivers/net/hamradio/yam1200.h343
-rw-r--r--drivers/net/hamradio/yam9600.h343
-rw-r--r--drivers/net/hippi/Kconfig39
-rw-r--r--drivers/net/hippi/Makefile5
-rw-r--r--drivers/net/hippi/rrunner.c (renamed from drivers/net/rrunner.c)138
-rw-r--r--drivers/net/hippi/rrunner.h (renamed from drivers/net/rrunner.h)3
-rw-r--r--drivers/net/hp-plus.c509
-rw-r--r--drivers/net/hp.c441
-rw-r--r--drivers/net/hplance.c236
-rw-r--r--drivers/net/hyperv/Kconfig5
-rw-r--r--drivers/net/hyperv/Makefile3
-rw-r--r--drivers/net/hyperv/hyperv_net.h1181
-rw-r--r--drivers/net/hyperv/netvsc.c1104
-rw-r--r--drivers/net/hyperv/netvsc_drv.c923
-rw-r--r--drivers/net/hyperv/rndis_filter.c1185
-rw-r--r--drivers/net/ibm_newemac/Kconfig76
-rw-r--r--drivers/net/ibm_newemac/Makefile11
-rw-r--r--drivers/net/ibm_newemac/core.c3080
-rw-r--r--drivers/net/ibm_newemac/core.h461
-rw-r--r--drivers/net/ibm_newemac/debug.c269
-rw-r--r--drivers/net/ibm_newemac/debug.h83
-rw-r--r--drivers/net/ibm_newemac/emac.h310
-rw-r--r--drivers/net/ibm_newemac/phy.c538
-rw-r--r--drivers/net/ibm_newemac/phy.h87
-rw-r--r--drivers/net/ibm_newemac/rgmii.h82
-rw-r--r--drivers/net/ibm_newemac/tah.c183
-rw-r--r--drivers/net/ibm_newemac/zmii.h78
-rw-r--r--drivers/net/ibmlana.c1068
-rw-r--r--drivers/net/ibmlana.h278
-rw-r--r--drivers/net/ibmveth.c1618
-rw-r--r--drivers/net/ibmveth.h192
-rw-r--r--drivers/net/ieee802154/Kconfig53
-rw-r--r--drivers/net/ieee802154/Makefile4
-rw-r--r--drivers/net/ieee802154/at86rf230.c1240
-rw-r--r--drivers/net/ieee802154/fakehard.c426
-rw-r--r--drivers/net/ieee802154/fakelb.c294
-rw-r--r--drivers/net/ieee802154/mrf24j40.c739
-rw-r--r--drivers/net/ifb.c144
-rw-r--r--drivers/net/igb/Makefile37
-rw-r--r--drivers/net/igb/e1000_82575.c1454
-rw-r--r--drivers/net/igb/e1000_82575.h173
-rw-r--r--drivers/net/igb/e1000_defines.h766
-rw-r--r--drivers/net/igb/e1000_hw.h601
-rw-r--r--drivers/net/igb/e1000_mac.c1408
-rw-r--r--drivers/net/igb/e1000_mac.h96
-rw-r--r--drivers/net/igb/e1000_nvm.c605
-rw-r--r--drivers/net/igb/e1000_nvm.h40
-rw-r--r--drivers/net/igb/e1000_phy.c1805
-rw-r--r--drivers/net/igb/e1000_phy.h98
-rw-r--r--drivers/net/igb/e1000_regs.h278
-rw-r--r--drivers/net/igb/igb.h367
-rw-r--r--drivers/net/igb/igb_ethtool.c2032
-rw-r--r--drivers/net/igb/igb_main.c4569
-rw-r--r--drivers/net/irda/Kconfig121
-rw-r--r--drivers/net/irda/Makefile4
-rw-r--r--drivers/net/irda/act200l-sir.c2
-rw-r--r--drivers/net/irda/ali-ircc.c112
-rw-r--r--drivers/net/irda/au1000_ircc.h125
-rw-r--r--drivers/net/irda/au1k_ir.c1224
-rw-r--r--drivers/net/irda/bfin_sir.c818
-rw-r--r--drivers/net/irda/bfin_sir.h96
-rw-r--r--drivers/net/irda/donauboe.c62
-rw-r--r--drivers/net/irda/donauboe.h8
-rw-r--r--drivers/net/irda/ep7211-sir.c89
-rw-r--r--drivers/net/irda/esi-sir.c4
-rw-r--r--drivers/net/irda/girbil-sir.c2
-rw-r--r--drivers/net/irda/irda-usb.c130
-rw-r--r--drivers/net/irda/irda-usb.h2
-rw-r--r--drivers/net/irda/irtty-sir.c29
-rw-r--r--drivers/net/irda/kingsun-sir.c82
-rw-r--r--drivers/net/irda/ks959-sir.c76
-rw-r--r--drivers/net/irda/ksdazzle-sir.c92
-rw-r--r--drivers/net/irda/litelink-sir.c4
-rw-r--r--drivers/net/irda/ma600-sir.c4
-rw-r--r--drivers/net/irda/mcs7780.c107
-rw-r--r--drivers/net/irda/mcs7780.h3
-rw-r--r--drivers/net/irda/nsc-ircc.c66
-rw-r--r--drivers/net/irda/nsc-ircc.h2
-rw-r--r--drivers/net/irda/old_belkin-sir.c4
-rw-r--r--drivers/net/irda/pxaficp_ir.c145
-rw-r--r--drivers/net/irda/sa1100_ir.c970
-rw-r--r--drivers/net/irda/sh_irda.c875
-rw-r--r--drivers/net/irda/sh_sir.c811
-rw-r--r--drivers/net/irda/sir-dev.h29
-rw-r--r--drivers/net/irda/sir_dev.c37
-rw-r--r--drivers/net/irda/sir_dongle.c1
-rw-r--r--drivers/net/irda/smsc-ircc2.c130
-rw-r--r--drivers/net/irda/smsc-ircc2.h4
-rw-r--r--drivers/net/irda/stir4200.c59
-rw-r--r--drivers/net/irda/toim3232-sir.c3
-rw-r--r--drivers/net/irda/via-ircc.c203
-rw-r--r--drivers/net/irda/via-ircc.h9
-rw-r--r--drivers/net/irda/vlsi_ir.c73
-rw-r--r--drivers/net/irda/vlsi_ir.h16
-rw-r--r--drivers/net/irda/w83977af_ir.c114
-rw-r--r--drivers/net/isa-skeleton.c711
-rw-r--r--drivers/net/iseries_veth.c1723
-rw-r--r--drivers/net/ixgbe/Makefile38
-rw-r--r--drivers/net/ixgbe/ixgbe.h356
-rw-r--r--drivers/net/ixgbe/ixgbe_82598.c1109
-rw-r--r--drivers/net/ixgbe/ixgbe_common.c1599
-rw-r--r--drivers/net/ixgbe/ixgbe_common.h96
-rw-r--r--drivers/net/ixgbe/ixgbe_dcb.c332
-rw-r--r--drivers/net/ixgbe/ixgbe_dcb.h184
-rw-r--r--drivers/net/ixgbe/ixgbe_dcb_82598.c398
-rw-r--r--drivers/net/ixgbe/ixgbe_dcb_nl.c641
-rw-r--r--drivers/net/ixgbe/ixgbe_ethtool.c1046
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c4482
-rw-r--r--drivers/net/ixgbe/ixgbe_phy.c754
-rw-r--r--drivers/net/ixgbe/ixgbe_phy.h105
-rw-r--r--drivers/net/ixgbe/ixgbe_type.h1520
-rw-r--r--drivers/net/ixp2000/Kconfig6
-rw-r--r--drivers/net/ixp2000/Makefile3
-rw-r--r--drivers/net/ixp2000/caleb.c136
-rw-r--r--drivers/net/ixp2000/caleb.h22
-rw-r--r--drivers/net/ixp2000/enp2611.c248
-rw-r--r--drivers/net/ixp2000/ixp2400-msf.c212
-rw-r--r--drivers/net/ixp2000/ixp2400-msf.h115
-rw-r--r--drivers/net/ixp2000/ixp2400_rx.uc408
-rw-r--r--drivers/net/ixp2000/ixp2400_rx.ucode130
-rw-r--r--drivers/net/ixp2000/ixp2400_tx.uc272
-rw-r--r--drivers/net/ixp2000/ixp2400_tx.ucode98
-rw-r--r--drivers/net/ixp2000/ixpdev.c422
-rw-r--r--drivers/net/ixp2000/ixpdev.h29
-rw-r--r--drivers/net/ixp2000/ixpdev_priv.h57
-rw-r--r--drivers/net/ixp2000/pm3386.c351
-rw-r--r--drivers/net/ixp2000/pm3386.h29
-rw-r--r--drivers/net/jme.c3024
-rw-r--r--drivers/net/lne390.c435
-rw-r--r--drivers/net/loopback.c114
-rw-r--r--drivers/net/lp486e.c1332
-rw-r--r--drivers/net/mac8390.c871
-rw-r--r--drivers/net/macb.c1356
-rw-r--r--drivers/net/macb.h394
-rw-r--r--drivers/net/macsonic.c659
-rw-r--r--drivers/net/macvlan.c1001
-rw-r--r--drivers/net/macvtap.c1252
-rw-r--r--drivers/net/mdio.c423
-rw-r--r--drivers/net/mii.c138
-rw-r--r--drivers/net/mipsnet.c335
-rw-r--r--drivers/net/mlx4/Makefile9
-rw-r--r--drivers/net/mlx4/alloc.c436
-rw-r--r--drivers/net/mlx4/cmd.c439
-rw-r--r--drivers/net/mlx4/cq.c319
-rw-r--r--drivers/net/mlx4/en_cq.c149
-rw-r--r--drivers/net/mlx4/en_main.c250
-rw-r--r--drivers/net/mlx4/en_netdev.c1085
-rw-r--r--drivers/net/mlx4/en_params.c485
-rw-r--r--drivers/net/mlx4/en_port.c261
-rw-r--r--drivers/net/mlx4/en_resources.c96
-rw-r--r--drivers/net/mlx4/en_rx.c1079
-rw-r--r--drivers/net/mlx4/en_tx.c828
-rw-r--r--drivers/net/mlx4/eq.c715
-rw-r--r--drivers/net/mlx4/fw.c886
-rw-r--r--drivers/net/mlx4/fw.h177
-rw-r--r--drivers/net/mlx4/main.c1282
-rw-r--r--drivers/net/mlx4/mcg.c365
-rw-r--r--drivers/net/mlx4/mlx4.h388
-rw-r--r--drivers/net/mlx4/mlx4_en.h568
-rw-r--r--drivers/net/mlx4/mr.c660
-rw-r--r--drivers/net/mlx4/pd.c109
-rw-r--r--drivers/net/mlx4/port.c319
-rw-r--r--drivers/net/mlx4/qp.c381
-rw-r--r--drivers/net/mlx4/reset.c186
-rw-r--r--drivers/net/mlx4/srq.c258
-rw-r--r--drivers/net/mv643xx_eth.c2814
-rw-r--r--drivers/net/myri_code.h5006
-rw-r--r--drivers/net/myri_sbus.c1155
-rw-r--r--drivers/net/myri_sbus.h311
-rw-r--r--drivers/net/ne-h8300.c686
-rw-r--r--drivers/net/ne2.c801
-rw-r--r--drivers/net/ne3210.c348
-rw-r--r--drivers/net/netconsole.c253
-rw-r--r--drivers/net/netxen/Makefile35
-rw-r--r--drivers/net/netxen/netxen_nic.h1607
-rw-r--r--drivers/net/netxen/netxen_nic_ctx.c705
-rw-r--r--drivers/net/netxen/netxen_nic_ethtool.c924
-rw-r--r--drivers/net/netxen/netxen_nic_hw.c2255
-rw-r--r--drivers/net/netxen/netxen_nic_hw.h504
-rw-r--r--drivers/net/netxen/netxen_nic_init.c1578
-rw-r--r--drivers/net/netxen/netxen_nic_main.c1676
-rw-r--r--drivers/net/netxen/netxen_nic_niu.c931
-rw-r--r--drivers/net/netxen/netxen_nic_phan_reg.h175
-rw-r--r--drivers/net/ni5010.c768
-rw-r--r--drivers/net/ni5010.h144
-rw-r--r--drivers/net/ni52.c1345
-rw-r--r--drivers/net/ni52.h310
-rw-r--r--drivers/net/nlmon.c181
-rw-r--r--drivers/net/ntb_netdev.c422
-rw-r--r--drivers/net/pci-skeleton.c1937
-rw-r--r--drivers/net/pcmcia/3c589_cs.c993
-rw-r--r--drivers/net/pcmcia/Kconfig123
-rw-r--r--drivers/net/pcmcia/Makefile16
-rw-r--r--drivers/net/pcmcia/com20020_cs.c406
-rw-r--r--drivers/net/pcmcia/fmvj18x_cs.c1259
-rw-r--r--drivers/net/pcmcia/ibmtr_cs.c439
-rw-r--r--drivers/net/pcmcia/ositech.h358
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c2254
-rw-r--r--drivers/net/pcmcia/xirc2ps_cs.c1958
-rw-r--r--drivers/net/phy/Kconfig110
-rw-r--r--drivers/net/phy/Makefile15
-rw-r--r--drivers/net/phy/amd-xgbe-phy.c1357
-rw-r--r--drivers/net/phy/amd.c96
-rw-r--r--drivers/net/phy/at803x.c376
-rw-r--r--drivers/net/phy/bcm63xx.c124
-rw-r--r--drivers/net/phy/bcm7xxx.c359
-rw-r--r--drivers/net/phy/bcm87xx.c233
-rw-r--r--drivers/net/phy/broadcom.c544
-rw-r--r--drivers/net/phy/cicada.c52
-rw-r--r--drivers/net/phy/davicom.c66
-rw-r--r--drivers/net/phy/dp83640.c1441
-rw-r--r--drivers/net/phy/dp83640_reg.h267
-rw-r--r--drivers/net/phy/et1011c.c8
-rw-r--r--drivers/net/phy/fixed.c93
-rw-r--r--drivers/net/phy/icplus.c180
-rw-r--r--drivers/net/phy/lxt.c215
-rw-r--r--drivers/net/phy/marvell.c646
-rw-r--r--drivers/net/phy/mdio-bitbang.c70
-rw-r--r--drivers/net/phy/mdio-gpio.c260
-rw-r--r--drivers/net/phy/mdio-moxart.c200
-rw-r--r--drivers/net/phy/mdio-mux-gpio.c140
-rw-r--r--drivers/net/phy/mdio-mux-mmioreg.c170
-rw-r--r--drivers/net/phy/mdio-mux.c198
-rw-r--r--drivers/net/phy/mdio-octeon.c284
-rw-r--r--drivers/net/phy/mdio-sun4i.c188
-rw-r--r--drivers/net/phy/mdio_bus.c395
-rw-r--r--drivers/net/phy/micrel.c645
-rw-r--r--drivers/net/phy/national.c35
-rw-r--r--drivers/net/phy/phy.c858
-rw-r--r--drivers/net/phy/phy_device.c913
-rw-r--r--drivers/net/phy/qsemi.c8
-rw-r--r--drivers/net/phy/realtek.c81
-rw-r--r--drivers/net/phy/smsc.c198
-rw-r--r--drivers/net/phy/spi_ks8995.c387
-rw-r--r--drivers/net/phy/ste10Xp.c29
-rw-r--r--drivers/net/phy/vitesse.c256
-rw-r--r--drivers/net/plip/Kconfig38
-rw-r--r--drivers/net/plip/Makefile5
-rw-r--r--drivers/net/plip/plip.c (renamed from drivers/net/plip.c)57
-rw-r--r--drivers/net/ppp/Kconfig178
-rw-r--r--drivers/net/ppp/Makefile13
-rw-r--r--drivers/net/ppp/bsd_comp.c (renamed from drivers/net/bsd_comp.c)4
-rw-r--r--drivers/net/ppp/ppp_async.c (renamed from drivers/net/ppp_async.c)58
-rw-r--r--drivers/net/ppp/ppp_deflate.c (renamed from drivers/net/ppp_deflate.c)90
-rw-r--r--drivers/net/ppp/ppp_generic.c (renamed from drivers/net/ppp_generic.c)1004
-rw-r--r--drivers/net/ppp/ppp_mppe.c (renamed from drivers/net/ppp_mppe.c)18
-rw-r--r--drivers/net/ppp/ppp_mppe.h (renamed from drivers/net/ppp_mppe.h)0
-rw-r--r--drivers/net/ppp/ppp_synctty.c (renamed from drivers/net/ppp_synctty.c)89
-rw-r--r--drivers/net/ppp/pppoe.c1202
-rw-r--r--drivers/net/ppp/pppox.c (renamed from drivers/net/pppox.c)15
-rw-r--r--drivers/net/ppp/pptp.c719
-rw-r--r--drivers/net/pppoe.c1136
-rw-r--r--drivers/net/pppol2tp.c2659
-rw-r--r--drivers/net/qla3xxx.c4120
-rw-r--r--drivers/net/qlge/qlge.h1580
-rw-r--r--drivers/net/qlge/qlge_dbg.c841
-rw-r--r--drivers/net/qlge/qlge_ethtool.c414
-rw-r--r--drivers/net/qlge/qlge_main.c3910
-rw-r--r--drivers/net/qlge/qlge_mpi.c150
-rw-r--r--drivers/net/r6040.c1240
-rw-r--r--drivers/net/r8169.c3857
-rw-r--r--drivers/net/rionet.c312
-rw-r--r--drivers/net/s2io.c8704
-rw-r--r--drivers/net/sb1000.c23
-rw-r--r--drivers/net/seeq8005.c746
-rw-r--r--drivers/net/seeq8005.h156
-rw-r--r--drivers/net/sfc/Kconfig22
-rw-r--r--drivers/net/sfc/Makefile6
-rw-r--r--drivers/net/sfc/boards.c270
-rw-r--r--drivers/net/sfc/boards.h27
-rw-r--r--drivers/net/sfc/efx.c2251
-rw-r--r--drivers/net/sfc/efx.h83
-rw-r--r--drivers/net/sfc/enum.h104
-rw-r--r--drivers/net/sfc/ethtool.c770
-rw-r--r--drivers/net/sfc/ethtool.h27
-rw-r--r--drivers/net/sfc/falcon.c3192
-rw-r--r--drivers/net/sfc/falcon.h143
-rw-r--r--drivers/net/sfc/falcon_gmac.c229
-rw-r--r--drivers/net/sfc/falcon_hwdefs.h1334
-rw-r--r--drivers/net/sfc/falcon_io.h255
-rw-r--r--drivers/net/sfc/falcon_xmac.c376
-rw-r--r--drivers/net/sfc/gmii.h60
-rw-r--r--drivers/net/sfc/mac.h19
-rw-r--r--drivers/net/sfc/mdio_10g.c579
-rw-r--r--drivers/net/sfc/mdio_10g.h310
-rw-r--r--drivers/net/sfc/mtd.c268
-rw-r--r--drivers/net/sfc/net_driver.h1014
-rw-r--r--drivers/net/sfc/phy.h41
-rw-r--r--drivers/net/sfc/rx.c880
-rw-r--r--drivers/net/sfc/rx.h29
-rw-r--r--drivers/net/sfc/selftest.c761
-rw-r--r--drivers/net/sfc/selftest.h53
-rw-r--r--drivers/net/sfc/sfe4001.c405
-rw-r--r--drivers/net/sfc/spi.h96
-rw-r--r--drivers/net/sfc/tenxpress.c909
-rw-r--r--drivers/net/sfc/tx.c1143
-rw-r--r--drivers/net/sfc/tx.h24
-rw-r--r--drivers/net/sfc/workarounds.h62
-rw-r--r--drivers/net/sfc/xenpack.h62
-rw-r--r--drivers/net/sfc/xfp_phy.c171
-rw-r--r--drivers/net/sh_eth.c1329
-rw-r--r--drivers/net/sh_eth.h680
-rw-r--r--drivers/net/skfp/Makefile20
-rw-r--r--drivers/net/skfp/queue.c173
-rw-r--r--drivers/net/sky2.c4643
-rw-r--r--drivers/net/slip/Kconfig80
-rw-r--r--drivers/net/slip/Makefile6
-rw-r--r--drivers/net/slip/slhc.c (renamed from drivers/net/slhc.c)20
-rw-r--r--drivers/net/slip/slip.c (renamed from drivers/net/slip.c)320
-rw-r--r--drivers/net/slip/slip.h (renamed from drivers/net/slip.h)20
-rw-r--r--drivers/net/smc-mca.c576
-rw-r--r--drivers/net/smc-ultra32.c452
-rw-r--r--drivers/net/smsc911x.c2073
-rw-r--r--drivers/net/sungem.c3244
-rw-r--r--drivers/net/sungem_phy.c22
-rw-r--r--drivers/net/sungem_phy.h132
-rw-r--r--drivers/net/team/Kconfig76
-rw-r--r--drivers/net/team/Makefile10
-rw-r--r--drivers/net/team/team.c2918
-rw-r--r--drivers/net/team/team_mode_activebackup.c148
-rw-r--r--drivers/net/team/team_mode_broadcast.c77
-rw-r--r--drivers/net/team/team_mode_loadbalance.c678
-rw-r--r--drivers/net/team/team_mode_random.c67
-rw-r--r--drivers/net/team/team_mode_roundrobin.c79
-rw-r--r--drivers/net/tehuti_fw.h10712
-rw-r--r--drivers/net/tg3.c13453
-rw-r--r--drivers/net/tg3.h2772
-rw-r--r--drivers/net/tlan.c3321
-rw-r--r--drivers/net/tlan.h545
-rw-r--r--drivers/net/tokenring/3c359.c1811
-rw-r--r--drivers/net/tokenring/3c359.h288
-rw-r--r--drivers/net/tokenring/3c359_microcode.h1581
-rw-r--r--drivers/net/tokenring/Kconfig185
-rw-r--r--drivers/net/tokenring/Makefile15
-rw-r--r--drivers/net/tokenring/abyss.c463
-rw-r--r--drivers/net/tokenring/abyss.h58
-rw-r--r--drivers/net/tokenring/ibmtr.c1968
-rw-r--r--drivers/net/tokenring/lanstreamer.c1926
-rw-r--r--drivers/net/tokenring/lanstreamer.h344
-rw-r--r--drivers/net/tokenring/madgemc.c775
-rw-r--r--drivers/net/tokenring/madgemc.h70
-rw-r--r--drivers/net/tokenring/olympic.c1757
-rw-r--r--drivers/net/tokenring/olympic.h322
-rw-r--r--drivers/net/tokenring/proteon.c418
-rw-r--r--drivers/net/tokenring/skisa.c428
-rw-r--r--drivers/net/tokenring/smctr.c5742
-rw-r--r--drivers/net/tokenring/smctr.h1586
-rw-r--r--drivers/net/tokenring/tms380tr.c2396
-rw-r--r--drivers/net/tokenring/tms380tr.h1140
-rw-r--r--drivers/net/tokenring/tmspci.c251
-rw-r--r--drivers/net/tulip/21142.c243
-rw-r--r--drivers/net/tulip/Kconfig155
-rw-r--r--drivers/net/tulip/Makefile17
-rw-r--r--drivers/net/tulip/eeprom.c377
-rw-r--r--drivers/net/tulip/interrupt.c768
-rw-r--r--drivers/net/tulip/timer.c184
-rw-r--r--drivers/net/tulip/uli526x.c1858
-rw-r--r--drivers/net/tulip/xircom_cb.c1259
-rw-r--r--drivers/net/tun.c1973
-rw-r--r--drivers/net/typhoon-firmware.h3778
-rw-r--r--drivers/net/typhoon.h624
-rw-r--r--drivers/net/ucc_geth.c3821
-rw-r--r--drivers/net/ucc_geth_mii.c285
-rw-r--r--drivers/net/ucc_geth_mii.h100
-rw-r--r--drivers/net/usb/Kconfig250
-rw-r--r--drivers/net/usb/Makefile18
-rw-r--r--drivers/net/usb/asix.c1484
-rw-r--r--drivers/net/usb/asix.h234
-rw-r--r--drivers/net/usb/asix_common.c582
-rw-r--r--drivers/net/usb/asix_devices.c1116
-rw-r--r--drivers/net/usb/ax88172a.c422
-rw-r--r--drivers/net/usb/ax88179_178a.c1487
-rw-r--r--drivers/net/usb/catc.c196
-rw-r--r--drivers/net/usb/cdc-phonet.c466
-rw-r--r--drivers/net/usb/cdc_eem.c381
-rw-r--r--drivers/net/usb/cdc_ether.c419
-rw-r--r--drivers/net/usb/cdc_mbim.c625
-rw-r--r--drivers/net/usb/cdc_ncm.c1616
-rw-r--r--drivers/net/usb/cdc_subset.c32
-rw-r--r--drivers/net/usb/cx82310_eth.c326
-rw-r--r--drivers/net/usb/dm9601.c338
-rw-r--r--drivers/net/usb/gl620a.c34
-rw-r--r--drivers/net/usb/hso.c666
-rw-r--r--drivers/net/usb/huawei_cdc_ncm.c221
-rw-r--r--drivers/net/usb/int51x1.c199
-rw-r--r--drivers/net/usb/ipheth.c588
-rw-r--r--drivers/net/usb/kalmia.c366
-rw-r--r--drivers/net/usb/kaweth.c325
-rw-r--r--drivers/net/usb/lg-vl600.c353
-rw-r--r--drivers/net/usb/mcs7830.c408
-rw-r--r--drivers/net/usb/net1080.c306
-rw-r--r--drivers/net/usb/pegasus.c743
-rw-r--r--drivers/net/usb/pegasus.h307
-rw-r--r--drivers/net/usb/plusb.c60
-rw-r--r--drivers/net/usb/qmi_wwan.c878
-rw-r--r--drivers/net/usb/r8152.c3539
-rw-r--r--drivers/net/usb/rndis_host.c252
-rw-r--r--drivers/net/usb/rtl8150.c362
-rw-r--r--drivers/net/usb/sierra_net.c969
-rw-r--r--drivers/net/usb/smsc75xx.c2286
-rw-r--r--drivers/net/usb/smsc75xx.h421
-rw-r--r--drivers/net/usb/smsc95xx.c1633
-rw-r--r--drivers/net/usb/smsc95xx.h43
-rw-r--r--drivers/net/usb/sr9700.c559
-rw-r--r--drivers/net/usb/sr9700.h173
-rw-r--r--drivers/net/usb/sr9800.c874
-rw-r--r--drivers/net/usb/sr9800.h202
-rw-r--r--drivers/net/usb/usbnet.c1369
-rw-r--r--drivers/net/usb/zaurus.c57
-rw-r--r--drivers/net/veth.c416
-rw-r--r--drivers/net/via-rhine.c2032
-rw-r--r--drivers/net/via-velocity.c3493
-rw-r--r--drivers/net/virtio_net.c1988
-rw-r--r--drivers/net/vmxnet3/Makefile35
-rw-r--r--drivers/net/vmxnet3/upt1_defs.h96
-rw-r--r--drivers/net/vmxnet3/vmxnet3_defs.h629
-rw-r--r--drivers/net/vmxnet3/vmxnet3_drv.c3376
-rw-r--r--drivers/net/vmxnet3/vmxnet3_ethtool.c643
-rw-r--r--drivers/net/vmxnet3/vmxnet3_int.h423
-rw-r--r--drivers/net/vxlan.c2984
-rw-r--r--drivers/net/wan/Kconfig95
-rw-r--r--drivers/net/wan/Makefile14
-rw-r--r--drivers/net/wan/c101.c47
-rw-r--r--drivers/net/wan/cosa.c307
-rw-r--r--drivers/net/wan/cycx_drv.c576
-rw-r--r--drivers/net/wan/cycx_main.c348
-rw-r--r--drivers/net/wan/cycx_x25.c1610
-rw-r--r--drivers/net/wan/dlci.c200
-rw-r--r--drivers/net/wan/dscc4.c171
-rw-r--r--drivers/net/wan/farsync.c354
-rw-r--r--drivers/net/wan/hd64570.c22
-rw-r--r--drivers/net/wan/hd64570.h6
-rw-r--r--drivers/net/wan/hd64572.c31
-rw-r--r--drivers/net/wan/hd64572.h2
-rw-r--r--drivers/net/wan/hdlc.c62
-rw-r--r--drivers/net/wan/hdlc_cisco.c73
-rw-r--r--drivers/net/wan/hdlc_fr.c175
-rw-r--r--drivers/net/wan/hdlc_ppp.c36
-rw-r--r--drivers/net/wan/hdlc_raw.c6
-rw-r--r--drivers/net/wan/hdlc_raw_eth.c14
-rw-r--r--drivers/net/wan/hdlc_x25.c54
-rw-r--r--drivers/net/wan/hostess_sv11.c31
-rw-r--r--drivers/net/wan/ixp4xx_hss.c186
-rw-r--r--drivers/net/wan/lapbether.c101
-rw-r--r--drivers/net/wan/lmc/Makefile2
-rw-r--r--drivers/net/wan/lmc/lmc_main.c85
-rw-r--r--drivers/net/wan/lmc/lmc_media.c1
-rw-r--r--drivers/net/wan/lmc/lmc_proto.c18
-rw-r--r--drivers/net/wan/lmc/lmc_var.h6
-rw-r--r--drivers/net/wan/n2.c65
-rw-r--r--drivers/net/wan/pc300-falc-lh.h1238
-rw-r--r--drivers/net/wan/pc300.h436
-rw-r--r--drivers/net/wan/pc300_drv.c3675
-rw-r--r--drivers/net/wan/pc300_tty.c1098
-rw-r--r--drivers/net/wan/pc300too.c54
-rw-r--r--drivers/net/wan/pci200syn.c61
-rw-r--r--drivers/net/wan/sbni.c315
-rw-r--r--drivers/net/wan/sdla.c227
-rw-r--r--drivers/net/wan/sealevel.c42
-rw-r--r--drivers/net/wan/wanxl.c129
-rw-r--r--drivers/net/wan/wanxlfw.S1
-rw-r--r--drivers/net/wan/x25_asy.c166
-rw-r--r--drivers/net/wan/x25_asy.h6
-rw-r--r--drivers/net/wan/z85230.c59
-rw-r--r--drivers/net/wan/z85230.h26
-rw-r--r--drivers/net/wd.c566
-rw-r--r--drivers/net/wimax/i2400m/Kconfig13
-rw-r--r--drivers/net/wimax/i2400m/Makefile9
-rw-r--r--drivers/net/wimax/i2400m/control.c343
-rw-r--r--drivers/net/wimax/i2400m/debug-levels.h1
-rw-r--r--drivers/net/wimax/i2400m/debugfs.c35
-rw-r--r--drivers/net/wimax/i2400m/driver.c723
-rw-r--r--drivers/net/wimax/i2400m/fw.c996
-rw-r--r--drivers/net/wimax/i2400m/i2400m-sdio.h132
-rw-r--r--drivers/net/wimax/i2400m/i2400m-usb.h55
-rw-r--r--drivers/net/wimax/i2400m/i2400m.h494
-rw-r--r--drivers/net/wimax/i2400m/netdev.c270
-rw-r--r--drivers/net/wimax/i2400m/op-rfkill.c11
-rw-r--r--drivers/net/wimax/i2400m/rx.c986
-rw-r--r--drivers/net/wimax/i2400m/sdio-debug-levels.h22
-rw-r--r--drivers/net/wimax/i2400m/sdio-fw.c224
-rw-r--r--drivers/net/wimax/i2400m/sdio-rx.c255
-rw-r--r--drivers/net/wimax/i2400m/sdio-tx.c153
-rw-r--r--drivers/net/wimax/i2400m/sdio.c511
-rw-r--r--drivers/net/wimax/i2400m/sysfs.c80
-rw-r--r--drivers/net/wimax/i2400m/tx.c250
-rw-r--r--drivers/net/wimax/i2400m/usb-fw.c42
-rw-r--r--drivers/net/wimax/i2400m/usb-notif.c38
-rw-r--r--drivers/net/wimax/i2400m/usb-rx.c65
-rw-r--r--drivers/net/wimax/i2400m/usb-tx.c70
-rw-r--r--drivers/net/wimax/i2400m/usb.c314
-rw-r--r--drivers/net/wireless/Kconfig490
-rw-r--r--drivers/net/wireless/Makefile29
-rw-r--r--drivers/net/wireless/adm8211.c211
-rw-r--r--drivers/net/wireless/adm8211.h8
-rw-r--r--drivers/net/wireless/airo.c1662
-rw-r--r--drivers/net/wireless/airo_cs.c343
-rw-r--r--drivers/net/wireless/arlan-main.c1884
-rw-r--r--drivers/net/wireless/arlan-proc.c1253
-rw-r--r--drivers/net/wireless/arlan.h539
-rw-r--r--drivers/net/wireless/at76c50x-usb.c2617
-rw-r--r--drivers/net/wireless/at76c50x-usb.h466
-rw-r--r--drivers/net/wireless/ath/Kconfig54
-rw-r--r--drivers/net/wireless/ath/Makefile20
-rw-r--r--drivers/net/wireless/ath/ar5523/Kconfig8
-rw-r--r--drivers/net/wireless/ath/ar5523/Makefile1
-rw-r--r--drivers/net/wireless/ath/ar5523/ar5523.c1799
-rw-r--r--drivers/net/wireless/ath/ar5523/ar5523.h152
-rw-r--r--drivers/net/wireless/ath/ar5523/ar5523_hw.h431
-rw-r--r--drivers/net/wireless/ath/ath.h307
-rw-r--r--drivers/net/wireless/ath/ath10k/Kconfig46
-rw-r--r--drivers/net/wireless/ath/ath10k/Makefile20
-rw-r--r--drivers/net/wireless/ath/ath10k/bmi.c318
-rw-r--r--drivers/net/wireless/ath/ath10k/bmi.h226
-rw-r--r--drivers/net/wireless/ath/ath10k/ce.c1213
-rw-r--r--drivers/net/wireless/ath/ath10k/ce.h442
-rw-r--r--drivers/net/wireless/ath/ath10k/core.c1098
-rw-r--r--drivers/net/wireless/ath/ath10k/core.h506
-rw-r--r--drivers/net/wireless/ath/ath10k/debug.c934
-rw-r--r--drivers/net/wireless/ath/ath10k/debug.h113
-rw-r--r--drivers/net/wireless/ath/ath10k/hif.h181
-rw-r--r--drivers/net/wireless/ath/ath10k/htc.c866
-rw-r--r--drivers/net/wireless/ath/ath10k/htc.h363
-rw-r--r--drivers/net/wireless/ath/ath10k/htt.c112
-rw-r--r--drivers/net/wireless/ath/ath10k/htt.h1353
-rw-r--r--drivers/net/wireless/ath/ath10k/htt_rx.c1554
-rw-r--r--drivers/net/wireless/ath/ath10k/htt_tx.c541
-rw-r--r--drivers/net/wireless/ath/ath10k/hw.h364
-rw-r--r--drivers/net/wireless/ath/ath10k/mac.c4826
-rw-r--r--drivers/net/wireless/ath/ath10k/mac.h64
-rw-r--r--drivers/net/wireless/ath/ath10k/pci.c2817
-rw-r--r--drivers/net/wireless/ath/ath10k/pci.h319
-rw-r--r--drivers/net/wireless/ath/ath10k/rx_desc.h1010
-rw-r--r--drivers/net/wireless/ath/ath10k/targaddrs.h449
-rw-r--r--drivers/net/wireless/ath/ath10k/trace.c20
-rw-r--r--drivers/net/wireless/ath/ath10k/trace.h215
-rw-r--r--drivers/net/wireless/ath/ath10k/txrx.c221
-rw-r--r--drivers/net/wireless/ath/ath10k/txrx.h37
-rw-r--r--drivers/net/wireless/ath/ath10k/wmi.c3659
-rw-r--r--drivers/net/wireless/ath/ath10k/wmi.h4322
-rw-r--r--drivers/net/wireless/ath/ath5k/Kconfig75
-rw-r--r--drivers/net/wireless/ath/ath5k/Makefile22
-rw-r--r--drivers/net/wireless/ath/ath5k/ahb.c234
-rw-r--r--drivers/net/wireless/ath/ath5k/ani.c754
-rw-r--r--drivers/net/wireless/ath/ath5k/ani.h119
-rw-r--r--drivers/net/wireless/ath/ath5k/ath5k.h1715
-rw-r--r--drivers/net/wireless/ath/ath5k/attach.c360
-rw-r--r--drivers/net/wireless/ath/ath5k/base.c3155
-rw-r--r--drivers/net/wireless/ath/ath5k/base.h121
-rw-r--r--drivers/net/wireless/ath/ath5k/caps.c154
-rw-r--r--drivers/net/wireless/ath/ath5k/debug.c1041
-rw-r--r--drivers/net/wireless/ath/ath5k/debug.h165
-rw-r--r--drivers/net/wireless/ath/ath5k/desc.c786
-rw-r--r--drivers/net/wireless/ath/ath5k/desc.h367
-rw-r--r--drivers/net/wireless/ath/ath5k/dma.c928
-rw-r--r--drivers/net/wireless/ath/ath5k/eeprom.c1796
-rw-r--r--drivers/net/wireless/ath/ath5k/eeprom.h495
-rw-r--r--drivers/net/wireless/ath/ath5k/gpio.c213
-rw-r--r--drivers/net/wireless/ath/ath5k/initvals.c1605
-rw-r--r--drivers/net/wireless/ath/ath5k/led.c202
-rw-r--r--drivers/net/wireless/ath/ath5k/mac80211-ops.c830
-rw-r--r--drivers/net/wireless/ath/ath5k/pci.c343
-rw-r--r--drivers/net/wireless/ath/ath5k/pcu.c1009
-rw-r--r--drivers/net/wireless/ath/ath5k/phy.c3965
-rw-r--r--drivers/net/wireless/ath/ath5k/qcu.c737
-rw-r--r--drivers/net/wireless/ath/ath5k/reg.h2604
-rw-r--r--drivers/net/wireless/ath/ath5k/reset.c1404
-rw-r--r--drivers/net/wireless/ath/ath5k/rfbuffer.h853
-rw-r--r--drivers/net/wireless/ath/ath5k/rfgain.h534
-rw-r--r--drivers/net/wireless/ath/ath5k/rfkill.c116
-rw-r--r--drivers/net/wireless/ath/ath5k/sysfs.c122
-rw-r--r--drivers/net/wireless/ath/ath5k/trace.h106
-rw-r--r--drivers/net/wireless/ath/ath6kl/Kconfig65
-rw-r--r--drivers/net/wireless/ath/ath6kl/Makefile49
-rw-r--r--drivers/net/wireless/ath/ath6kl/bmi.c548
-rw-r--r--drivers/net/wireless/ath/ath6kl/bmi.h270
-rw-r--r--drivers/net/wireless/ath/ath6kl/cfg80211.c3875
-rw-r--r--drivers/net/wireless/ath/ath6kl/cfg80211.h65
-rw-r--r--drivers/net/wireless/ath/ath6kl/common.h85
-rw-r--r--drivers/net/wireless/ath/ath6kl/core.c346
-rw-r--r--drivers/net/wireless/ath/ath6kl/core.h964
-rw-r--r--drivers/net/wireless/ath/ath6kl/debug.c1875
-rw-r--r--drivers/net/wireless/ath/ath6kl/debug.h144
-rw-r--r--drivers/net/wireless/ath/ath6kl/hif-ops.h187
-rw-r--r--drivers/net/wireless/ath/ath6kl/hif.c702
-rw-r--r--drivers/net/wireless/ath/ath6kl/hif.h282
-rw-r--r--drivers/net/wireless/ath/ath6kl/htc-ops.h113
-rw-r--r--drivers/net/wireless/ath/ath6kl/htc.h677
-rw-r--r--drivers/net/wireless/ath/ath6kl/htc_mbox.c2935
-rw-r--r--drivers/net/wireless/ath/ath6kl/htc_pipe.c1711
-rw-r--r--drivers/net/wireless/ath/ath6kl/init.c1866
-rw-r--r--drivers/net/wireless/ath/ath6kl/main.c1307
-rw-r--r--drivers/net/wireless/ath/ath6kl/recovery.c160
-rw-r--r--drivers/net/wireless/ath/ath6kl/sdio.c1460
-rw-r--r--drivers/net/wireless/ath/ath6kl/target.h356
-rw-r--r--drivers/net/wireless/ath/ath6kl/testmode.c102
-rw-r--r--drivers/net/wireless/ath/ath6kl/testmode.h40
-rw-r--r--drivers/net/wireless/ath/ath6kl/trace.c23
-rw-r--r--drivers/net/wireless/ath/ath6kl/trace.h332
-rw-r--r--drivers/net/wireless/ath/ath6kl/txrx.c1877
-rw-r--r--drivers/net/wireless/ath/ath6kl/usb.c1264
-rw-r--r--drivers/net/wireless/ath/ath6kl/wmi.c4130
-rw-r--r--drivers/net/wireless/ath/ath6kl/wmi.h2731
-rw-r--r--drivers/net/wireless/ath/ath9k/Kconfig153
-rw-r--r--drivers/net/wireless/ath/ath9k/Makefile70
-rw-r--r--drivers/net/wireless/ath/ath9k/ahb.c192
-rw-r--r--drivers/net/wireless/ath/ath9k/ani.c520
-rw-r--r--drivers/net/wireless/ath/ath9k/ani.h125
-rw-r--r--drivers/net/wireless/ath/ath9k/antenna.c849
-rw-r--r--drivers/net/wireless/ath/ath9k/ar5008_initvals.h674
-rw-r--r--drivers/net/wireless/ath/ath9k/ar5008_phy.c1279
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9001_initvals.h1089
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9002_calib.c989
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9002_hw.c456
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9002_initvals.h3180
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9002_mac.c405
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9002_phy.c727
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9002_phy.h617
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h1755
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_buffalo_initvals.h126
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_calib.c1683
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_eeprom.c5456
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_eeprom.h359
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_hw.c1048
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_mac.c593
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_mac.h123
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_mci.c1485
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_mci.h335
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_paprd.c1013
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_phy.c2010
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_phy.h1348
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_rtt.c258
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_rtt.h29
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9003_wow.c422
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9330_1p1_initvals.h1020
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9330_1p2_initvals.h507
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9340_initvals.h1298
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9462_2p0_initvals.h1250
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9462_2p1_initvals.h291
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9485_initvals.h1240
-rw-r--r--drivers/net/wireless/ath/ath9k/ar953x_initvals.h718
-rw-r--r--drivers/net/wireless/ath/ath9k/ar955x_1p0_initvals.h760
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9565_1p0_initvals.h1168
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9565_1p1_initvals.h64
-rw-r--r--drivers/net/wireless/ath/ath9k/ar9580_1p0_initvals.h1219
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h850
-rw-r--r--drivers/net/wireless/ath/ath9k/beacon.c651
-rw-r--r--drivers/net/wireless/ath/ath9k/btcoex.c410
-rw-r--r--drivers/net/wireless/ath/ath9k/btcoex.h124
-rw-r--r--drivers/net/wireless/ath/ath9k/calib.c445
-rw-r--r--drivers/net/wireless/ath/ath9k/calib.h123
-rw-r--r--drivers/net/wireless/ath/ath9k/common-beacon.c180
-rw-r--r--drivers/net/wireless/ath/ath9k/common-beacon.h26
-rw-r--r--drivers/net/wireless/ath/ath9k/common-debug.c253
-rw-r--r--drivers/net/wireless/ath/ath9k/common-debug.h72
-rw-r--r--drivers/net/wireless/ath/ath9k/common-init.c244
-rw-r--r--drivers/net/wireless/ath/ath9k/common-init.h20
-rw-r--r--drivers/net/wireless/ath/ath9k/common.c415
-rw-r--r--drivers/net/wireless/ath/ath9k/common.h90
-rw-r--r--drivers/net/wireless/ath/ath9k/debug.c1372
-rw-r--r--drivers/net/wireless/ath/ath9k/debug.h325
-rw-r--r--drivers/net/wireless/ath/ath9k/debug_sta.c268
-rw-r--r--drivers/net/wireless/ath/ath9k/dfs.c193
-rw-r--r--drivers/net/wireless/ath/ath9k/dfs.h45
-rw-r--r--drivers/net/wireless/ath/ath9k/dfs_debug.c151
-rw-r--r--drivers/net/wireless/ath/ath9k/dfs_debug.h70
-rw-r--r--drivers/net/wireless/ath/ath9k/eeprom.c586
-rw-r--r--drivers/net/wireless/ath/ath9k/eeprom.h717
-rw-r--r--drivers/net/wireless/ath/ath9k/eeprom_4k.c1101
-rw-r--r--drivers/net/wireless/ath/ath9k/eeprom_9287.c1020
-rw-r--r--drivers/net/wireless/ath/ath9k/eeprom_def.c1365
-rw-r--r--drivers/net/wireless/ath/ath9k/gpio.c500
-rw-r--r--drivers/net/wireless/ath/ath9k/hif_usb.c1382
-rw-r--r--drivers/net/wireless/ath/ath9k/hif_usb.h116
-rw-r--r--drivers/net/wireless/ath/ath9k/htc.h632
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_beacon.c505
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_debug.c529
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_gpio.c328
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_init.c862
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_main.c1870
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_txrx.c1163
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_hst.c515
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_hst.h230
-rw-r--r--drivers/net/wireless/ath/ath9k/hw-ops.h277
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c3122
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.h1152
-rw-r--r--drivers/net/wireless/ath/ath9k/init.c950
-rw-r--r--drivers/net/wireless/ath/ath9k/link.c534
-rw-r--r--drivers/net/wireless/ath/ath9k/mac.c982
-rw-r--r--drivers/net/wireless/ath/ath9k/mac.h743
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c2280
-rw-r--r--drivers/net/wireless/ath/ath9k/mci.c768
-rw-r--r--drivers/net/wireless/ath/ath9k/mci.h178
-rw-r--r--drivers/net/wireless/ath/ath9k/pci.c976
-rw-r--r--drivers/net/wireless/ath/ath9k/phy.h58
-rw-r--r--drivers/net/wireless/ath/ath9k/recv.c1141
-rw-r--r--drivers/net/wireless/ath/ath9k/reg.h2402
-rw-r--r--drivers/net/wireless/ath/ath9k/spectral.c543
-rw-r--r--drivers/net/wireless/ath/ath9k/spectral.h212
-rw-r--r--drivers/net/wireless/ath/ath9k/tx99.c272
-rw-r--r--drivers/net/wireless/ath/ath9k/wmi.c349
-rw-r--r--drivers/net/wireless/ath/ath9k/wmi.h191
-rw-r--r--drivers/net/wireless/ath/ath9k/wow.c360
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c2792
-rw-r--r--drivers/net/wireless/ath/carl9170/Kconfig56
-rw-r--r--drivers/net/wireless/ath/carl9170/Makefile4
-rw-r--r--drivers/net/wireless/ath/carl9170/carl9170.h669
-rw-r--r--drivers/net/wireless/ath/carl9170/cmd.c222
-rw-r--r--drivers/net/wireless/ath/carl9170/cmd.h174
-rw-r--r--drivers/net/wireless/ath/carl9170/debug.c896
-rw-r--r--drivers/net/wireless/ath/carl9170/debug.h134
-rw-r--r--drivers/net/wireless/ath/carl9170/eeprom.h216
-rw-r--r--drivers/net/wireless/ath/carl9170/fw.c447
-rw-r--r--drivers/net/wireless/ath/carl9170/fwcmd.h326
-rw-r--r--drivers/net/wireless/ath/carl9170/fwdesc.h277
-rw-r--r--drivers/net/wireless/ath/carl9170/hw.h817
-rw-r--r--drivers/net/wireless/ath/carl9170/led.c190
-rw-r--r--drivers/net/wireless/ath/carl9170/mac.c538
-rw-r--r--drivers/net/wireless/ath/carl9170/main.c2122
-rw-r--r--drivers/net/wireless/ath/carl9170/phy.c1730
-rw-r--r--drivers/net/wireless/ath/carl9170/phy.h564
-rw-r--r--drivers/net/wireless/ath/carl9170/rx.c1012
-rw-r--r--drivers/net/wireless/ath/carl9170/tx.c1711
-rw-r--r--drivers/net/wireless/ath/carl9170/usb.c1178
-rw-r--r--drivers/net/wireless/ath/carl9170/version.h7
-rw-r--r--drivers/net/wireless/ath/carl9170/wlan.h435
-rw-r--r--drivers/net/wireless/ath/debug.c47
-rw-r--r--drivers/net/wireless/ath/dfs_pattern_detector.c363
-rw-r--r--drivers/net/wireless/ath/dfs_pattern_detector.h112
-rw-r--r--drivers/net/wireless/ath/dfs_pri_detector.c429
-rw-r--r--drivers/net/wireless/ath/dfs_pri_detector.h77
-rw-r--r--drivers/net/wireless/ath/hw.c190
-rw-r--r--drivers/net/wireless/ath/key.c609
-rw-r--r--drivers/net/wireless/ath/main.c89
-rw-r--r--drivers/net/wireless/ath/reg.h65
-rw-r--r--drivers/net/wireless/ath/regd.c791
-rw-r--r--drivers/net/wireless/ath/regd.h263
-rw-r--r--drivers/net/wireless/ath/regd_common.h478
-rw-r--r--drivers/net/wireless/ath/wcn36xx/Kconfig16
-rw-r--r--drivers/net/wireless/ath/wcn36xx/Makefile7
-rw-r--r--drivers/net/wireless/ath/wcn36xx/debug.c181
-rw-r--r--drivers/net/wireless/ath/wcn36xx/debug.h49
-rw-r--r--drivers/net/wireless/ath/wcn36xx/dxe.c813
-rw-r--r--drivers/net/wireless/ath/wcn36xx/dxe.h284
-rw-r--r--drivers/net/wireless/ath/wcn36xx/hal.h4659
-rw-r--r--drivers/net/wireless/ath/wcn36xx/main.c1099
-rw-r--r--drivers/net/wireless/ath/wcn36xx/pmc.c62
-rw-r--r--drivers/net/wireless/ath/wcn36xx/pmc.h33
-rw-r--r--drivers/net/wireless/ath/wcn36xx/smd.c2166
-rw-r--r--drivers/net/wireless/ath/wcn36xx/smd.h130
-rw-r--r--drivers/net/wireless/ath/wcn36xx/txrx.c283
-rw-r--r--drivers/net/wireless/ath/wcn36xx/txrx.h160
-rw-r--r--drivers/net/wireless/ath/wcn36xx/wcn36xx.h246
-rw-r--r--drivers/net/wireless/ath/wil6210/Kconfig41
-rw-r--r--drivers/net/wireless/ath/wil6210/Makefile18
-rw-r--r--drivers/net/wireless/ath/wil6210/cfg80211.c779
-rw-r--r--drivers/net/wireless/ath/wil6210/debug.c69
-rw-r--r--drivers/net/wireless/ath/wil6210/debugfs.c760
-rw-r--r--drivers/net/wireless/ath/wil6210/interrupt.c550
-rw-r--r--drivers/net/wireless/ath/wil6210/main.c591
-rw-r--r--drivers/net/wireless/ath/wil6210/netdev.c200
-rw-r--r--drivers/net/wireless/ath/wil6210/pcie_bus.c220
-rw-r--r--drivers/net/wireless/ath/wil6210/rx_reorder.c201
-rw-r--r--drivers/net/wireless/ath/wil6210/trace.c20
-rw-r--r--drivers/net/wireless/ath/wil6210/trace.h239
-rw-r--r--drivers/net/wireless/ath/wil6210/txrx.c1139
-rw-r--r--drivers/net/wireless/ath/wil6210/txrx.h446
-rw-r--r--drivers/net/wireless/ath/wil6210/wil6210.h537
-rw-r--r--drivers/net/wireless/ath/wil6210/wmi.c1198
-rw-r--r--drivers/net/wireless/ath/wil6210/wmi.h1293
-rw-r--r--drivers/net/wireless/ath5k/Kconfig40
-rw-r--r--drivers/net/wireless/ath5k/Makefile14
-rw-r--r--drivers/net/wireless/ath5k/ath5k.h1358
-rw-r--r--drivers/net/wireless/ath5k/attach.c359
-rw-r--r--drivers/net/wireless/ath5k/base.c3142
-rw-r--r--drivers/net/wireless/ath5k/base.h190
-rw-r--r--drivers/net/wireless/ath5k/caps.c193
-rw-r--r--drivers/net/wireless/ath5k/debug.c579
-rw-r--r--drivers/net/wireless/ath5k/debug.h204
-rw-r--r--drivers/net/wireless/ath5k/desc.c692
-rw-r--r--drivers/net/wireless/ath5k/desc.h332
-rw-r--r--drivers/net/wireless/ath5k/dma.c705
-rw-r--r--drivers/net/wireless/ath5k/eeprom.c1366
-rw-r--r--drivers/net/wireless/ath5k/eeprom.h394
-rw-r--r--drivers/net/wireless/ath5k/gpio.c176
-rw-r--r--drivers/net/wireless/ath5k/initvals.c1810
-rw-r--r--drivers/net/wireless/ath5k/pcu.c1155
-rw-r--r--drivers/net/wireless/ath5k/phy.c2506
-rw-r--r--drivers/net/wireless/ath5k/qcu.c521
-rw-r--r--drivers/net/wireless/ath5k/reg.h2592
-rw-r--r--drivers/net/wireless/ath5k/reset.c920
-rw-r--r--drivers/net/wireless/ath9k/Kconfig23
-rw-r--r--drivers/net/wireless/ath9k/Makefile16
-rw-r--r--drivers/net/wireless/ath9k/ani.c852
-rw-r--r--drivers/net/wireless/ath9k/ath9k.h1057
-rw-r--r--drivers/net/wireless/ath9k/beacon.c854
-rw-r--r--drivers/net/wireless/ath9k/calib.c1021
-rw-r--r--drivers/net/wireless/ath9k/core.h754
-rw-r--r--drivers/net/wireless/ath9k/debug.c262
-rw-r--r--drivers/net/wireless/ath9k/eeprom.c2824
-rw-r--r--drivers/net/wireless/ath9k/hw.c3895
-rw-r--r--drivers/net/wireless/ath9k/hw.h1080
-rw-r--r--drivers/net/wireless/ath9k/initvals.h4802
-rw-r--r--drivers/net/wireless/ath9k/mac.c946
-rw-r--r--drivers/net/wireless/ath9k/main.c2800
-rw-r--r--drivers/net/wireless/ath9k/phy.c432
-rw-r--r--drivers/net/wireless/ath9k/phy.h548
-rw-r--r--drivers/net/wireless/ath9k/rc.c1670
-rw-r--r--drivers/net/wireless/ath9k/rc.h202
-rw-r--r--drivers/net/wireless/ath9k/recv.c634
-rw-r--r--drivers/net/wireless/ath9k/reg.h1486
-rw-r--r--drivers/net/wireless/ath9k/regd.c1013
-rw-r--r--drivers/net/wireless/ath9k/regd.h412
-rw-r--r--drivers/net/wireless/ath9k/regd_common.h1915
-rw-r--r--drivers/net/wireless/ath9k/xmit.c2553
-rw-r--r--drivers/net/wireless/atmel.c684
-rw-r--r--drivers/net/wireless/atmel.h4
-rw-r--r--drivers/net/wireless/atmel_cs.c280
-rw-r--r--drivers/net/wireless/atmel_pci.c26
-rw-r--r--drivers/net/wireless/b43/Kconfig137
-rw-r--r--drivers/net/wireless/b43/Makefile18
-rw-r--r--drivers/net/wireless/b43/b43.h485
-rw-r--r--drivers/net/wireless/b43/bus.c255
-rw-r--r--drivers/net/wireless/b43/bus.h80
-rw-r--r--drivers/net/wireless/b43/debugfs.c131
-rw-r--r--drivers/net/wireless/b43/debugfs.h11
-rw-r--r--drivers/net/wireless/b43/dma.c672
-rw-r--r--drivers/net/wireless/b43/dma.h59
-rw-r--r--drivers/net/wireless/b43/leds.c281
-rw-r--r--drivers/net/wireless/b43/leds.h34
-rw-r--r--drivers/net/wireless/b43/lo.c96
-rw-r--r--drivers/net/wireless/b43/main.c3464
-rw-r--r--drivers/net/wireless/b43/main.h67
-rw-r--r--drivers/net/wireless/b43/pcmcia.c77
-rw-r--r--drivers/net/wireless/b43/phy_a.c188
-rw-r--r--drivers/net/wireless/b43/phy_common.c306
-rw-r--r--drivers/net/wireless/b43/phy_common.h76
-rw-r--r--drivers/net/wireless/b43/phy_g.c821
-rw-r--r--drivers/net/wireless/b43/phy_g.h5
-rw-r--r--drivers/net/wireless/b43/phy_ht.c1140
-rw-r--r--drivers/net/wireless/b43/phy_ht.h136
-rw-r--r--drivers/net/wireless/b43/phy_lcn.c902
-rw-r--r--drivers/net/wireless/b43/phy_lcn.h31
-rw-r--r--drivers/net/wireless/b43/phy_lp.c2605
-rw-r--r--drivers/net/wireless/b43/phy_lp.h374
-rw-r--r--drivers/net/wireless/b43/phy_n.c5799
-rw-r--r--drivers/net/wireless/b43/phy_n.h476
-rw-r--r--drivers/net/wireless/b43/pio.c281
-rw-r--r--drivers/net/wireless/b43/pio.h51
-rw-r--r--drivers/net/wireless/b43/radio_2055.c1335
-rw-r--r--drivers/net/wireless/b43/radio_2055.h259
-rw-r--r--drivers/net/wireless/b43/radio_2056.c10318
-rw-r--r--drivers/net/wireless/b43/radio_2056.h1100
-rw-r--r--drivers/net/wireless/b43/radio_2057.c141
-rw-r--r--drivers/net/wireless/b43/radio_2057.h430
-rw-r--r--drivers/net/wireless/b43/radio_2059.c155
-rw-r--r--drivers/net/wireless/b43/radio_2059.h46
-rw-r--r--drivers/net/wireless/b43/rfkill.c184
-rw-r--r--drivers/net/wireless/b43/rfkill.h47
-rw-r--r--drivers/net/wireless/b43/sdio.c207
-rw-r--r--drivers/net/wireless/b43/sdio.h45
-rw-r--r--drivers/net/wireless/b43/sysfs.c7
-rw-r--r--drivers/net/wireless/b43/tables.c2
-rw-r--r--drivers/net/wireless/b43/tables_lpphy.c2456
-rw-r--r--drivers/net/wireless/b43/tables_lpphy.h44
-rw-r--r--drivers/net/wireless/b43/tables_nphy.c3672
-rw-r--r--drivers/net/wireless/b43/tables_nphy.h217
-rw-r--r--drivers/net/wireless/b43/tables_phy_ht.c836
-rw-r--r--drivers/net/wireless/b43/tables_phy_ht.h26
-rw-r--r--drivers/net/wireless/b43/tables_phy_lcn.c724
-rw-r--r--drivers/net/wireless/b43/tables_phy_lcn.h24
-rw-r--r--drivers/net/wireless/b43/wa.c145
-rw-r--r--drivers/net/wireless/b43/xmit.c335
-rw-r--r--drivers/net/wireless/b43/xmit.h132
-rw-r--r--drivers/net/wireless/b43legacy/Kconfig12
-rw-r--r--drivers/net/wireless/b43legacy/Makefile2
-rw-r--r--drivers/net/wireless/b43legacy/b43legacy.h79
-rw-r--r--drivers/net/wireless/b43legacy/debugfs.c11
-rw-r--r--drivers/net/wireless/b43legacy/dma.c581
-rw-r--r--drivers/net/wireless/b43legacy/dma.h126
-rw-r--r--drivers/net/wireless/b43legacy/ilt.c2
-rw-r--r--drivers/net/wireless/b43legacy/leds.c24
-rw-r--r--drivers/net/wireless/b43legacy/leds.h2
-rw-r--r--drivers/net/wireless/b43legacy/main.c808
-rw-r--r--drivers/net/wireless/b43legacy/main.h2
-rw-r--r--drivers/net/wireless/b43legacy/phy.c12
-rw-r--r--drivers/net/wireless/b43legacy/phy.h2
-rw-r--r--drivers/net/wireless/b43legacy/pio.c20
-rw-r--r--drivers/net/wireless/b43legacy/pio.h11
-rw-r--r--drivers/net/wireless/b43legacy/radio.c32
-rw-r--r--drivers/net/wireless/b43legacy/radio.h2
-rw-r--r--drivers/net/wireless/b43legacy/rfkill.c184
-rw-r--r--drivers/net/wireless/b43legacy/rfkill.h54
-rw-r--r--drivers/net/wireless/b43legacy/sysfs.c4
-rw-r--r--drivers/net/wireless/b43legacy/xmit.c39
-rw-r--r--drivers/net/wireless/b43legacy/xmit.h14
-rw-r--r--drivers/net/wireless/brcm80211/Kconfig66
-rw-r--r--drivers/net/wireless/brcm80211/Makefile23
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/Makefile46
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/bcdc.c375
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/bcdc.h24
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/bcmsdh.c1218
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/btcoex.c497
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/btcoex.h29
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/chip.c1035
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/chip.h91
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd.h195
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h200
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c393
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.c245
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_dbg.h196
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c1123
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c4224
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/firmware.c332
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/firmware.h36
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/fweh.c456
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/fweh.h277
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/fwil.c348
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/fwil.h100
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h431
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c2172
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/fwsignal.h34
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/p2p.c2424
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/p2p.h183
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/proto.c62
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/proto.h57
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h334
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/tracepoint.c22
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/tracepoint.h152
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/usb.c1448
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/usb.h53
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/usb_rdl.h75
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c5681
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.h493
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/Makefile48
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/aiutils.c710
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/aiutils.h229
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/ampdu.c1144
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/ampdu.h53
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/antsel.c309
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/antsel.h27
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/brcms_trace_events.c23
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/brcms_trace_events.h255
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/channel.c774
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/channel.h47
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/d11.h1902
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/debug.c156
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/debug.h76
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/dma.c1564
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/dma.h125
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/led.c126
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/led.h36
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c1703
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.h113
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/main.c8177
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/main.h669
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phy_cmn.c2957
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phy_hal.h284
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phy_int.h1142
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phy_lcn.c5247
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phy_lcn.h121
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phy_n.c28729
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phy_qmath.c308
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phy_qmath.h42
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phy_radio.h1533
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phyreg_n.h167
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_lcn.c3293
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_lcn.h55
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_n.c10630
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy/phytbl_n.h50
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy_shim.c216
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/phy_shim.h172
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/pmu.c165
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/pmu.h26
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/pub.h341
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/rate.c514
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/rate.h245
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/scb.h81
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/stf.c440
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/stf.h37
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/types.h303
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/ucode_loader.c109
-rw-r--r--drivers/net/wireless/brcm80211/brcmsmac/ucode_loader.h56
-rw-r--r--drivers/net/wireless/brcm80211/brcmutil/Makefile23
-rw-r--r--drivers/net/wireless/brcm80211/brcmutil/d11.c221
-rw-r--r--drivers/net/wireless/brcm80211/brcmutil/utils.c295
-rw-r--r--drivers/net/wireless/brcm80211/include/brcm_hw_ids.h48
-rw-r--r--drivers/net/wireless/brcm80211/include/brcmu_d11.h145
-rw-r--r--drivers/net/wireless/brcm80211/include/brcmu_utils.h221
-rw-r--r--drivers/net/wireless/brcm80211/include/brcmu_wifi.h274
-rw-r--r--drivers/net/wireless/brcm80211/include/chipcommon.h296
-rw-r--r--drivers/net/wireless/brcm80211/include/defs.h108
-rw-r--r--drivers/net/wireless/brcm80211/include/soc.h36
-rw-r--r--drivers/net/wireless/cw1200/Kconfig30
-rw-r--r--drivers/net/wireless/cw1200/Makefile21
-rw-r--r--drivers/net/wireless/cw1200/bh.c619
-rw-r--r--drivers/net/wireless/cw1200/bh.h28
-rw-r--r--drivers/net/wireless/cw1200/cw1200.h323
-rw-r--r--drivers/net/wireless/cw1200/cw1200_sdio.c425
-rw-r--r--drivers/net/wireless/cw1200/cw1200_spi.c483
-rw-r--r--drivers/net/wireless/cw1200/debug.c430
-rw-r--r--drivers/net/wireless/cw1200/debug.h93
-rw-r--r--drivers/net/wireless/cw1200/fwio.c519
-rw-r--r--drivers/net/wireless/cw1200/fwio.h39
-rw-r--r--drivers/net/wireless/cw1200/hwbus.h33
-rw-r--r--drivers/net/wireless/cw1200/hwio.c312
-rw-r--r--drivers/net/wireless/cw1200/hwio.h247
-rw-r--r--drivers/net/wireless/cw1200/main.c603
-rw-r--r--drivers/net/wireless/cw1200/pm.c368
-rw-r--r--drivers/net/wireless/cw1200/pm.h43
-rw-r--r--drivers/net/wireless/cw1200/queue.c583
-rw-r--r--drivers/net/wireless/cw1200/queue.h116
-rw-r--r--drivers/net/wireless/cw1200/scan.c462
-rw-r--r--drivers/net/wireless/cw1200/scan.h56
-rw-r--r--drivers/net/wireless/cw1200/sta.c2402
-rw-r--r--drivers/net/wireless/cw1200/sta.h124
-rw-r--r--drivers/net/wireless/cw1200/txrx.c1472
-rw-r--r--drivers/net/wireless/cw1200/txrx.h106
-rw-r--r--drivers/net/wireless/cw1200/wsm.c1822
-rw-r--r--drivers/net/wireless/cw1200/wsm.h1870
-rw-r--r--drivers/net/wireless/hostap/Kconfig11
-rw-r--r--drivers/net/wireless/hostap/hostap.h2
-rw-r--r--drivers/net/wireless/hostap/hostap_80211.h30
-rw-r--r--drivers/net/wireless/hostap/hostap_80211_rx.c126
-rw-r--r--drivers/net/wireless/hostap/hostap_80211_tx.c111
-rw-r--r--drivers/net/wireless/hostap/hostap_ap.c564
-rw-r--r--drivers/net/wireless/hostap/hostap_ap.h8
-rw-r--r--drivers/net/wireless/hostap/hostap_common.h10
-rw-r--r--drivers/net/wireless/hostap/hostap_config.h4
-rw-r--r--drivers/net/wireless/hostap/hostap_cs.c331
-rw-r--r--drivers/net/wireless/hostap/hostap_download.c70
-rw-r--r--drivers/net/wireless/hostap/hostap_hw.c126
-rw-r--r--drivers/net/wireless/hostap/hostap_info.c10
-rw-r--r--drivers/net/wireless/hostap/hostap_ioctl.c48
-rw-r--r--drivers/net/wireless/hostap/hostap_main.c152
-rw-r--r--drivers/net/wireless/hostap/hostap_pci.c21
-rw-r--r--drivers/net/wireless/hostap/hostap_plx.c22
-rw-r--r--drivers/net/wireless/hostap/hostap_proc.c615
-rw-r--r--drivers/net/wireless/hostap/hostap_wlan.h41
-rw-r--r--drivers/net/wireless/i82586.h413
-rw-r--r--drivers/net/wireless/i82593.h229
-rw-r--r--drivers/net/wireless/ipw2x00/Kconfig14
-rw-r--r--drivers/net/wireless/ipw2x00/ipw.h23
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2100.c956
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2100.h54
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2200.c2149
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2200.h163
-rw-r--r--drivers/net/wireless/ipw2x00/libipw.h1013
-rw-r--r--drivers/net/wireless/ipw2x00/libipw_geo.c84
-rw-r--r--drivers/net/wireless/ipw2x00/libipw_module.c234
-rw-r--r--drivers/net/wireless/ipw2x00/libipw_rx.c542
-rw-r--r--drivers/net/wireless/ipw2x00/libipw_tx.c106
-rw-r--r--drivers/net/wireless/ipw2x00/libipw_wx.c150
-rw-r--r--drivers/net/wireless/iwlegacy/3945-debug.c511
-rw-r--r--drivers/net/wireless/iwlegacy/3945-mac.c3959
-rw-r--r--drivers/net/wireless/iwlegacy/3945-rs.c979
-rw-r--r--drivers/net/wireless/iwlegacy/3945.c2741
-rw-r--r--drivers/net/wireless/iwlegacy/3945.h593
-rw-r--r--drivers/net/wireless/iwlegacy/4965-calib.c934
-rw-r--r--drivers/net/wireless/iwlegacy/4965-debug.c752
-rw-r--r--drivers/net/wireless/iwlegacy/4965-mac.c6870
-rw-r--r--drivers/net/wireless/iwlegacy/4965-rs.c2835
-rw-r--r--drivers/net/wireless/iwlegacy/4965.c1950
-rw-r--r--drivers/net/wireless/iwlegacy/4965.h1284
-rw-r--r--drivers/net/wireless/iwlegacy/Kconfig100
-rw-r--r--drivers/net/wireless/iwlegacy/Makefile17
-rw-r--r--drivers/net/wireless/iwlegacy/commands.h3370
-rw-r--r--drivers/net/wireless/iwlegacy/common.c5584
-rw-r--r--drivers/net/wireless/iwlegacy/common.h3084
-rw-r--r--drivers/net/wireless/iwlegacy/csr.h419
-rw-r--r--drivers/net/wireless/iwlegacy/debug.c1430
-rw-r--r--drivers/net/wireless/iwlegacy/iwl-spectrum.h (renamed from drivers/net/wireless/iwlwifi/iwl-spectrum.h)16
-rw-r--r--drivers/net/wireless/iwlegacy/prph.h522
-rw-r--r--drivers/net/wireless/iwlwifi/Kconfig230
-rw-r--r--drivers/net/wireless/iwlwifi/Makefile32
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/Makefile13
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/agn.h492
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/calib.c1113
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/calib.h74
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/commands.h4003
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/debugfs.c2445
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/dev.h949
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/devices.c690
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/led.c223
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/led.h55
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/lib.c1301
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/mac80211.c1636
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/main.c2108
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/power.c386
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/power.h47
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/rs.c3346
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/rs.h426
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/rx.c1132
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/rxon.c1559
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/scan.c1084
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/sta.c1475
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/tt.c690
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/tt.h128
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/tx.c1418
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/ucode.c456
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-1000.c138
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-2000.c211
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-commands.h1702
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-core.h104
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-debug.h167
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-hw.h488
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-io.h404
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-led.c412
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-led.h74
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-rs.c939
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-rs.h206
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c2547
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.h956
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965-hw.h840
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c2368
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000-hw.h99
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c1687
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c383
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-7000.c248
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-8000.c135
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-hcmd-check.c108
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-hw.h117
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c2595
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.h326
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c4141
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-calib.c880
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-calib.h84
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h3034
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-config.h343
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c1465
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h447
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-csr.h373
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-debug.c136
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-debug.h298
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-debugfs.c506
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h1051
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-devtrace.c50
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-devtrace.h515
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-drv.c1396
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-drv.h154
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom-parse.c940
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom-parse.h140
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom-read.c464
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom-read.h70
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.c614
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.h398
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-fh.h136
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-fw-error-dump.h134
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-fw-file.h178
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-fw.h317
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-hcmd.c293
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-helpers.h96
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-io.c267
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-io.h392
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-led.c443
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-led.h82
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-modparams.h125
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-notif-wait.c191
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-notif-wait.h138
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-nvm-parse.c570
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-nvm-parse.h81
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-op-mode.h271
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-phy-db.c471
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-phy-db.h82
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-power.c463
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-power.h91
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-prph.h583
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rfkill.c144
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rfkill.h48
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rx.c1146
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-scan.c885
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-spectrum.c198
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-sta.c1171
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-sta.h67
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.h916
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-tx.c1611
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c8355
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/Makefile11
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/binding.c211
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/coex.c1322
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/constants.h86
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/d3.c1771
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/debugfs-vif.c596
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/debugfs.c1204
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/debugfs.h101
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api-coex.h358
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api-d3.h422
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api-mac.h386
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api-power.h365
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api-rs.h353
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h604
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api-sta.h415
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api-tx.h591
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw-api.h1503
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/fw.c567
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/led.c136
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c1282
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mac80211.c2498
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mvm.h1042
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/nvm.c529
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/offloading.c215
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/ops.c1270
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/phy-ctxt.c263
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/power.c936
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/quota.c293
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/rs.c3276
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/rs.h403
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/rx.c488
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/scan.c950
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/sf.c289
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/sta.c1450
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/sta.h408
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/testmode.h95
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/time-event.c540
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/time-event.h217
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/tt.c560
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/tx.c968
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/utils.c744
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/drv.c602
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/internal.h500
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/rx.c1232
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/trans.c1926
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/tx.c1809
-rw-r--r--drivers/net/wireless/libertas/11d.c698
-rw-r--r--drivers/net/wireless/libertas/11d.h104
-rw-r--r--drivers/net/wireless/libertas/Kconfig45
-rw-r--r--drivers/net/wireless/libertas/Makefile14
-rw-r--r--drivers/net/wireless/libertas/README36
-rw-r--r--drivers/net/wireless/libertas/assoc.c1834
-rw-r--r--drivers/net/wireless/libertas/assoc.h29
-rw-r--r--drivers/net/wireless/libertas/cfg.c2218
-rw-r--r--drivers/net/wireless/libertas/cfg.h20
-rw-r--r--drivers/net/wireless/libertas/cmd.c1572
-rw-r--r--drivers/net/wireless/libertas/cmd.h125
-rw-r--r--drivers/net/wireless/libertas/cmdresp.c387
-rw-r--r--drivers/net/wireless/libertas/debugfs.c319
-rw-r--r--drivers/net/wireless/libertas/decl.h105
-rw-r--r--drivers/net/wireless/libertas/defs.h149
-rw-r--r--drivers/net/wireless/libertas/dev.h457
-rw-r--r--drivers/net/wireless/libertas/ethtool.c142
-rw-r--r--drivers/net/wireless/libertas/firmware.c227
-rw-r--r--drivers/net/wireless/libertas/host.h985
-rw-r--r--drivers/net/wireless/libertas/hostcmd.h767
-rw-r--r--drivers/net/wireless/libertas/if_cs.c426
-rw-r--r--drivers/net/wireless/libertas/if_sdio.c876
-rw-r--r--drivers/net/wireless/libertas/if_sdio.h7
-rw-r--r--drivers/net/wireless/libertas/if_spi.c1319
-rw-r--r--drivers/net/wireless/libertas/if_spi.h206
-rw-r--r--drivers/net/wireless/libertas/if_usb.c422
-rw-r--r--drivers/net/wireless/libertas/if_usb.h15
-rw-r--r--drivers/net/wireless/libertas/main.c1477
-rw-r--r--drivers/net/wireless/libertas/mesh.c1188
-rw-r--r--drivers/net/wireless/libertas/mesh.h77
-rw-r--r--drivers/net/wireless/libertas/persistcfg.c453
-rw-r--r--drivers/net/wireless/libertas/radiotap.h14
-rw-r--r--drivers/net/wireless/libertas/rx.c261
-rw-r--r--drivers/net/wireless/libertas/scan.c1209
-rw-r--r--drivers/net/wireless/libertas/scan.h33
-rw-r--r--drivers/net/wireless/libertas/tx.c75
-rw-r--r--drivers/net/wireless/libertas/types.h242
-rw-r--r--drivers/net/wireless/libertas/wext.c2266
-rw-r--r--drivers/net/wireless/libertas/wext.h10
-rw-r--r--drivers/net/wireless/libertas_tf/cmd.c209
-rw-r--r--drivers/net/wireless/libertas_tf/deb_defs.h104
-rw-r--r--drivers/net/wireless/libertas_tf/if_usb.c294
-rw-r--r--drivers/net/wireless/libertas_tf/libertas_tf.h11
-rw-r--r--drivers/net/wireless/libertas_tf/main.c225
-rw-r--r--drivers/net/wireless/mac80211_hwsim.c2594
-rw-r--r--drivers/net/wireless/mac80211_hwsim.h157
-rw-r--r--drivers/net/wireless/mwifiex/11ac.c382
-rw-r--r--drivers/net/wireless/mwifiex/11ac.h45
-rw-r--r--drivers/net/wireless/mwifiex/11h.c101
-rw-r--r--drivers/net/wireless/mwifiex/11n.c793
-rw-r--r--drivers/net/wireless/mwifiex/11n.h211
-rw-r--r--drivers/net/wireless/mwifiex/11n_aggr.c310
-rw-r--r--drivers/net/wireless/mwifiex/11n_aggr.h33
-rw-r--r--drivers/net/wireless/mwifiex/11n_rxreorder.c762
-rw-r--r--drivers/net/wireless/mwifiex/11n_rxreorder.h83
-rw-r--r--drivers/net/wireless/mwifiex/Kconfig42
-rw-r--r--drivers/net/wireless/mwifiex/Makefile55
-rw-r--r--drivers/net/wireless/mwifiex/README210
-rw-r--r--drivers/net/wireless/mwifiex/cfg80211.c2988
-rw-r--r--drivers/net/wireless/mwifiex/cfg80211.h29
-rw-r--r--drivers/net/wireless/mwifiex/cfp.c511
-rw-r--r--drivers/net/wireless/mwifiex/cmdevt.c1607
-rw-r--r--drivers/net/wireless/mwifiex/debugfs.c782
-rw-r--r--drivers/net/wireless/mwifiex/decl.h188
-rw-r--r--drivers/net/wireless/mwifiex/ethtool.c70
-rw-r--r--drivers/net/wireless/mwifiex/fw.h1878
-rw-r--r--drivers/net/wireless/mwifiex/ie.c446
-rw-r--r--drivers/net/wireless/mwifiex/init.c720
-rw-r--r--drivers/net/wireless/mwifiex/ioctl.h454
-rw-r--r--drivers/net/wireless/mwifiex/join.c1479
-rw-r--r--drivers/net/wireless/mwifiex/main.c1048
-rw-r--r--drivers/net/wireless/mwifiex/main.h1253
-rw-r--r--drivers/net/wireless/mwifiex/pcie.c2453
-rw-r--r--drivers/net/wireless/mwifiex/pcie.h325
-rw-r--r--drivers/net/wireless/mwifiex/scan.c2345
-rw-r--r--drivers/net/wireless/mwifiex/sdio.c2018
-rw-r--r--drivers/net/wireless/mwifiex/sdio.h453
-rw-r--r--drivers/net/wireless/mwifiex/sta_cmd.c2070
-rw-r--r--drivers/net/wireless/mwifiex/sta_cmdresp.c1129
-rw-r--r--drivers/net/wireless/mwifiex/sta_event.c513
-rw-r--r--drivers/net/wireless/mwifiex/sta_ioctl.c1433
-rw-r--r--drivers/net/wireless/mwifiex/sta_rx.c254
-rw-r--r--drivers/net/wireless/mwifiex/sta_tx.c225
-rw-r--r--drivers/net/wireless/mwifiex/tdls.c1103
-rw-r--r--drivers/net/wireless/mwifiex/txrx.c209
-rw-r--r--drivers/net/wireless/mwifiex/uap_cmd.c771
-rw-r--r--drivers/net/wireless/mwifiex/uap_event.c198
-rw-r--r--drivers/net/wireless/mwifiex/uap_txrx.c404
-rw-r--r--drivers/net/wireless/mwifiex/usb.c1052
-rw-r--r--drivers/net/wireless/mwifiex/usb.h103
-rw-r--r--drivers/net/wireless/mwifiex/util.c368
-rw-r--r--drivers/net/wireless/mwifiex/util.h76
-rw-r--r--drivers/net/wireless/mwifiex/wmm.c1307
-rw-r--r--drivers/net/wireless/mwifiex/wmm.h130
-rw-r--r--drivers/net/wireless/mwl8k.c6348
-rw-r--r--drivers/net/wireless/netwave_cs.c1424
-rw-r--r--drivers/net/wireless/orinoco/Kconfig141
-rw-r--r--drivers/net/wireless/orinoco/Makefile7
-rw-r--r--drivers/net/wireless/orinoco/airport.c149
-rw-r--r--drivers/net/wireless/orinoco/cfg.c291
-rw-r--r--drivers/net/wireless/orinoco/cfg.h15
-rw-r--r--drivers/net/wireless/orinoco/fw.c387
-rw-r--r--drivers/net/wireless/orinoco/fw.h21
-rw-r--r--drivers/net/wireless/orinoco/hermes.c395
-rw-r--r--drivers/net/wireless/orinoco/hermes.h142
-rw-r--r--drivers/net/wireless/orinoco/hermes_dld.c417
-rw-r--r--drivers/net/wireless/orinoco/hermes_dld.h22
-rw-r--r--drivers/net/wireless/orinoco/hw.c1356
-rw-r--r--drivers/net/wireless/orinoco/hw.h59
-rw-r--r--drivers/net/wireless/orinoco/main.c2431
-rw-r--r--drivers/net/wireless/orinoco/main.h50
-rw-r--r--drivers/net/wireless/orinoco/mic.c79
-rw-r--r--drivers/net/wireless/orinoco/mic.h22
-rw-r--r--drivers/net/wireless/orinoco/orinoco.c6152
-rw-r--r--drivers/net/wireless/orinoco/orinoco.h143
-rw-r--r--drivers/net/wireless/orinoco/orinoco_cs.c420
-rw-r--r--drivers/net/wireless/orinoco/orinoco_nortel.c56
-rw-r--r--drivers/net/wireless/orinoco/orinoco_pci.c55
-rw-r--r--drivers/net/wireless/orinoco/orinoco_pci.h63
-rw-r--r--drivers/net/wireless/orinoco/orinoco_plx.c55
-rw-r--r--drivers/net/wireless/orinoco/orinoco_tmd.c52
-rw-r--r--drivers/net/wireless/orinoco/orinoco_usb.c1754
-rw-r--r--drivers/net/wireless/orinoco/scan.c249
-rw-r--r--drivers/net/wireless/orinoco/scan.h21
-rw-r--r--drivers/net/wireless/orinoco/spectrum_cs.c370
-rw-r--r--drivers/net/wireless/orinoco/wext.c1413
-rw-r--r--drivers/net/wireless/orinoco/wext.h13
-rw-r--r--drivers/net/wireless/p54/Kconfig70
-rw-r--r--drivers/net/wireless/p54/Makefile4
-rw-r--r--drivers/net/wireless/p54/eeprom.c982
-rw-r--r--drivers/net/wireless/p54/eeprom.h245
-rw-r--r--drivers/net/wireless/p54/fwio.c762
-rw-r--r--drivers/net/wireless/p54/led.c161
-rw-r--r--drivers/net/wireless/p54/lmac.h562
-rw-r--r--drivers/net/wireless/p54/main.c866
-rw-r--r--drivers/net/wireless/p54/net2280.h19
-rw-r--r--drivers/net/wireless/p54/p54.h297
-rw-r--r--drivers/net/wireless/p54/p54common.c2217
-rw-r--r--drivers/net/wireless/p54/p54common.h574
-rw-r--r--drivers/net/wireless/p54/p54pci.c326
-rw-r--r--drivers/net/wireless/p54/p54pci.h14
-rw-r--r--drivers/net/wireless/p54/p54spi.c721
-rw-r--r--drivers/net/wireless/p54/p54spi.h125
-rw-r--r--drivers/net/wireless/p54/p54spi_eeprom.h679
-rw-r--r--drivers/net/wireless/p54/p54usb.c607
-rw-r--r--drivers/net/wireless/p54/p54usb.h26
-rw-r--r--drivers/net/wireless/p54/txrx.c940
-rw-r--r--drivers/net/wireless/prism54/isl_38xx.c3
-rw-r--r--drivers/net/wireless/prism54/isl_38xx.h3
-rw-r--r--drivers/net/wireless/prism54/isl_ioctl.c374
-rw-r--r--drivers/net/wireless/prism54/isl_ioctl.h5
-rw-r--r--drivers/net/wireless/prism54/isl_oid.h21
-rw-r--r--drivers/net/wireless/prism54/islpci_dev.c85
-rw-r--r--drivers/net/wireless/prism54/islpci_dev.h7
-rw-r--r--drivers/net/wireless/prism54/islpci_eth.c56
-rw-r--r--drivers/net/wireless/prism54/islpci_eth.h9
-rw-r--r--drivers/net/wireless/prism54/islpci_hotplug.c18
-rw-r--r--drivers/net/wireless/prism54/islpci_mgt.c34
-rw-r--r--drivers/net/wireless/prism54/islpci_mgt.h12
-rw-r--r--drivers/net/wireless/prism54/oid_mgt.c16
-rw-r--r--drivers/net/wireless/prism54/oid_mgt.h3
-rw-r--r--drivers/net/wireless/prism54/prismcompat.h3
-rw-r--r--drivers/net/wireless/ray_cs.c4024
-rw-r--r--drivers/net/wireless/ray_cs.h3
-rw-r--r--drivers/net/wireless/rayctl.h6
-rw-r--r--drivers/net/wireless/rndis_wlan.c3993
-rw-r--r--drivers/net/wireless/rsi/Kconfig30
-rw-r--r--drivers/net/wireless/rsi/Makefile12
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_core.c344
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_debugfs.c336
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_mac80211.c1009
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_main.c295
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_mgmt.c1307
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_pkt.c196
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_sdio.c849
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_sdio_ops.c564
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_usb.c587
-rw-r--r--drivers/net/wireless/rsi/rsi_91x_usb_ops.c177
-rw-r--r--drivers/net/wireless/rsi/rsi_boot_params.h126
-rw-r--r--drivers/net/wireless/rsi/rsi_common.h87
-rw-r--r--drivers/net/wireless/rsi/rsi_debugfs.h48
-rw-r--r--drivers/net/wireless/rsi/rsi_main.h218
-rw-r--r--drivers/net/wireless/rsi/rsi_mgmt.h286
-rw-r--r--drivers/net/wireless/rsi/rsi_sdio.h129
-rw-r--r--drivers/net/wireless/rsi/rsi_usb.h68
-rw-r--r--drivers/net/wireless/rt2x00/Kconfig182
-rw-r--r--drivers/net/wireless/rt2x00/Makefile9
-rw-r--r--drivers/net/wireless/rt2x00/rt2400pci.c974
-rw-r--r--drivers/net/wireless/rt2x00/rt2400pci.h47
-rw-r--r--drivers/net/wireless/rt2x00/rt2500pci.c1075
-rw-r--r--drivers/net/wireless/rt2x00/rt2500pci.h37
-rw-r--r--drivers/net/wireless/rt2x00/rt2500usb.c783
-rw-r--r--drivers/net/wireless/rt2x00/rt2500usb.h32
-rw-r--r--drivers/net/wireless/rt2x00/rt2800.h2974
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.c8007
-rw-r--r--drivers/net/wireless/rt2x00/rt2800lib.h231
-rw-r--r--drivers/net/wireless/rt2x00/rt2800mmio.c871
-rw-r--r--drivers/net/wireless/rt2x00/rt2800mmio.h163
-rw-r--r--drivers/net/wireless/rt2x00/rt2800pci.c471
-rw-r--r--drivers/net/wireless/rt2x00/rt2800pci.h42
-rw-r--r--drivers/net/wireless/rt2x00/rt2800soc.c261
-rw-r--r--drivers/net/wireless/rt2x00/rt2800usb.c1451
-rw-r--r--drivers/net/wireless/rt2x00/rt2800usb.h110
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00.h1007
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00config.c196
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00crypto.c130
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00debug.c217
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00debug.h7
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c1348
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dump.h20
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00firmware.c51
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00leds.c24
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00leds.h10
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00lib.h273
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00link.c498
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00mac.c683
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00mmio.c214
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00mmio.h117
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00pci.c272
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00pci.h103
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00queue.c1090
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00queue.h256
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00reg.h47
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00rfkill.c172
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00soc.c160
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00soc.h40
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00usb.c582
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00usb.h108
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c1495
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.h131
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.c979
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.h78
-rw-r--r--drivers/net/wireless/rtl818x/Kconfig88
-rw-r--r--drivers/net/wireless/rtl818x/Makefile9
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180.h120
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/Makefile5
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/dev.c1925
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/grf5101.c190
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/grf5101.h28
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/max2820.c168
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/max2820.h28
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/rtl8180.h184
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/rtl8225.c770
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/rtl8225.h (renamed from drivers/net/wireless/rtl818x/rtl8180_rtl8225.h)0
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/rtl8225se.c475
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/rtl8225se.h61
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/sa2400.c228
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180/sa2400.h36
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180_dev.c1094
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180_grf5101.c180
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180_grf5101.h28
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180_max2820.c152
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180_max2820.h28
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180_rtl8225.c788
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180_sa2400.c202
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180_sa2400.h36
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187.h227
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187/Makefile5
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187/dev.c1684
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187/leds.c245
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187/leds.h59
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187/rfkill.c64
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187/rfkill.h8
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187/rtl8187.h288
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187/rtl8225.c961
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187/rtl8225.h44
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187_dev.c1497
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187_rtl8225.c971
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187_rtl8225.h44
-rw-r--r--drivers/net/wireless/rtl818x/rtl818x.h289
-rw-r--r--drivers/net/wireless/rtlwifi/Kconfig129
-rw-r--r--drivers/net/wireless/rtlwifi/Makefile32
-rw-r--r--drivers/net/wireless/rtlwifi/base.c1911
-rw-r--r--drivers/net/wireless/rtlwifi/base.h157
-rw-r--r--drivers/net/wireless/rtlwifi/btcoexist/Makefile7
-rw-r--r--drivers/net/wireless/rtlwifi/btcoexist/halbt_precomp.h75
-rw-r--r--drivers/net/wireless/rtlwifi/btcoexist/halbtc8723b2ant.c3698
-rw-r--r--drivers/net/wireless/rtlwifi/btcoexist/halbtc8723b2ant.h173
-rw-r--r--drivers/net/wireless/rtlwifi/btcoexist/halbtcoutsrc.c1001
-rw-r--r--drivers/net/wireless/rtlwifi/btcoexist/halbtcoutsrc.h559
-rw-r--r--drivers/net/wireless/rtlwifi/btcoexist/rtl_btc.c218
-rw-r--r--drivers/net/wireless/rtlwifi/btcoexist/rtl_btc.h52
-rw-r--r--drivers/net/wireless/rtlwifi/cam.c348
-rw-r--r--drivers/net/wireless/rtlwifi/cam.h56
-rw-r--r--drivers/net/wireless/rtlwifi/core.c1423
-rw-r--r--drivers/net/wireless/rtlwifi/core.h49
-rw-r--r--drivers/net/wireless/rtlwifi/debug.c54
-rw-r--r--drivers/net/wireless/rtlwifi/debug.h244
-rw-r--r--drivers/net/wireless/rtlwifi/efuse.c1237
-rw-r--r--drivers/net/wireless/rtlwifi/efuse.h122
-rw-r--r--drivers/net/wireless/rtlwifi/pci.c2196
-rw-r--r--drivers/net/wireless/rtlwifi/pci.h294
-rw-r--r--drivers/net/wireless/rtlwifi/ps.c1039
-rw-r--r--drivers/net/wireless/rtlwifi/ps.h114
-rw-r--r--drivers/net/wireless/rtlwifi/rc.c282
-rw-r--r--drivers/net/wireless/rtlwifi/rc.h47
-rw-r--r--drivers/net/wireless/rtlwifi/regd.c421
-rw-r--r--drivers/net/wireless/rtlwifi/regd.h61
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/Makefile15
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/def.h324
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/dm.c1793
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/dm.h326
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/fw.c830
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/fw.h301
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/hw.c2517
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/hw.h66
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/led.c157
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/led.h38
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/phy.c2127
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/phy.h234
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/pwrseq.c109
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/pwrseq.h326
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/pwrseqcmd.c140
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/pwrseqcmd.h97
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/reg.h2242
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/rf.c467
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/rf.h46
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/sw.c404
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/sw.h36
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/table.c643
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/table.h47
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/trx.c817
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/trx.h795
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192c/Makefile9
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c1809
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h185
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c907
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192c/fw_common.h103
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192c/main.c40
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c1940
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192c/phy_common.h254
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/Makefile13
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/def.h251
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/dm.c109
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/dm.h163
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/hw.c2425
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/hw.h80
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/led.c151
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/led.h38
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/phy.c573
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/phy.h250
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/reg.h2056
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/rf.c509
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/rf.h43
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/sw.c387
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/sw.h41
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/table.c1224
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/table.h58
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/trx.c754
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ce/trx.h730
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/Makefile14
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/def.h58
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/dm.c116
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/dm.h35
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/hw.c2372
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/hw.h116
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/led.c141
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/led.h37
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/mac.c944
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/mac.h174
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/phy.c548
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/phy.h50
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/reg.h30
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/rf.c489
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/rf.h50
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/sw.c401
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/sw.h53
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/table.c1888
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/table.h71
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/trx.c687
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/trx.h435
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/Makefile14
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/def.h271
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/dm.c1342
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/dm.h161
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/fw.c780
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/fw.h155
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/hw.c2307
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/hw.h65
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/led.c159
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/led.h38
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/phy.c3608
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/phy.h173
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/reg.h1298
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/rf.c623
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/rf.h42
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/sw.c418
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/sw.h37
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/table.c1690
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/table.h57
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/trx.c872
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/trx.h748
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/Makefile15
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/def.h554
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/dm.c742
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/dm.h120
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/fw.c656
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/fw.h376
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/hw.c2546
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/hw.h78
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/led.c151
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/led.h37
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/phy.c1656
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/phy.h102
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/reg.h1168
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/rf.c535
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/rf.h43
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/sw.c442
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/sw.h36
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/table.c634
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/table.h49
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/trx.c660
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/trx.h48
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/Makefile21
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/btc.h41
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/def.h158
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/dm.c959
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/dm.h154
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/fw.c622
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/fw.h90
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/hal_bt_coexist.c543
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/hal_bt_coexist.h160
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/hal_btc.c1786
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/hal_btc.h151
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/hw.c2385
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/hw.h71
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/led.c157
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/led.h39
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/phy.c1573
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/phy.h201
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/pwrseq.c109
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/pwrseq.h321
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/pwrseqcmd.c129
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/pwrseqcmd.h98
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/reg.h2081
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/rf.c505
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/rf.h42
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/sw.c389
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/sw.h37
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/table.c738
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/table.h50
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/trx.c681
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/trx.h720
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/Makefile19
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/def.h248
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/dm.c1325
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/dm.h310
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/fw.c620
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/fw.h248
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/hw.c2503
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/hw.h62
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/led.c153
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/led.h35
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/phy.c2156
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/phy.h217
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/pwrseq.c106
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/pwrseq.h304
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/pwrseqcmd.c140
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/pwrseqcmd.h95
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/reg.h2277
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/rf.c504
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/rf.h43
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/sw.c387
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/sw.h35
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/table.c572
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/table.h43
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/trx.c959
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/trx.h617
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723com/Makefile9
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723com/dm_common.c65
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723com/dm_common.h33
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723com/fw_common.c329
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723com/fw_common.h126
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723com/main.c33
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723com/phy_common.c434
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723com/phy_common.h89
-rw-r--r--drivers/net/wireless/rtlwifi/stats.c282
-rw-r--r--drivers/net/wireless/rtlwifi/stats.h46
-rw-r--r--drivers/net/wireless/rtlwifi/usb.c1174
-rw-r--r--drivers/net/wireless/rtlwifi/usb.h169
-rw-r--r--drivers/net/wireless/rtlwifi/wifi.h2790
-rw-r--r--drivers/net/wireless/strip.c2800
-rw-r--r--drivers/net/wireless/ti/Kconfig24
-rw-r--r--drivers/net/wireless/ti/Makefile7
-rw-r--r--drivers/net/wireless/ti/wilink_platform_data.c74
-rw-r--r--drivers/net/wireless/ti/wl1251/Kconfig33
-rw-r--r--drivers/net/wireless/ti/wl1251/Makefile10
-rw-r--r--drivers/net/wireless/ti/wl1251/acx.c1056
-rw-r--r--drivers/net/wireless/ti/wl1251/acx.h1499
-rw-r--r--drivers/net/wireless/ti/wl1251/boot.c555
-rw-r--r--drivers/net/wireless/ti/wl1251/boot.h39
-rw-r--r--drivers/net/wireless/ti/wl1251/cmd.c514
-rw-r--r--drivers/net/wireless/ti/wl1251/cmd.h421
-rw-r--r--drivers/net/wireless/ti/wl1251/debugfs.c539
-rw-r--r--drivers/net/wireless/ti/wl1251/debugfs.h31
-rw-r--r--drivers/net/wireless/ti/wl1251/event.c236
-rw-r--r--drivers/net/wireless/ti/wl1251/event.h127
-rw-r--r--drivers/net/wireless/ti/wl1251/init.c428
-rw-r--r--drivers/net/wireless/ti/wl1251/init.h86
-rw-r--r--drivers/net/wireless/ti/wl1251/io.c194
-rw-r--r--drivers/net/wireless/ti/wl1251/io.h83
-rw-r--r--drivers/net/wireless/ti/wl1251/main.c1615
-rw-r--r--drivers/net/wireless/ti/wl1251/ps.c184
-rw-r--r--drivers/net/wireless/ti/wl1251/ps.h35
-rw-r--r--drivers/net/wireless/ti/wl1251/reg.h655
-rw-r--r--drivers/net/wireless/ti/wl1251/rx.c235
-rw-r--r--drivers/net/wireless/ti/wl1251/rx.h122
-rw-r--r--drivers/net/wireless/ti/wl1251/sdio.c387
-rw-r--r--drivers/net/wireless/ti/wl1251/spi.c369
-rw-r--r--drivers/net/wireless/ti/wl1251/spi.h59
-rw-r--r--drivers/net/wireless/ti/wl1251/tx.c593
-rw-r--r--drivers/net/wireless/ti/wl1251/tx.h231
-rw-r--r--drivers/net/wireless/ti/wl1251/wl1251.h453
-rw-r--r--drivers/net/wireless/ti/wl1251/wl12xx_80211.h155
-rw-r--r--drivers/net/wireless/ti/wl12xx/Kconfig9
-rw-r--r--drivers/net/wireless/ti/wl12xx/Makefile3
-rw-r--r--drivers/net/wireless/ti/wl12xx/acx.c53
-rw-r--r--drivers/net/wireless/ti/wl12xx/acx.h273
-rw-r--r--drivers/net/wireless/ti/wl12xx/cmd.c323
-rw-r--r--drivers/net/wireless/ti/wl12xx/cmd.h132
-rw-r--r--drivers/net/wireless/ti/wl12xx/conf.h50
-rw-r--r--drivers/net/wireless/ti/wl12xx/debugfs.c243
-rw-r--r--drivers/net/wireless/ti/wl12xx/debugfs.h28
-rw-r--r--drivers/net/wireless/ti/wl12xx/event.c116
-rw-r--r--drivers/net/wireless/ti/wl12xx/event.h111
-rw-r--r--drivers/net/wireless/ti/wl12xx/main.c1923
-rw-r--r--drivers/net/wireless/ti/wl12xx/reg.h556
-rw-r--r--drivers/net/wireless/ti/wl12xx/scan.c501
-rw-r--r--drivers/net/wireless/ti/wl12xx/scan.h140
-rw-r--r--drivers/net/wireless/ti/wl12xx/wl12xx.h135
-rw-r--r--drivers/net/wireless/ti/wl18xx/Kconfig7
-rw-r--r--drivers/net/wireless/ti/wl18xx/Makefile3
-rw-r--r--drivers/net/wireless/ti/wl18xx/acx.c196
-rw-r--r--drivers/net/wireless/ti/wl18xx/acx.h340
-rw-r--r--drivers/net/wireless/ti/wl18xx/cmd.c80
-rw-r--r--drivers/net/wireless/ti/wl18xx/cmd.h52
-rw-r--r--drivers/net/wireless/ti/wl18xx/conf.h121
-rw-r--r--drivers/net/wireless/ti/wl18xx/debugfs.c403
-rw-r--r--drivers/net/wireless/ti/wl18xx/debugfs.h28
-rw-r--r--drivers/net/wireless/ti/wl18xx/event.c111
-rw-r--r--drivers/net/wireless/ti/wl18xx/event.h97
-rw-r--r--drivers/net/wireless/ti/wl18xx/io.c75
-rw-r--r--drivers/net/wireless/ti/wl18xx/io.h28
-rw-r--r--drivers/net/wireless/ti/wl18xx/main.c2013
-rw-r--r--drivers/net/wireless/ti/wl18xx/reg.h248
-rw-r--r--drivers/net/wireless/ti/wl18xx/scan.c326
-rw-r--r--drivers/net/wireless/ti/wl18xx/scan.h127
-rw-r--r--drivers/net/wireless/ti/wl18xx/tx.c171
-rw-r--r--drivers/net/wireless/ti/wl18xx/tx.h46
-rw-r--r--drivers/net/wireless/ti/wl18xx/wl18xx.h196
-rw-r--r--drivers/net/wireless/ti/wlcore/Kconfig35
-rw-r--r--drivers/net/wireless/ti/wlcore/Makefile12
-rw-r--r--drivers/net/wireless/ti/wlcore/acx.c1853
-rw-r--r--drivers/net/wireless/ti/wlcore/acx.h1136
-rw-r--r--drivers/net/wireless/ti/wlcore/boot.c533
-rw-r--r--drivers/net/wireless/ti/wlcore/boot.h55
-rw-r--r--drivers/net/wireless/ti/wlcore/cmd.c2045
-rw-r--r--drivers/net/wireless/ti/wlcore/cmd.h702
-rw-r--r--drivers/net/wireless/ti/wlcore/conf.h1387
-rw-r--r--drivers/net/wireless/ti/wlcore/debug.h112
-rw-r--r--drivers/net/wireless/ti/wlcore/debugfs.c1346
-rw-r--r--drivers/net/wireless/ti/wlcore/debugfs.h120
-rw-r--r--drivers/net/wireless/ti/wlcore/event.c309
-rw-r--r--drivers/net/wireless/ti/wlcore/event.h87
-rw-r--r--drivers/net/wireless/ti/wlcore/hw_ops.h263
-rw-r--r--drivers/net/wireless/ti/wlcore/ini.h232
-rw-r--r--drivers/net/wireless/ti/wlcore/init.c756
-rw-r--r--drivers/net/wireless/ti/wlcore/init.h39
-rw-r--r--drivers/net/wireless/ti/wlcore/io.c200
-rw-r--r--drivers/net/wireless/ti/wlcore/io.h238
-rw-r--r--drivers/net/wireless/ti/wlcore/main.c6213
-rw-r--r--drivers/net/wireless/ti/wlcore/ps.c336
-rw-r--r--drivers/net/wireless/ti/wlcore/ps.h41
-rw-r--r--drivers/net/wireless/ti/wlcore/rx.c342
-rw-r--r--drivers/net/wireless/ti/wlcore/rx.h152
-rw-r--r--drivers/net/wireless/ti/wlcore/scan.c488
-rw-r--r--drivers/net/wireless/ti/wlcore/scan.h172
-rw-r--r--drivers/net/wireless/ti/wlcore/sdio.c413
-rw-r--r--drivers/net/wireless/ti/wlcore/spi.c434
-rw-r--r--drivers/net/wireless/ti/wlcore/sysfs.c216
-rw-r--r--drivers/net/wireless/ti/wlcore/sysfs.h28
-rw-r--r--drivers/net/wireless/ti/wlcore/testmode.c397
-rw-r--r--drivers/net/wireless/ti/wlcore/testmode.h32
-rw-r--r--drivers/net/wireless/ti/wlcore/tx.c1329
-rw-r--r--drivers/net/wireless/ti/wlcore/tx.h287
-rw-r--r--drivers/net/wireless/ti/wlcore/wl12xx_80211.h137
-rw-r--r--drivers/net/wireless/ti/wlcore/wlcore.h638
-rw-r--r--drivers/net/wireless/ti/wlcore/wlcore_i.h545
-rw-r--r--drivers/net/wireless/wavelan.c4394
-rw-r--r--drivers/net/wireless/wavelan.h370
-rw-r--r--drivers/net/wireless/wavelan.p.h703
-rw-r--r--drivers/net/wireless/wavelan_cs.c4662
-rw-r--r--drivers/net/wireless/wavelan_cs.h386
-rw-r--r--drivers/net/wireless/wavelan_cs.p.h772
-rw-r--r--drivers/net/wireless/wl3501.h19
-rw-r--r--drivers/net/wireless/wl3501_cs.c319
-rw-r--r--drivers/net/wireless/zd1201.c126
-rw-r--r--drivers/net/wireless/zd1201.h1
-rw-r--r--drivers/net/wireless/zd1211rw/Kconfig2
-rw-r--r--drivers/net/wireless/zd1211rw/Makefile4
-rw-r--r--drivers/net/wireless/zd1211rw/zd_chip.c616
-rw-r--r--drivers/net/wireless/zd1211rw/zd_chip.h574
-rw-r--r--drivers/net/wireless/zd1211rw/zd_def.h16
-rw-r--r--drivers/net/wireless/zd1211rw/zd_mac.c895
-rw-r--r--drivers/net/wireless/zd1211rw/zd_mac.h68
-rw-r--r--drivers/net/wireless/zd1211rw/zd_rf.c4
-rw-r--r--drivers/net/wireless/zd1211rw/zd_rf.h5
-rw-r--r--drivers/net/wireless/zd1211rw/zd_rf_al2230.c201
-rw-r--r--drivers/net/wireless/zd1211rw/zd_rf_al7230b.c243
-rw-r--r--drivers/net/wireless/zd1211rw/zd_rf_rf2959.c83
-rw-r--r--drivers/net/wireless/zd1211rw/zd_rf_uw2453.c92
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.c896
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.h64
-rw-r--r--drivers/net/xen-netback/Makefile3
-rw-r--r--drivers/net/xen-netback/common.h306
-rw-r--r--drivers/net/xen-netback/interface.c734
-rw-r--r--drivers/net/xen-netback/netback.c2045
-rw-r--r--drivers/net/xen-netback/xenbus.c786
-rw-r--r--drivers/net/xen-netfront.c1943
-rw-r--r--drivers/net/znet.c925
-rw-r--r--drivers/net/zorro8390.c456
-rw-r--r--drivers/nfc/Kconfig76
-rw-r--r--drivers/nfc/Makefile16
-rw-r--r--drivers/nfc/mei_phy.c173
-rw-r--r--drivers/nfc/mei_phy.h30
-rw-r--r--drivers/nfc/microread/Kconfig35
-rw-r--r--drivers/nfc/microread/Makefile10
-rw-r--r--drivers/nfc/microread/i2c.c328
-rw-r--r--drivers/nfc/microread/mei.c109
-rw-r--r--drivers/nfc/microread/microread.c725
-rw-r--r--drivers/nfc/microread/microread.h31
-rw-r--r--drivers/nfc/nfcmrvl/Kconfig23
-rw-r--r--drivers/nfc/nfcmrvl/Makefile9
-rw-r--r--drivers/nfc/nfcmrvl/main.c165
-rw-r--r--drivers/nfc/nfcmrvl/nfcmrvl.h48
-rw-r--r--drivers/nfc/nfcmrvl/usb.c459
-rw-r--r--drivers/nfc/nfcsim.c541
-rw-r--r--drivers/nfc/nfcwilink.c579
-rw-r--r--drivers/nfc/pn533.c3311
-rw-r--r--drivers/nfc/pn544/Kconfig34
-rw-r--r--drivers/nfc/pn544/Makefile10
-rw-r--r--drivers/nfc/pn544/i2c.c1092
-rw-r--r--drivers/nfc/pn544/mei.c109
-rw-r--r--drivers/nfc/pn544/pn544.c994
-rw-r--r--drivers/nfc/pn544/pn544.h36
-rw-r--r--drivers/nfc/port100.c1579
-rw-r--r--drivers/nfc/st21nfca/Kconfig23
-rw-r--r--drivers/nfc/st21nfca/Makefile8
-rw-r--r--drivers/nfc/st21nfca/i2c.c724
-rw-r--r--drivers/nfc/st21nfca/st21nfca.c698
-rw-r--r--drivers/nfc/st21nfca/st21nfca.h87
-rw-r--r--drivers/nfc/trf7970a.c1493
-rw-r--r--drivers/ntb/Kconfig13
-rw-r--r--drivers/ntb/Makefile3
-rw-r--r--drivers/ntb/ntb_hw.c1545
-rw-r--r--drivers/ntb/ntb_hw.h247
-rw-r--r--drivers/ntb/ntb_regs.h159
-rw-r--r--drivers/ntb/ntb_transport.c1763
-rw-r--r--drivers/nubus/nubus.c75
-rw-r--r--drivers/nubus/proc.c85
-rw-r--r--drivers/of/Kconfig86
-rw-r--r--drivers/of/Makefile21
-rw-r--r--drivers/of/address.c813
-rw-r--r--drivers/of/base.c2195
-rw-r--r--drivers/of/device.c165
-rw-r--r--drivers/of/fdt.c1102
-rw-r--r--drivers/of/fdt_address.c241
-rw-r--r--drivers/of/gpio.c219
-rw-r--r--drivers/of/irq.c573
-rw-r--r--drivers/of/of_i2c.c88
-rw-r--r--drivers/of/of_mdio.c317
-rw-r--r--drivers/of/of_mtd.c119
-rw-r--r--drivers/of/of_net.c77
-rw-r--r--drivers/of/of_pci.c135
-rw-r--r--drivers/of/of_pci_irq.c116
-rw-r--r--drivers/of/of_private.h36
-rw-r--r--drivers/of/of_reserved_mem.c217
-rw-r--r--drivers/of/of_spi.c95
-rw-r--r--drivers/of/pdt.c254
-rw-r--r--drivers/of/platform.c580
-rw-r--r--drivers/of/selftest.c544
-rw-r--r--drivers/of/testcase-data/testcases.dtsi4
-rw-r--r--drivers/of/testcase-data/tests-interrupts.dtsi71
-rw-r--r--drivers/of/testcase-data/tests-match.dtsi19
-rw-r--r--drivers/of/testcase-data/tests-phandle.dtsi46
-rw-r--r--drivers/of/testcase-data/tests-platform.dtsi35
-rw-r--r--drivers/oprofile/buffer_sync.c47
-rw-r--r--drivers/oprofile/cpu_buffer.c169
-rw-r--r--drivers/oprofile/cpu_buffer.h12
-rw-r--r--drivers/oprofile/event_buffer.c42
-rw-r--r--drivers/oprofile/event_buffer.h2
-rw-r--r--drivers/oprofile/nmi_timer_int.c176
-rw-r--r--drivers/oprofile/oprof.c122
-rw-r--r--drivers/oprofile/oprof.h19
-rw-r--r--drivers/oprofile/oprofile_files.c92
-rw-r--r--drivers/oprofile/oprofile_perf.c327
-rw-r--r--drivers/oprofile/oprofile_stats.c32
-rw-r--r--drivers/oprofile/oprofile_stats.h6
-rw-r--r--drivers/oprofile/oprofilefs.c143
-rw-r--r--drivers/oprofile/timer_int.c100
-rw-r--r--drivers/parisc/Kconfig8
-rw-r--r--drivers/parisc/README.dino3
-rw-r--r--drivers/parisc/asp.c3
-rw-r--r--drivers/parisc/ccio-dma.c35
-rw-r--r--drivers/parisc/ccio-rm-dma.c1
-rw-r--r--drivers/parisc/dino.c162
-rw-r--r--drivers/parisc/eisa.c36
-rw-r--r--drivers/parisc/eisa_eeprom.c28
-rw-r--r--drivers/parisc/eisa_enumerator.c20
-rw-r--r--drivers/parisc/gsc.c87
-rw-r--r--drivers/parisc/gsc.h2
-rw-r--r--drivers/parisc/hppb.c7
-rw-r--r--drivers/parisc/iommu-helpers.h2
-rw-r--r--drivers/parisc/iosapic.c173
-rw-r--r--drivers/parisc/lba_pci.c228
-rw-r--r--drivers/parisc/led.c120
-rw-r--r--drivers/parisc/pdc_stable.c21
-rw-r--r--drivers/parisc/sba_iommu.c114
-rw-r--r--drivers/parisc/superio.c53
-rw-r--r--drivers/parport/ChangeLog583
-rw-r--r--drivers/parport/Kconfig29
-rw-r--r--drivers/parport/daisy.c1
-rw-r--r--drivers/parport/ieee1284.c2
-rw-r--r--drivers/parport/parport_amiga.c86
-rw-r--r--drivers/parport/parport_atari.c15
-rw-r--r--drivers/parport/parport_ax88796.c16
-rw-r--r--drivers/parport/parport_cs.c147
-rw-r--r--drivers/parport/parport_gsc.c40
-rw-r--r--drivers/parport/parport_gsc.h2
-rw-r--r--drivers/parport/parport_ip32.c8
-rw-r--r--drivers/parport/parport_mfc3.c41
-rw-r--r--drivers/parport/parport_pc.c2114
-rw-r--r--drivers/parport/parport_serial.c325
-rw-r--r--drivers/parport/parport_sunbpp.c56
-rw-r--r--drivers/parport/probe.c1
-rw-r--r--drivers/parport/procfs.c103
-rw-r--r--drivers/parport/share.c25
-rw-r--r--drivers/pci/.gitignore4
-rw-r--r--drivers/pci/Kconfig91
-rw-r--r--drivers/pci/Makefile49
-rw-r--r--drivers/pci/access.c365
-rw-r--r--drivers/pci/ats.c375
-rw-r--r--drivers/pci/bus.c356
-rw-r--r--drivers/pci/dmar.c772
-rw-r--r--drivers/pci/host-bridge.c84
-rw-r--r--drivers/pci/host/Kconfig49
-rw-r--r--drivers/pci/host/Makefile8
-rw-r--r--drivers/pci/host/pci-exynos.c667
-rw-r--r--drivers/pci/host/pci-host-generic.c388
-rw-r--r--drivers/pci/host/pci-imx6.c616
-rw-r--r--drivers/pci/host/pci-mvebu.c1097
-rw-r--r--drivers/pci/host/pci-rcar-gen2.c426
-rw-r--r--drivers/pci/host/pci-tegra.c1719
-rw-r--r--drivers/pci/host/pcie-designware.c835
-rw-r--r--drivers/pci/host/pcie-designware.h76
-rw-r--r--drivers/pci/host/pcie-rcar.c1006
-rw-r--r--drivers/pci/hotplug-pci.c31
-rw-r--r--drivers/pci/hotplug.c37
-rw-r--r--drivers/pci/hotplug/Kconfig55
-rw-r--r--drivers/pci/hotplug/Makefile20
-rw-r--r--drivers/pci/hotplug/acpi_pcihp.c242
-rw-r--r--drivers/pci/hotplug/acpiphp.h141
-rw-r--r--drivers/pci/hotplug/acpiphp_core.c126
-rw-r--r--drivers/pci/hotplug/acpiphp_glue.c2018
-rw-r--r--drivers/pci/hotplug/acpiphp_ibm.c95
-rw-r--r--drivers/pci/hotplug/cpci_hotplug.h50
-rw-r--r--drivers/pci/hotplug/cpci_hotplug_core.c51
-rw-r--r--drivers/pci/hotplug/cpci_hotplug_pci.c97
-rw-r--r--drivers/pci/hotplug/cpcihp_generic.c39
-rw-r--r--drivers/pci/hotplug/cpcihp_zt5550.c32
-rw-r--r--drivers/pci/hotplug/cpcihp_zt5550.h18
-rw-r--r--drivers/pci/hotplug/cpqphp.h170
-rw-r--r--drivers/pci/hotplug/cpqphp_core.c1128
-rw-r--r--drivers/pci/hotplug/cpqphp_ctrl.c512
-rw-r--r--drivers/pci/hotplug/cpqphp_nvram.c130
-rw-r--r--drivers/pci/hotplug/cpqphp_nvram.h12
-rw-r--r--drivers/pci/hotplug/cpqphp_pci.c642
-rw-r--r--drivers/pci/hotplug/cpqphp_sysfs.c34
-rw-r--r--drivers/pci/hotplug/fakephp.c385
-rw-r--r--drivers/pci/hotplug/ibmphp.h78
-rw-r--r--drivers/pci/hotplug/ibmphp_core.c336
-rw-r--r--drivers/pci/hotplug/ibmphp_ebda.c140
-rw-r--r--drivers/pci/hotplug/ibmphp_hpc.c38
-rw-r--r--drivers/pci/hotplug/ibmphp_pci.c109
-rw-r--r--drivers/pci/hotplug/ibmphp_res.c105
-rw-r--r--drivers/pci/hotplug/pci_hotplug_core.c368
-rw-r--r--drivers/pci/hotplug/pciehp.h187
-rw-r--r--drivers/pci/hotplug/pciehp_acpi.c66
-rw-r--r--drivers/pci/hotplug/pciehp_core.c402
-rw-r--r--drivers/pci/hotplug/pciehp_ctrl.c390
-rw-r--r--drivers/pci/hotplug/pciehp_hpc.c1006
-rw-r--r--drivers/pci/hotplug/pciehp_pci.c270
-rw-r--r--drivers/pci/hotplug/pcihp_skeleton.c63
-rw-r--r--drivers/pci/hotplug/pcihp_slot.c180
-rw-r--r--drivers/pci/hotplug/rpadlpar.h8
-rw-r--r--drivers/pci/hotplug/rpadlpar_core.c33
-rw-r--r--drivers/pci/hotplug/rpaphp.h24
-rw-r--r--drivers/pci/hotplug/rpaphp_core.c73
-rw-r--r--drivers/pci/hotplug/rpaphp_pci.c3
-rw-r--r--drivers/pci/hotplug/rpaphp_slot.c20
-rw-r--r--drivers/pci/hotplug/s390_pci_hpc.c214
-rw-r--r--drivers/pci/hotplug/sgi_hotplug.c137
-rw-r--r--drivers/pci/hotplug/shpchp.h68
-rw-r--r--drivers/pci/hotplug/shpchp_core.c87
-rw-r--r--drivers/pci/hotplug/shpchp_ctrl.c61
-rw-r--r--drivers/pci/hotplug/shpchp_hpc.c210
-rw-r--r--drivers/pci/hotplug/shpchp_pci.c171
-rw-r--r--drivers/pci/hotplug/shpchp_sysfs.c40
-rw-r--r--drivers/pci/htirq.c55
-rw-r--r--drivers/pci/intel-iommu.c3131
-rw-r--r--drivers/pci/intr_remapping.c585
-rw-r--r--drivers/pci/intr_remapping.h8
-rw-r--r--drivers/pci/ioapic.c121
-rw-r--r--drivers/pci/iov.c694
-rw-r--r--drivers/pci/irq.c13
-rw-r--r--drivers/pci/msi.c1174
-rw-r--r--drivers/pci/msi.h42
-rw-r--r--drivers/pci/of.c61
-rw-r--r--drivers/pci/pci-acpi.c467
-rw-r--r--drivers/pci/pci-driver.c1041
-rw-r--r--drivers/pci/pci-label.c307
-rw-r--r--drivers/pci/pci-stub.c56
-rw-r--r--drivers/pci/pci-sysfs.c950
-rw-r--r--drivers/pci/pci.c3135
-rw-r--r--drivers/pci/pci.h233
-rw-r--r--drivers/pci/pcie/Kconfig56
-rw-r--r--drivers/pci/pcie/Makefile3
-rw-r--r--drivers/pci/pcie/aer/Kconfig15
-rw-r--r--drivers/pci/pcie/aer/Kconfig.debug18
-rw-r--r--drivers/pci/pcie/aer/Makefile3
-rw-r--r--drivers/pci/pcie/aer/aer_inject.c536
-rw-r--r--drivers/pci/pcie/aer/aerdrv.c240
-rw-r--r--drivers/pci/pcie/aer/aerdrv.h78
-rw-r--r--drivers/pci/pcie/aer/aerdrv_acpi.c144
-rw-r--r--drivers/pci/pcie/aer/aerdrv_core.c770
-rw-r--r--drivers/pci/pcie/aer/aerdrv_errprint.c321
-rw-r--r--drivers/pci/pcie/aer/ecrc.c131
-rw-r--r--drivers/pci/pcie/aspm.c1118
-rw-r--r--drivers/pci/pcie/pme.c438
-rw-r--r--drivers/pci/pcie/portdrv.h87
-rw-r--r--drivers/pci/pcie/portdrv_acpi.c63
-rw-r--r--drivers/pci/pcie/portdrv_bus.c19
-rw-r--r--drivers/pci/pcie/portdrv_core.c568
-rw-r--r--drivers/pci/pcie/portdrv_pci.c269
-rw-r--r--drivers/pci/probe.c1754
-rw-r--r--drivers/pci/proc.c118
-rw-r--r--drivers/pci/quirks.c2202
-rw-r--r--drivers/pci/remove.c171
-rw-r--r--drivers/pci/rom.c101
-rw-r--r--drivers/pci/search.c322
-rw-r--r--drivers/pci/setup-bus.c1549
-rw-r--r--drivers/pci/setup-irq.c22
-rw-r--r--drivers/pci/setup-res.c355
-rw-r--r--drivers/pci/slot.c147
-rw-r--r--drivers/pci/syscall.c5
-rw-r--r--drivers/pci/vc.c434
-rw-r--r--drivers/pci/vpd.c62
-rw-r--r--drivers/pci/xen-pcifront.c1168
-rw-r--r--drivers/pcmcia/Kconfig133
-rw-r--r--drivers/pcmcia/Makefile59
-rw-r--r--drivers/pcmcia/at91_cf.c228
-rw-r--r--drivers/pcmcia/au1000_db1x00.c305
-rw-r--r--drivers/pcmcia/au1000_generic.c551
-rw-r--r--drivers/pcmcia/au1000_generic.h153
-rw-r--r--drivers/pcmcia/au1000_pb1x00.c415
-rw-r--r--drivers/pcmcia/au1000_xxs1500.c189
-rw-r--r--drivers/pcmcia/bcm63xx_pcmcia.c537
-rw-r--r--drivers/pcmcia/bcm63xx_pcmcia.h60
-rw-r--r--drivers/pcmcia/bfin_cf_pcmcia.c40
-rw-r--r--drivers/pcmcia/cardbus.c230
-rw-r--r--drivers/pcmcia/cirrus.h10
-rw-r--r--drivers/pcmcia/cistpl.c2360
-rw-r--r--drivers/pcmcia/cs.c591
-rw-r--r--drivers/pcmcia/cs_internal.h211
-rw-r--r--drivers/pcmcia/db1xxx_ss.c587
-rw-r--r--drivers/pcmcia/ds.c900
-rw-r--r--drivers/pcmcia/electra_cf.c39
-rw-r--r--drivers/pcmcia/i82092.c49
-rw-r--r--drivers/pcmcia/i82365.c62
-rw-r--r--drivers/pcmcia/i82365.h5
-rw-r--r--drivers/pcmcia/m32r_cfc.c140
-rw-r--r--drivers/pcmcia/m32r_cfc.h2
-rw-r--r--drivers/pcmcia/m32r_pcc.c83
-rw-r--r--drivers/pcmcia/m32r_pcc.h2
-rw-r--r--drivers/pcmcia/m8xx_pcmcia.c253
-rw-r--r--drivers/pcmcia/o2micro.h63
-rw-r--r--drivers/pcmcia/omap_cf.c17
-rw-r--r--drivers/pcmcia/pcmcia_cis.c438
-rw-r--r--drivers/pcmcia/pcmcia_ioctl.c1031
-rw-r--r--drivers/pcmcia/pcmcia_resource.c1308
-rw-r--r--drivers/pcmcia/pd6729.c215
-rw-r--r--drivers/pcmcia/pd6729.h9
-rw-r--r--drivers/pcmcia/pxa2xx_balloon3.c140
-rw-r--r--drivers/pcmcia/pxa2xx_base.c220
-rw-r--r--drivers/pcmcia/pxa2xx_base.h5
-rw-r--r--drivers/pcmcia/pxa2xx_cm_x255.c52
-rw-r--r--drivers/pcmcia/pxa2xx_cm_x270.c37
-rw-r--r--drivers/pcmcia/pxa2xx_cm_x2xx.c3
-rw-r--r--drivers/pcmcia/pxa2xx_colibri.c169
-rw-r--r--drivers/pcmcia/pxa2xx_e740.c70
-rw-r--r--drivers/pcmcia/pxa2xx_hx4700.c121
-rw-r--r--drivers/pcmcia/pxa2xx_lubbock.c239
-rw-r--r--drivers/pcmcia/pxa2xx_mainstone.c44
-rw-r--r--drivers/pcmcia/pxa2xx_palmld.c63
-rw-r--r--drivers/pcmcia/pxa2xx_palmtc.c166
-rw-r--r--drivers/pcmcia/pxa2xx_palmtx.c74
-rw-r--r--drivers/pcmcia/pxa2xx_sharpsl.c42
-rw-r--r--drivers/pcmcia/pxa2xx_stargate2.c140
-rw-r--r--drivers/pcmcia/pxa2xx_trizeps4.c73
-rw-r--r--drivers/pcmcia/pxa2xx_viper.c122
-rw-r--r--drivers/pcmcia/pxa2xx_vpac270.c142
-rw-r--r--drivers/pcmcia/rsrc_iodyn.c171
-rw-r--r--drivers/pcmcia/rsrc_mgr.c167
-rw-r--r--drivers/pcmcia/rsrc_nonstatic.c840
-rw-r--r--drivers/pcmcia/sa1100_assabet.c67
-rw-r--r--drivers/pcmcia/sa1100_badge4.c168
-rw-r--r--drivers/pcmcia/sa1100_cerf.c54
-rw-r--r--drivers/pcmcia/sa1100_generic.c42
-rw-r--r--drivers/pcmcia/sa1100_generic.h1
-rw-r--r--drivers/pcmcia/sa1100_h3600.c129
-rw-r--r--drivers/pcmcia/sa1100_jornada720.c112
-rw-r--r--drivers/pcmcia/sa1100_nanoengine.c133
-rw-r--r--drivers/pcmcia/sa1100_neponset.c142
-rw-r--r--drivers/pcmcia/sa1100_shannon.c59
-rw-r--r--drivers/pcmcia/sa1100_simpad.c66
-rw-r--r--drivers/pcmcia/sa1111_badge4.c166
-rw-r--r--drivers/pcmcia/sa1111_generic.c159
-rw-r--r--drivers/pcmcia/sa1111_generic.h18
-rw-r--r--drivers/pcmcia/sa1111_jornada720.c114
-rw-r--r--drivers/pcmcia/sa1111_lubbock.c236
-rw-r--r--drivers/pcmcia/sa1111_neponset.c129
-rw-r--r--drivers/pcmcia/sa11xx_base.c83
-rw-r--r--drivers/pcmcia/sa11xx_base.h2
-rw-r--r--drivers/pcmcia/soc_common.c595
-rw-r--r--drivers/pcmcia/soc_common.h43
-rw-r--r--drivers/pcmcia/socket_sysfs.c202
-rw-r--r--drivers/pcmcia/tcic.c58
-rw-r--r--drivers/pcmcia/ti113x.h39
-rw-r--r--drivers/pcmcia/topic.h15
-rw-r--r--drivers/pcmcia/vrc4171_card.c39
-rw-r--r--drivers/pcmcia/vrc4173_cardu.c77
-rw-r--r--drivers/pcmcia/vrc4173_cardu.h2
-rw-r--r--drivers/pcmcia/xxs1500_ss.c327
-rw-r--r--drivers/pcmcia/yenta_socket.c385
-rw-r--r--drivers/phy/Kconfig183
-rw-r--r--drivers/phy/Makefile22
-rw-r--r--drivers/phy/phy-bcm-kona-usb2.c156
-rw-r--r--drivers/phy/phy-core.c830
-rw-r--r--drivers/phy/phy-exynos-dp-video.c111
-rw-r--r--drivers/phy/phy-exynos-mipi-video.c176
-rw-r--r--drivers/phy/phy-exynos4210-usb2.c261
-rw-r--r--drivers/phy/phy-exynos4x12-usb2.c328
-rw-r--r--drivers/phy/phy-exynos5-usbdrd.c676
-rw-r--r--drivers/phy/phy-exynos5250-sata.c251
-rw-r--r--drivers/phy/phy-exynos5250-usb2.c404
-rw-r--r--drivers/phy/phy-mvebu-sata.c137
-rw-r--r--drivers/phy/phy-omap-control.c320
-rw-r--r--drivers/phy/phy-omap-usb2.c396
-rw-r--r--drivers/phy/phy-samsung-usb2.c229
-rw-r--r--drivers/phy/phy-samsung-usb2.h67
-rw-r--r--drivers/phy/phy-sun4i-usb.c336
-rw-r--r--drivers/phy/phy-ti-pipe3.c470
-rw-r--r--drivers/phy/phy-twl4030-usb.c815
-rw-r--r--drivers/phy/phy-xgene.c1750
-rw-r--r--drivers/pinctrl/Kconfig414
-rw-r--r--drivers/pinctrl/Makefile79
-rw-r--r--drivers/pinctrl/berlin/Kconfig20
-rw-r--r--drivers/pinctrl/berlin/Makefile4
-rw-r--r--drivers/pinctrl/berlin/berlin-bg2.c274
-rw-r--r--drivers/pinctrl/berlin/berlin-bg2cd.c217
-rw-r--r--drivers/pinctrl/berlin/berlin-bg2q.c436
-rw-r--r--drivers/pinctrl/berlin/berlin.c348
-rw-r--r--drivers/pinctrl/berlin/berlin.h61
-rw-r--r--drivers/pinctrl/core.c1850
-rw-r--r--drivers/pinctrl/core.h199
-rw-r--r--drivers/pinctrl/devicetree.c256
-rw-r--r--drivers/pinctrl/devicetree.h35
-rw-r--r--drivers/pinctrl/mvebu/Kconfig37
-rw-r--r--drivers/pinctrl/mvebu/Makefile8
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-armada-370.c439
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-armada-375.c459
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-armada-38x.c462
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-armada-xp.c486
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-dove.c865
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-kirkwood.c503
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-mvebu.c728
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-mvebu.h207
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-orion.c261
-rw-r--r--drivers/pinctrl/pinconf-generic.c339
-rw-r--r--drivers/pinctrl/pinconf.c621
-rw-r--r--drivers/pinctrl/pinconf.h131
-rw-r--r--drivers/pinctrl/pinctrl-ab8500.c485
-rw-r--r--drivers/pinctrl/pinctrl-ab8505.c381
-rw-r--r--drivers/pinctrl/pinctrl-ab8540.c408
-rw-r--r--drivers/pinctrl/pinctrl-ab9540.c486
-rw-r--r--drivers/pinctrl/pinctrl-abx500.c1361
-rw-r--r--drivers/pinctrl/pinctrl-abx500.h246
-rw-r--r--drivers/pinctrl/pinctrl-adi2-bf54x.c588
-rw-r--r--drivers/pinctrl/pinctrl-adi2-bf60x.c517
-rw-r--r--drivers/pinctrl/pinctrl-adi2.c1178
-rw-r--r--drivers/pinctrl/pinctrl-adi2.h75
-rw-r--r--drivers/pinctrl/pinctrl-apq8064.c613
-rw-r--r--drivers/pinctrl/pinctrl-as3722.c655
-rw-r--r--drivers/pinctrl/pinctrl-at91.c1715
-rw-r--r--drivers/pinctrl/pinctrl-baytrail.c656
-rw-r--r--drivers/pinctrl/pinctrl-bcm281xx.c1461
-rw-r--r--drivers/pinctrl/pinctrl-bcm2835.c1084
-rw-r--r--drivers/pinctrl/pinctrl-coh901.c812
-rw-r--r--drivers/pinctrl/pinctrl-coh901.h5
-rw-r--r--drivers/pinctrl/pinctrl-exynos.c1310
-rw-r--r--drivers/pinctrl/pinctrl-exynos.h99
-rw-r--r--drivers/pinctrl/pinctrl-exynos5440.c1069
-rw-r--r--drivers/pinctrl/pinctrl-falcon.c513
-rw-r--r--drivers/pinctrl/pinctrl-imx.c630
-rw-r--r--drivers/pinctrl/pinctrl-imx.h101
-rw-r--r--drivers/pinctrl/pinctrl-imx1-core.c660
-rw-r--r--drivers/pinctrl/pinctrl-imx1.h73
-rw-r--r--drivers/pinctrl/pinctrl-imx23.c305
-rw-r--r--drivers/pinctrl/pinctrl-imx25.c351
-rw-r--r--drivers/pinctrl/pinctrl-imx27.c477
-rw-r--r--drivers/pinctrl/pinctrl-imx28.c421
-rw-r--r--drivers/pinctrl/pinctrl-imx35.c1041
-rw-r--r--drivers/pinctrl/pinctrl-imx50.c426
-rw-r--r--drivers/pinctrl/pinctrl-imx51.c804
-rw-r--r--drivers/pinctrl/pinctrl-imx53.c490
-rw-r--r--drivers/pinctrl/pinctrl-imx6dl.c497
-rw-r--r--drivers/pinctrl/pinctrl-imx6q.c502
-rw-r--r--drivers/pinctrl/pinctrl-imx6sl.c403
-rw-r--r--drivers/pinctrl/pinctrl-imx6sx.c407
-rw-r--r--drivers/pinctrl/pinctrl-ipq8064.c653
-rw-r--r--drivers/pinctrl/pinctrl-lantiq.c346
-rw-r--r--drivers/pinctrl/pinctrl-lantiq.h196
-rw-r--r--drivers/pinctrl/pinctrl-msm.c939
-rw-r--r--drivers/pinctrl/pinctrl-msm.h121
-rw-r--r--drivers/pinctrl/pinctrl-msm8x74.c1040
-rw-r--r--drivers/pinctrl/pinctrl-mxs.c541
-rw-r--r--drivers/pinctrl/pinctrl-mxs.h91
-rw-r--r--drivers/pinctrl/pinctrl-nomadik-db8500.c1257
-rw-r--r--drivers/pinctrl/pinctrl-nomadik-db8540.c1266
-rw-r--r--drivers/pinctrl/pinctrl-nomadik-stn8815.c356
-rw-r--r--drivers/pinctrl/pinctrl-nomadik.c2115
-rw-r--r--drivers/pinctrl/pinctrl-nomadik.h192
-rw-r--r--drivers/pinctrl/pinctrl-palmas.c1076
-rw-r--r--drivers/pinctrl/pinctrl-rockchip.c1730
-rw-r--r--drivers/pinctrl/pinctrl-s3c24xx.c651
-rw-r--r--drivers/pinctrl/pinctrl-s3c64xx.c816
-rw-r--r--drivers/pinctrl/pinctrl-samsung.c1181
-rw-r--r--drivers/pinctrl/pinctrl-samsung.h267
-rw-r--r--drivers/pinctrl/pinctrl-single.c2076
-rw-r--r--drivers/pinctrl/pinctrl-st.c1708
-rw-r--r--drivers/pinctrl/pinctrl-tb10x.c874
-rw-r--r--drivers/pinctrl/pinctrl-tegra.c725
-rw-r--r--drivers/pinctrl/pinctrl-tegra.h191
-rw-r--r--drivers/pinctrl/pinctrl-tegra114.c1872
-rw-r--r--drivers/pinctrl/pinctrl-tegra124.c2018
-rw-r--r--drivers/pinctrl/pinctrl-tegra20.c2250
-rw-r--r--drivers/pinctrl/pinctrl-tegra30.c2506
-rw-r--r--drivers/pinctrl/pinctrl-tz1090-pdc.c1029
-rw-r--r--drivers/pinctrl/pinctrl-tz1090.c2076
-rw-r--r--drivers/pinctrl/pinctrl-u300.c1136
-rw-r--r--drivers/pinctrl/pinctrl-utils.c142
-rw-r--r--drivers/pinctrl/pinctrl-utils.h43
-rw-r--r--drivers/pinctrl/pinctrl-vf610.c338
-rw-r--r--drivers/pinctrl/pinctrl-xway.c851
-rw-r--r--drivers/pinctrl/pinmux.c675
-rw-r--r--drivers/pinctrl/pinmux.h113
-rw-r--r--drivers/pinctrl/sh-pfc/Kconfig136
-rw-r--r--drivers/pinctrl/sh-pfc/Makefile25
-rw-r--r--drivers/pinctrl/sh-pfc/core.c680
-rw-r--r--drivers/pinctrl/sh-pfc/core.h90
-rw-r--r--drivers/pinctrl/sh-pfc/gpio.c419
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a73a4.c2749
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7740.c3786
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7778.c2928
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7779.c3873
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7790.c5502
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-r8a7791.c5771
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7203.c1592
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7264.c2131
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7269.c2835
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7372.c2645
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh73a0.c3895
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7720.c1206
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7722.c1746
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7723.c1898
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7724.c2180
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7734.c2450
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7757.c2243
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7785.c1274
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-sh7786.c818
-rw-r--r--drivers/pinctrl/sh-pfc/pfc-shx3.c561
-rw-r--r--drivers/pinctrl/sh-pfc/pinctrl.c664
-rw-r--r--drivers/pinctrl/sh-pfc/sh_pfc.h320
-rw-r--r--drivers/pinctrl/sirf/Makefile5
-rw-r--r--drivers/pinctrl/sirf/pinctrl-atlas6.c1095
-rw-r--r--drivers/pinctrl/sirf/pinctrl-prima2.c1037
-rw-r--r--drivers/pinctrl/sirf/pinctrl-sirf.c915
-rw-r--r--drivers/pinctrl/sirf/pinctrl-sirf.h118
-rw-r--r--drivers/pinctrl/spear/Kconfig55
-rw-r--r--drivers/pinctrl/spear/Makefile10
-rw-r--r--drivers/pinctrl/spear/pinctrl-plgpio.c750
-rw-r--r--drivers/pinctrl/spear/pinctrl-spear.c421
-rw-r--r--drivers/pinctrl/spear/pinctrl-spear.h452
-rw-r--r--drivers/pinctrl/spear/pinctrl-spear1310.c2737
-rw-r--r--drivers/pinctrl/spear/pinctrl-spear1340.c2053
-rw-r--r--drivers/pinctrl/spear/pinctrl-spear300.c710
-rw-r--r--drivers/pinctrl/spear/pinctrl-spear310.c433
-rw-r--r--drivers/pinctrl/spear/pinctrl-spear320.c3474
-rw-r--r--drivers/pinctrl/spear/pinctrl-spear3xx.c524
-rw-r--r--drivers/pinctrl/spear/pinctrl-spear3xx.h93
-rw-r--r--drivers/pinctrl/sunxi/Kconfig36
-rw-r--r--drivers/pinctrl/sunxi/Makefile10
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c1039
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun5i-a10s.c690
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun5i-a13.c411
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun6i-a31-r.c141
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun6i-a31.c865
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun7i-a20.c1065
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sunxi.c925
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sunxi.h258
-rw-r--r--drivers/pinctrl/vt8500/Kconfig52
-rw-r--r--drivers/pinctrl/vt8500/Makefile8
-rw-r--r--drivers/pinctrl/vt8500/pinctrl-vt8500.c501
-rw-r--r--drivers/pinctrl/vt8500/pinctrl-wm8505.c532
-rw-r--r--drivers/pinctrl/vt8500/pinctrl-wm8650.c370
-rw-r--r--drivers/pinctrl/vt8500/pinctrl-wm8750.c409
-rw-r--r--drivers/pinctrl/vt8500/pinctrl-wm8850.c388
-rw-r--r--drivers/pinctrl/vt8500/pinctrl-wmt.c649
-rw-r--r--drivers/pinctrl/vt8500/pinctrl-wmt.h79
-rw-r--r--drivers/platform/Kconfig7
-rw-r--r--drivers/platform/Makefile3
-rw-r--r--drivers/platform/chrome/Kconfig42
-rw-r--r--drivers/platform/chrome/Makefile3
-rw-r--r--drivers/platform/chrome/chromeos_laptop.c513
-rw-r--r--drivers/platform/chrome/chromeos_pstore.c101
-rw-r--r--drivers/platform/goldfish/Kconfig5
-rw-r--r--drivers/platform/goldfish/Makefile5
-rw-r--r--drivers/platform/goldfish/goldfish_pipe.c628
-rw-r--r--drivers/platform/goldfish/pdev_bus.c239
-rw-r--r--drivers/platform/olpc/Makefile4
-rw-r--r--drivers/platform/olpc/olpc-ec.c336
-rw-r--r--drivers/platform/x86/Kconfig637
-rw-r--r--drivers/platform/x86/Makefile41
-rw-r--r--drivers/platform/x86/acer-wmi.c1302
-rw-r--r--drivers/platform/x86/acerhdf.c739
-rw-r--r--drivers/platform/x86/alienware-wmi.c622
-rw-r--r--drivers/platform/x86/amilo-rfkill.c183
-rw-r--r--drivers/platform/x86/apple-gmux.c643
-rw-r--r--drivers/platform/x86/asus-laptop.c2193
-rw-r--r--drivers/platform/x86/asus-nb-wmi.c312
-rw-r--r--drivers/platform/x86/asus-wmi.c1975
-rw-r--r--drivers/platform/x86/asus-wmi.h84
-rw-r--r--drivers/platform/x86/asus_acpi.c1460
-rw-r--r--drivers/platform/x86/classmate-laptop.c1171
-rw-r--r--drivers/platform/x86/compal-laptop.c1022
-rw-r--r--drivers/platform/x86/dell-laptop.c741
-rw-r--r--drivers/platform/x86/dell-smo8800.c233
-rw-r--r--drivers/platform/x86/dell-wmi-aio.c214
-rw-r--r--drivers/platform/x86/dell-wmi.c317
-rw-r--r--drivers/platform/x86/eeepc-laptop.c1650
-rw-r--r--drivers/platform/x86/eeepc-wmi.c278
-rw-r--r--drivers/platform/x86/fujitsu-laptop.c369
-rw-r--r--drivers/platform/x86/fujitsu-tablet.c554
-rw-r--r--drivers/platform/x86/hdaps.c (renamed from drivers/hwmon/hdaps.c)105
-rw-r--r--drivers/platform/x86/hp-wireless.c132
-rw-r--r--drivers/platform/x86/hp-wmi.c1030
-rw-r--r--drivers/platform/x86/hp_accel.c391
-rw-r--r--drivers/platform/x86/ibm_rtl.c328
-rw-r--r--drivers/platform/x86/ideapad-laptop.c959
-rw-r--r--drivers/platform/x86/intel-rst.c166
-rw-r--r--drivers/platform/x86/intel-smartconnect.c60
-rw-r--r--drivers/platform/x86/intel_ips.c1738
-rw-r--r--drivers/platform/x86/intel_ips.h21
-rw-r--r--drivers/platform/x86/intel_menlow.c87
-rw-r--r--drivers/platform/x86/intel_mid_powerbtn.c147
-rw-r--r--drivers/platform/x86/intel_mid_thermal.c570
-rw-r--r--drivers/platform/x86/intel_oaktrail.c394
-rw-r--r--drivers/platform/x86/intel_pmic_gpio.c332
-rw-r--r--drivers/platform/x86/intel_scu_ipc.c688
-rw-r--r--drivers/platform/x86/intel_scu_ipcutil.c121
-rw-r--r--drivers/platform/x86/msi-laptop.c868
-rw-r--r--drivers/platform/x86/msi-wmi.c362
-rw-r--r--drivers/platform/x86/mxm-wmi.c111
-rw-r--r--drivers/platform/x86/panasonic-laptop.c319
-rw-r--r--drivers/platform/x86/pvpanic.c124
-rw-r--r--drivers/platform/x86/samsung-laptop.c1692
-rw-r--r--drivers/platform/x86/samsung-q10.c170
-rw-r--r--drivers/platform/x86/sony-laptop.c3110
-rw-r--r--drivers/platform/x86/tc1100-wmi.c134
-rw-r--r--drivers/platform/x86/thinkpad_acpi.c5876
-rw-r--r--drivers/platform/x86/topstar-laptop.c187
-rw-r--r--drivers/platform/x86/toshiba_acpi.c1850
-rw-r--r--drivers/platform/x86/toshiba_bluetooth.c129
-rw-r--r--drivers/platform/x86/wmi.c501
-rw-r--r--drivers/platform/x86/xo1-rfkill.c84
-rw-r--r--drivers/platform/x86/xo15-ebook.c172
-rw-r--r--drivers/pnp/Makefile6
-rw-r--r--drivers/pnp/base.h14
-rw-r--r--drivers/pnp/card.c7
-rw-r--r--drivers/pnp/core.c20
-rw-r--r--drivers/pnp/driver.c65
-rw-r--r--drivers/pnp/interface.c175
-rw-r--r--drivers/pnp/isapnp/Makefile6
-rw-r--r--drivers/pnp/isapnp/core.c12
-rw-r--r--drivers/pnp/isapnp/proc.c28
-rw-r--r--drivers/pnp/manager.c47
-rw-r--r--drivers/pnp/pnpacpi/Makefile3
-rw-r--r--drivers/pnp/pnpacpi/core.c275
-rw-r--r--drivers/pnp/pnpacpi/pnpacpi.h1
-rw-r--r--drivers/pnp/pnpacpi/rsparser.c335
-rw-r--r--drivers/pnp/pnpbios/Kconfig4
-rw-r--r--drivers/pnp/pnpbios/Makefile5
-rw-r--r--drivers/pnp/pnpbios/bioscalls.c40
-rw-r--r--drivers/pnp/pnpbios/core.c36
-rw-r--r--drivers/pnp/pnpbios/proc.c208
-rw-r--r--drivers/pnp/pnpbios/rsparser.c21
-rw-r--r--drivers/pnp/quirks.c134
-rw-r--r--drivers/pnp/resource.c92
-rw-r--r--drivers/pnp/support.c47
-rw-r--r--drivers/pnp/system.c14
-rw-r--r--drivers/power/88pm860x_battery.c1035
-rw-r--r--drivers/power/88pm860x_charger.c743
-rw-r--r--drivers/power/Kconfig315
-rw-r--r--drivers/power/Makefile58
-rw-r--r--drivers/power/ab8500_bmdata.c605
-rw-r--r--drivers/power/ab8500_btemp.c1219
-rw-r--r--drivers/power/ab8500_charger.c3757
-rw-r--r--drivers/power/ab8500_fg.c3303
-rw-r--r--drivers/power/abx500_chargalg.c2169
-rw-r--r--drivers/power/apm_power.c10
-rw-r--r--drivers/power/avs/Kconfig12
-rw-r--r--drivers/power/avs/Makefile1
-rw-r--r--drivers/power/avs/smartreflex.c1078
-rw-r--r--drivers/power/bq2415x_charger.c1740
-rw-r--r--drivers/power/bq24190_charger.c1549
-rw-r--r--drivers/power/bq24735-charger.c419
-rw-r--r--drivers/power/bq27x00_battery.c967
-rw-r--r--drivers/power/charger-manager.c2117
-rw-r--r--drivers/power/collie_battery.c390
-rw-r--r--drivers/power/da9030_battery.c46
-rw-r--r--drivers/power/da9052-battery.c667
-rw-r--r--drivers/power/ds2760_battery.c288
-rw-r--r--drivers/power/ds2780_battery.c845
-rw-r--r--drivers/power/ds2781_battery.c838
-rw-r--r--drivers/power/ds2782_battery.c473
-rw-r--r--drivers/power/generic-adc-battery.c427
-rw-r--r--drivers/power/goldfish_battery.c236
-rw-r--r--drivers/power/gpio-charger.c207
-rw-r--r--drivers/power/intel_mid_battery.c786
-rw-r--r--drivers/power/isp1704_charger.c543
-rw-r--r--drivers/power/jz4740-battery.c419
-rw-r--r--drivers/power/lp8727_charger.c620
-rw-r--r--drivers/power/lp8788-charger.c751
-rw-r--r--drivers/power/max14577_charger.c311
-rw-r--r--drivers/power/max17040_battery.c298
-rw-r--r--drivers/power/max17042_battery.c847
-rw-r--r--drivers/power/max8903_charger.c380
-rw-r--r--drivers/power/max8925_power.c579
-rw-r--r--drivers/power/max8997_charger.c205
-rw-r--r--drivers/power/max8998_charger.c210
-rw-r--r--drivers/power/olpc_battery.c333
-rw-r--r--drivers/power/pcf50633-charger.c229
-rw-r--r--drivers/power/pda_power.c177
-rw-r--r--drivers/power/pm2301_charger.c1269
-rw-r--r--drivers/power/pm2301_charger.h492
-rw-r--r--drivers/power/pmu_battery.c3
-rw-r--r--drivers/power/power_supply.h11
-rw-r--r--drivers/power/power_supply_core.c558
-rw-r--r--drivers/power/power_supply_leds.c21
-rw-r--r--drivers/power/power_supply_sysfs.c199
-rw-r--r--drivers/power/reset/Kconfig82
-rw-r--r--drivers/power/reset/Makefile10
-rw-r--r--drivers/power/reset/as3722-poweroff.c96
-rw-r--r--drivers/power/reset/axxia-reset.c88
-rw-r--r--drivers/power/reset/gpio-poweroff.c126
-rw-r--r--drivers/power/reset/keystone-reset.c166
-rw-r--r--drivers/power/reset/msm-poweroff.c73
-rw-r--r--drivers/power/reset/qnap-poweroff.c141
-rw-r--r--drivers/power/reset/restart-poweroff.c66
-rw-r--r--drivers/power/reset/sun6i-reboot.c85
-rw-r--r--drivers/power/reset/vexpress-poweroff.c147
-rw-r--r--drivers/power/reset/xgene-reboot.c103
-rw-r--r--drivers/power/rx51_battery.c251
-rw-r--r--drivers/power/s3c_adc_battery.c450
-rw-r--r--drivers/power/sbs-battery.c871
-rw-r--r--drivers/power/smb347-charger.c1326
-rw-r--r--drivers/power/test_power.c505
-rw-r--r--drivers/power/tosa_battery.c104
-rw-r--r--drivers/power/tps65090-charger.c323
-rw-r--r--drivers/power/twl4030_charger.c688
-rw-r--r--drivers/power/twl4030_madc_battery.c245
-rw-r--r--drivers/power/wm831x_backup.c227
-rw-r--r--drivers/power/wm831x_power.c668
-rw-r--r--drivers/power/wm8350_power.c129
-rw-r--r--drivers/power/wm97xx_battery.c117
-rw-r--r--drivers/power/z2_battery.c323
-rw-r--r--drivers/powercap/Kconfig32
-rw-r--r--drivers/powercap/Makefile2
-rw-r--r--drivers/powercap/intel_rapl.c1406
-rw-r--r--drivers/powercap/powercap_sys.c690
-rw-r--r--drivers/pps/Kconfig47
-rw-r--r--drivers/pps/Makefile10
-rw-r--r--drivers/pps/clients/Kconfig41
-rw-r--r--drivers/pps/clients/Makefile10
-rw-r--r--drivers/pps/clients/pps-gpio.c213
-rw-r--r--drivers/pps/clients/pps-ktimer.c101
-rw-r--r--drivers/pps/clients/pps-ldisc.c163
-rw-r--r--drivers/pps/clients/pps_parport.c250
-rw-r--r--drivers/pps/generators/Kconfig13
-rw-r--r--drivers/pps/generators/Makefile9
-rw-r--r--drivers/pps/generators/pps_gen_parport.c277
-rw-r--r--drivers/pps/kapi.c236
-rw-r--r--drivers/pps/kc.c122
-rw-r--r--drivers/pps/kc.h46
-rw-r--r--drivers/pps/pps.c434
-rw-r--r--drivers/pps/sysfs.c113
-rw-r--r--drivers/ps3/Makefile2
-rw-r--r--drivers/ps3/ps3-lpm.c9
-rw-r--r--drivers/ps3/ps3-sys-manager.c6
-rw-r--r--drivers/ps3/ps3-vuart.c7
-rw-r--r--drivers/ps3/ps3av.c49
-rw-r--r--drivers/ps3/ps3av_cmd.c3
-rw-r--r--drivers/ps3/ps3stor_lib.c68
-rw-r--r--drivers/ps3/sys-manager-core.c1
-rw-r--r--drivers/ptp/Kconfig93
-rw-r--r--drivers/ptp/Makefile8
-rw-r--r--drivers/ptp/ptp_chardev.c337
-rw-r--r--drivers/ptp/ptp_clock.c373
-rw-r--r--drivers/ptp/ptp_ixp46x.c343
-rw-r--r--drivers/ptp/ptp_pch.c736
-rw-r--r--drivers/ptp/ptp_private.h101
-rw-r--r--drivers/ptp/ptp_sysfs.c352
-rw-r--r--drivers/pwm/Kconfig295
-rw-r--r--drivers/pwm/Makefile29
-rw-r--r--drivers/pwm/core.c892
-rw-r--r--drivers/pwm/pwm-ab8500.c144
-rw-r--r--drivers/pwm/pwm-atmel-tcb.c449
-rw-r--r--drivers/pwm/pwm-atmel.c401
-rw-r--r--drivers/pwm/pwm-bcm-kona.c318
-rw-r--r--drivers/pwm/pwm-bfin.c160
-rw-r--r--drivers/pwm/pwm-clps711x.c176
-rw-r--r--drivers/pwm/pwm-ep93xx.c230
-rw-r--r--drivers/pwm/pwm-fsl-ftm.c496
-rw-r--r--drivers/pwm/pwm-imx.c307
-rw-r--r--drivers/pwm/pwm-jz4740.c207
-rw-r--r--drivers/pwm/pwm-lp3943.c317
-rw-r--r--drivers/pwm/pwm-lpc32xx.c182
-rw-r--r--drivers/pwm/pwm-lpss.c282
-rw-r--r--drivers/pwm/pwm-mxs.c203
-rw-r--r--drivers/pwm/pwm-pca9685.c300
-rw-r--r--drivers/pwm/pwm-puv3.c156
-rw-r--r--drivers/pwm/pwm-pxa.c238
-rw-r--r--drivers/pwm/pwm-renesas-tpu.c481
-rw-r--r--drivers/pwm/pwm-samsung.c615
-rw-r--r--drivers/pwm/pwm-spear.c267
-rw-r--r--drivers/pwm/pwm-tegra.c251
-rw-r--r--drivers/pwm/pwm-tiecap.c346
-rw-r--r--drivers/pwm/pwm-tiehrpwm.c614
-rw-r--r--drivers/pwm/pwm-tipwmss.c136
-rw-r--r--drivers/pwm/pwm-tipwmss.h39
-rw-r--r--drivers/pwm/pwm-twl-led.c348
-rw-r--r--drivers/pwm/pwm-twl.c352
-rw-r--r--drivers/pwm/pwm-vt8500.c277
-rw-r--r--drivers/pwm/sysfs.c347
-rw-r--r--drivers/rapidio/Kconfig65
-rw-r--r--drivers/rapidio/Makefile8
-rw-r--r--drivers/rapidio/devices/Kconfig10
-rw-r--r--drivers/rapidio/devices/Makefile7
-rw-r--r--drivers/rapidio/devices/tsi721.c2518
-rw-r--r--drivers/rapidio/devices/tsi721.h857
-rw-r--r--drivers/rapidio/devices/tsi721_dma.c883
-rw-r--r--drivers/rapidio/rio-driver.c48
-rw-r--r--drivers/rapidio/rio-scan.c912
-rw-r--r--drivers/rapidio/rio-sysfs.c200
-rw-r--r--drivers/rapidio/rio.c1494
-rw-r--r--drivers/rapidio/rio.h59
-rw-r--r--drivers/rapidio/switches/Kconfig24
-rw-r--r--drivers/rapidio/switches/Makefile5
-rw-r--r--drivers/rapidio/switches/idt_gen2.c495
-rw-r--r--drivers/rapidio/switches/idtcps.c203
-rw-r--r--drivers/rapidio/switches/tsi500.c60
-rw-r--r--drivers/rapidio/switches/tsi568.c199
-rw-r--r--drivers/rapidio/switches/tsi57x.c371
-rw-r--r--drivers/regulator/88pm800.c377
-rw-r--r--drivers/regulator/88pm8607.c442
-rw-r--r--drivers/regulator/Kconfig625
-rw-r--r--drivers/regulator/Makefile84
-rw-r--r--drivers/regulator/aat2870-regulator.c214
-rw-r--r--drivers/regulator/ab3100.c746
-rw-r--r--drivers/regulator/ab8500-ext.c461
-rw-r--r--drivers/regulator/ab8500.c3125
-rw-r--r--drivers/regulator/act8865-regulator.c344
-rw-r--r--drivers/regulator/ad5398.c278
-rw-r--r--drivers/regulator/anatop-regulator.c333
-rw-r--r--drivers/regulator/arizona-ldo1.c311
-rw-r--r--drivers/regulator/arizona-micsupp.c313
-rw-r--r--drivers/regulator/as3711-regulator.c295
-rw-r--r--drivers/regulator/as3722-regulator.c931
-rw-r--r--drivers/regulator/axp20x-regulator.c286
-rw-r--r--drivers/regulator/bcm590xx-regulator.c481
-rw-r--r--drivers/regulator/bq24022.c164
-rw-r--r--drivers/regulator/core.c2761
-rw-r--r--drivers/regulator/da903x.c243
-rw-r--r--drivers/regulator/da9052-regulator.c485
-rw-r--r--drivers/regulator/da9055-regulator.c687
-rw-r--r--drivers/regulator/da9063-regulator.c922
-rw-r--r--drivers/regulator/da9210-regulator.c188
-rw-r--r--drivers/regulator/da9210-regulator.h288
-rw-r--r--drivers/regulator/db8500-prcmu.c558
-rw-r--r--drivers/regulator/dbx500-prcmu.c238
-rw-r--r--drivers/regulator/dbx500-prcmu.h61
-rw-r--r--drivers/regulator/devres.c415
-rw-r--r--drivers/regulator/dummy.c94
-rw-r--r--drivers/regulator/dummy.h27
-rw-r--r--drivers/regulator/fan53555.c309
-rw-r--r--drivers/regulator/fixed-helper.c61
-rw-r--r--drivers/regulator/fixed.c199
-rw-r--r--drivers/regulator/gpio-regulator.c411
-rw-r--r--drivers/regulator/helpers.c467
-rw-r--r--drivers/regulator/internal.h38
-rw-r--r--drivers/regulator/isl6271a-regulator.c180
-rw-r--r--drivers/regulator/lp3971.c465
-rw-r--r--drivers/regulator/lp3972.c573
-rw-r--r--drivers/regulator/lp872x.c992
-rw-r--r--drivers/regulator/lp8755.c566
-rw-r--r--drivers/regulator/lp8788-buck.c555
-rw-r--r--drivers/regulator/lp8788-ldo.c641
-rw-r--r--drivers/regulator/ltc3589.c554
-rw-r--r--drivers/regulator/max14577.c476
-rw-r--r--drivers/regulator/max1586.c251
-rw-r--r--drivers/regulator/max77686.c523
-rw-r--r--drivers/regulator/max77693.c280
-rw-r--r--drivers/regulator/max8649.c275
-rw-r--r--drivers/regulator/max8660.c542
-rw-r--r--drivers/regulator/max8907-regulator.c391
-rw-r--r--drivers/regulator/max8925-regulator.c347
-rw-r--r--drivers/regulator/max8952.c357
-rw-r--r--drivers/regulator/max8973-regulator.c507
-rw-r--r--drivers/regulator/max8997.c1241
-rw-r--r--drivers/regulator/max8998.c917
-rw-r--r--drivers/regulator/mc13783-regulator.c482
-rw-r--r--drivers/regulator/mc13892-regulator.c653
-rw-r--r--drivers/regulator/mc13xxx-regulator-core.c244
-rw-r--r--drivers/regulator/mc13xxx.h113
-rw-r--r--drivers/regulator/of_regulator.c191
-rw-r--r--drivers/regulator/palmas-regulator.c1147
-rw-r--r--drivers/regulator/pbias-regulator.c198
-rw-r--r--drivers/regulator/pcap-regulator.c282
-rw-r--r--drivers/regulator/pcf50633-regulator.c297
-rw-r--r--drivers/regulator/pfuze100-regulator.c540
-rw-r--r--drivers/regulator/rc5t583-regulator.c202
-rw-r--r--drivers/regulator/s2mpa01.c482
-rw-r--r--drivers/regulator/s2mps11.c770
-rw-r--r--drivers/regulator/s5m8767.c1012
-rw-r--r--drivers/regulator/st-pwm.c190
-rw-r--r--drivers/regulator/stw481x-vmmc.c103
-rw-r--r--drivers/regulator/ti-abb-regulator.c902
-rw-r--r--drivers/regulator/tps51632-regulator.c383
-rw-r--r--drivers/regulator/tps6105x-regulator.c186
-rw-r--r--drivers/regulator/tps62360-regulator.c537
-rw-r--r--drivers/regulator/tps65023-regulator.c436
-rw-r--r--drivers/regulator/tps6507x-regulator.c542
-rw-r--r--drivers/regulator/tps65090-regulator.c522
-rw-r--r--drivers/regulator/tps65217-regulator.c287
-rw-r--r--drivers/regulator/tps65218-regulator.c269
-rw-r--r--drivers/regulator/tps6524x-regulator.c641
-rw-r--r--drivers/regulator/tps6586x-regulator.c538
-rw-r--r--drivers/regulator/tps65910-regulator.c1278
-rw-r--r--drivers/regulator/tps65912-regulator.c542
-rw-r--r--drivers/regulator/tps80031-regulator.c769
-rw-r--r--drivers/regulator/twl-regulator.c1252
-rw-r--r--drivers/regulator/userspace-consumer.c186
-rw-r--r--drivers/regulator/vexpress.c120
-rw-r--r--drivers/regulator/virtual.c169
-rw-r--r--drivers/regulator/wm831x-dcdc.c926
-rw-r--r--drivers/regulator/wm831x-isink.c252
-rw-r--r--drivers/regulator/wm831x-ldo.c692
-rw-r--r--drivers/regulator/wm8350-regulator.c546
-rw-r--r--drivers/regulator/wm8400-regulator.c234
-rw-r--r--drivers/regulator/wm8994-regulator.c198
-rw-r--r--drivers/remoteproc/Kconfig67
-rw-r--r--drivers/remoteproc/Makefile12
-rw-r--r--drivers/remoteproc/da8xx_remoteproc.c310
-rw-r--r--drivers/remoteproc/omap_remoteproc.c238
-rw-r--r--drivers/remoteproc/omap_remoteproc.h69
-rw-r--r--drivers/remoteproc/remoteproc_core.c1430
-rw-r--r--drivers/remoteproc/remoteproc_debugfs.c252
-rw-r--r--drivers/remoteproc/remoteproc_elf_loader.c337
-rw-r--r--drivers/remoteproc/remoteproc_internal.h120
-rw-r--r--drivers/remoteproc/remoteproc_virtio.c358
-rw-r--r--drivers/remoteproc/ste_modem_rproc.c342
-rw-r--r--drivers/reset/Kconfig15
-rw-r--r--drivers/reset/Makefile4
-rw-r--r--drivers/reset/core.c290
-rw-r--r--drivers/reset/reset-socfpga.c146
-rw-r--r--drivers/reset/reset-sunxi.c190
-rw-r--r--drivers/reset/sti/Kconfig15
-rw-r--r--drivers/reset/sti/Makefile4
-rw-r--r--drivers/reset/sti/reset-stih415.c113
-rw-r--r--drivers/reset/sti/reset-stih416.c144
-rw-r--r--drivers/reset/sti/reset-syscfg.c186
-rw-r--r--drivers/reset/sti/reset-syscfg.h69
-rw-r--r--drivers/rpmsg/Kconfig9
-rw-r--r--drivers/rpmsg/Makefile1
-rw-r--r--drivers/rpmsg/virtio_rpmsg_bus.c1114
-rw-r--r--drivers/rtc/Kconfig761
-rw-r--r--drivers/rtc/Makefile86
-rw-r--r--drivers/rtc/class.c242
-rw-r--r--drivers/rtc/hctosys.c57
-rw-r--r--drivers/rtc/interface.c557
-rw-r--r--drivers/rtc/rtc-88pm80x.c367
-rw-r--r--drivers/rtc/rtc-88pm860x.c462
-rw-r--r--drivers/rtc/rtc-ab3100.c254
-rw-r--r--drivers/rtc/rtc-ab8500.c531
-rw-r--r--drivers/rtc/rtc-as3722.c261
-rw-r--r--drivers/rtc/rtc-at32ap700x.c79
-rw-r--r--drivers/rtc/rtc-at91rm9200.c325
-rw-r--r--drivers/rtc/rtc-at91rm9200.h75
-rw-r--r--drivers/rtc/rtc-at91sam9.c212
-rw-r--r--drivers/rtc/rtc-au1xxx.c30
-rw-r--r--drivers/rtc/rtc-bfin.c167
-rw-r--r--drivers/rtc/rtc-bq32k.c185
-rw-r--r--drivers/rtc/rtc-bq4802.c56
-rw-r--r--drivers/rtc/rtc-cmos.c531
-rw-r--r--drivers/rtc/rtc-coh901331.c282
-rw-r--r--drivers/rtc/rtc-da9052.c277
-rw-r--r--drivers/rtc/rtc-da9055.c404
-rw-r--r--drivers/rtc/rtc-da9063.c333
-rw-r--r--drivers/rtc/rtc-davinci.c561
-rw-r--r--drivers/rtc/rtc-dev.c61
-rw-r--r--drivers/rtc/rtc-dm355evm.c156
-rw-r--r--drivers/rtc/rtc-ds1216.c64
-rw-r--r--drivers/rtc/rtc-ds1286.c114
-rw-r--r--drivers/rtc/rtc-ds1302.c176
-rw-r--r--drivers/rtc/rtc-ds1305.c165
-rw-r--r--drivers/rtc/rtc-ds1307.c791
-rw-r--r--drivers/rtc/rtc-ds1343.c689
-rw-r--r--drivers/rtc/rtc-ds1347.c166
-rw-r--r--drivers/rtc/rtc-ds1374.c131
-rw-r--r--drivers/rtc/rtc-ds1390.c43
-rw-r--r--drivers/rtc/rtc-ds1511.c281
-rw-r--r--drivers/rtc/rtc-ds1553.c172
-rw-r--r--drivers/rtc/rtc-ds1672.c65
-rw-r--r--drivers/rtc/rtc-ds1742.c137
-rw-r--r--drivers/rtc/rtc-ds2404.c285
-rw-r--r--drivers/rtc/rtc-ds3232.c513
-rw-r--r--drivers/rtc/rtc-ds3234.c32
-rw-r--r--drivers/rtc/rtc-efi.c215
-rw-r--r--drivers/rtc/rtc-em3027.c151
-rw-r--r--drivers/rtc/rtc-ep93xx.c147
-rw-r--r--drivers/rtc/rtc-fm3130.c258
-rw-r--r--drivers/rtc/rtc-generic.c63
-rw-r--r--drivers/rtc/rtc-hid-sensor-time.c343
-rw-r--r--drivers/rtc/rtc-hym8563.c612
-rw-r--r--drivers/rtc/rtc-imxdi.c513
-rw-r--r--drivers/rtc/rtc-isl12022.c293
-rw-r--r--drivers/rtc/rtc-isl12057.c306
-rw-r--r--drivers/rtc/rtc-isl1208.c274
-rw-r--r--drivers/rtc/rtc-jz4740.c312
-rw-r--r--drivers/rtc/rtc-lib.c37
-rw-r--r--drivers/rtc/rtc-lp8788.c327
-rw-r--r--drivers/rtc/rtc-lpc32xx.c393
-rw-r--r--drivers/rtc/rtc-ls1x.c199
-rw-r--r--drivers/rtc/rtc-m41t80.c348
-rw-r--r--drivers/rtc/rtc-m41t93.c210
-rw-r--r--drivers/rtc/rtc-m41t94.c35
-rw-r--r--drivers/rtc/rtc-m48t35.c74
-rw-r--r--drivers/rtc/rtc-m48t59.c127
-rw-r--r--drivers/rtc/rtc-m48t86.c44
-rw-r--r--drivers/rtc/rtc-max6900.c39
-rw-r--r--drivers/rtc/rtc-max6902.c56
-rw-r--r--drivers/rtc/rtc-max77686.c616
-rw-r--r--drivers/rtc/rtc-max8907.c225
-rw-r--r--drivers/rtc/rtc-max8925.c328
-rw-r--r--drivers/rtc/rtc-max8997.c537
-rw-r--r--drivers/rtc/rtc-max8998.c327
-rw-r--r--drivers/rtc/rtc-mc13xxx.c381
-rw-r--r--drivers/rtc/rtc-mcp795.c199
-rw-r--r--drivers/rtc/rtc-moxart.c328
-rw-r--r--drivers/rtc/rtc-mpc5121.c424
-rw-r--r--drivers/rtc/rtc-mrst.c542
-rw-r--r--drivers/rtc/rtc-msm6242.c237
-rw-r--r--drivers/rtc/rtc-mv.c239
-rw-r--r--drivers/rtc/rtc-mxc.c504
-rw-r--r--drivers/rtc/rtc-nuc900.c274
-rw-r--r--drivers/rtc/rtc-omap.c324
-rw-r--r--drivers/rtc/rtc-palmas.c378
-rw-r--r--drivers/rtc/rtc-parisc.c112
-rw-r--r--drivers/rtc/rtc-pcap.c195
-rw-r--r--drivers/rtc/rtc-pcf2123.c357
-rw-r--r--drivers/rtc/rtc-pcf2127.c232
-rw-r--r--drivers/rtc/rtc-pcf50633.c91
-rw-r--r--drivers/rtc/rtc-pcf8523.c347
-rw-r--r--drivers/rtc/rtc-pcf8563.c125
-rw-r--r--drivers/rtc/rtc-pcf8583.c51
-rw-r--r--drivers/rtc/rtc-pl030.c37
-rw-r--r--drivers/rtc/rtc-pl031.c394
-rw-r--r--drivers/rtc/rtc-pm8xxx.c499
-rw-r--r--drivers/rtc/rtc-ppc.c69
-rw-r--r--drivers/rtc/rtc-proc.c48
-rw-r--r--drivers/rtc/rtc-ps3.c86
-rw-r--r--drivers/rtc/rtc-puv3.c340
-rw-r--r--drivers/rtc/rtc-pxa.c168
-rw-r--r--drivers/rtc/rtc-r9701.c62
-rw-r--r--drivers/rtc/rtc-rc5t583.c322
-rw-r--r--drivers/rtc/rtc-rp5c01.c286
-rw-r--r--drivers/rtc/rtc-rs5c313.c69
-rw-r--r--drivers/rtc/rtc-rs5c348.c48
-rw-r--r--drivers/rtc/rtc-rs5c372.c117
-rw-r--r--drivers/rtc/rtc-rv3029c2.c427
-rw-r--r--drivers/rtc/rtc-rx4581.c305
-rw-r--r--drivers/rtc/rtc-rx8025.c642
-rw-r--r--drivers/rtc/rtc-rx8581.c130
-rw-r--r--drivers/rtc/rtc-s35390a.c158
-rw-r--r--drivers/rtc/rtc-s3c.c539
-rw-r--r--drivers/rtc/rtc-s3c.h70
-rw-r--r--drivers/rtc/rtc-s5m.c848
-rw-r--r--drivers/rtc/rtc-sa1100.c415
-rw-r--r--drivers/rtc/rtc-sh.c469
-rw-r--r--drivers/rtc/rtc-sirfsoc.c423
-rw-r--r--drivers/rtc/rtc-snvs.c340
-rw-r--r--drivers/rtc/rtc-spear.c509
-rw-r--r--drivers/rtc/rtc-starfire.c29
-rw-r--r--drivers/rtc/rtc-stk17ta8.c161
-rw-r--r--drivers/rtc/rtc-stmp3xxx.c355
-rw-r--r--drivers/rtc/rtc-sun4v.c38
-rw-r--r--drivers/rtc/rtc-sunxi.c523
-rw-r--r--drivers/rtc/rtc-sysfs.c81
-rw-r--r--drivers/rtc/rtc-tegra.c433
-rw-r--r--drivers/rtc/rtc-test.c73
-rw-r--r--drivers/rtc/rtc-tile.c147
-rw-r--r--drivers/rtc/rtc-tps6586x.c351
-rw-r--r--drivers/rtc/rtc-tps65910.c338
-rw-r--r--drivers/rtc/rtc-tps80031.c338
-rw-r--r--drivers/rtc/rtc-twl.c621
-rw-r--r--drivers/rtc/rtc-twl4030.c542
-rw-r--r--drivers/rtc/rtc-tx4939.c90
-rw-r--r--drivers/rtc/rtc-v3020.c283
-rw-r--r--drivers/rtc/rtc-vr41xx.c158
-rw-r--r--drivers/rtc/rtc-vt8500.c290
-rw-r--r--drivers/rtc/rtc-wm831x.c487
-rw-r--r--drivers/rtc/rtc-wm8350.c115
-rw-r--r--drivers/rtc/rtc-x1205.c210
-rw-r--r--drivers/rtc/rtc-xgene.c278
-rw-r--r--drivers/rtc/systohc.c44
-rw-r--r--drivers/s390/Makefile3
-rw-r--r--drivers/s390/block/Kconfig42
-rw-r--r--drivers/s390/block/Makefile6
-rw-r--r--drivers/s390/block/dasd.c2227
-rw-r--r--drivers/s390/block/dasd_3990_erp.c989
-rw-r--r--drivers/s390/block/dasd_alias.c218
-rw-r--r--drivers/s390/block/dasd_devmap.c617
-rw-r--r--drivers/s390/block/dasd_diag.c160
-rw-r--r--drivers/s390/block/dasd_diag.h7
-rw-r--r--drivers/s390/block/dasd_eckd.c3277
-rw-r--r--drivers/s390/block/dasd_eckd.h83
-rw-r--r--drivers/s390/block/dasd_eer.c46
-rw-r--r--drivers/s390/block/dasd_erp.c49
-rw-r--r--drivers/s390/block/dasd_fba.c213
-rw-r--r--drivers/s390/block/dasd_fba.h3
-rw-r--r--drivers/s390/block/dasd_genhd.c19
-rw-r--r--drivers/s390/block/dasd_int.h243
-rw-r--r--drivers/s390/block/dasd_ioctl.c326
-rw-r--r--drivers/s390/block/dasd_proc.c254
-rw-r--r--drivers/s390/block/dcssblk.c252
-rw-r--r--drivers/s390/block/scm_blk.c493
-rw-r--r--drivers/s390/block/scm_blk.h134
-rw-r--r--drivers/s390/block/scm_blk_cluster.c230
-rw-r--r--drivers/s390/block/scm_drv.c92
-rw-r--r--drivers/s390/block/xpram.c106
-rw-r--r--drivers/s390/char/Kconfig97
-rw-r--r--drivers/s390/char/Makefile8
-rw-r--r--drivers/s390/char/con3215.c442
-rw-r--r--drivers/s390/char/con3270.c79
-rw-r--r--drivers/s390/char/ctrlchar.c7
-rw-r--r--drivers/s390/char/ctrlchar.h3
-rw-r--r--drivers/s390/char/fs3270.c87
-rw-r--r--drivers/s390/char/keyboard.c64
-rw-r--r--drivers/s390/char/keyboard.h19
-rw-r--r--drivers/s390/char/monreader.c159
-rw-r--r--drivers/s390/char/monwriter.c115
-rw-r--r--drivers/s390/char/raw3270.c778
-rw-r--r--drivers/s390/char/raw3270.h27
-rw-r--r--drivers/s390/char/sclp.c476
-rw-r--r--drivers/s390/char/sclp.h78
-rw-r--r--drivers/s390/char/sclp_async.c211
-rw-r--r--drivers/s390/char/sclp_cmd.c316
-rw-r--r--drivers/s390/char/sclp_con.c176
-rw-r--r--drivers/s390/char/sclp_config.c27
-rw-r--r--drivers/s390/char/sclp_cpi.c1
-rw-r--r--drivers/s390/char/sclp_cpi_sys.c4
-rw-r--r--drivers/s390/char/sclp_cpi_sys.h1
-rw-r--r--drivers/s390/char/sclp_ctl.c144
-rw-r--r--drivers/s390/char/sclp_early.c315
-rw-r--r--drivers/s390/char/sclp_ocf.c144
-rw-r--r--drivers/s390/char/sclp_quiesce.c57
-rw-r--r--drivers/s390/char/sclp_rw.c22
-rw-r--r--drivers/s390/char/sclp_rw.h17
-rw-r--r--drivers/s390/char/sclp_sdias.c178
-rw-r--r--drivers/s390/char/sclp_sdias.h46
-rw-r--r--drivers/s390/char/sclp_tty.c165
-rw-r--r--drivers/s390/char/sclp_tty.h3
-rw-r--r--drivers/s390/char/sclp_vt220.c261
-rw-r--r--drivers/s390/char/tape.h69
-rw-r--r--drivers/s390/char/tape_34xx.c385
-rw-r--r--drivers/s390/char/tape_3590.c615
-rw-r--r--drivers/s390/char/tape_3590.h3
-rw-r--r--drivers/s390/char/tape_block.c488
-rw-r--r--drivers/s390/char/tape_char.c110
-rw-r--r--drivers/s390/char/tape_class.c13
-rw-r--r--drivers/s390/char/tape_class.h5
-rw-r--r--drivers/s390/char/tape_core.c293
-rw-r--r--drivers/s390/char/tape_proc.c11
-rw-r--r--drivers/s390/char/tape_std.c41
-rw-r--r--drivers/s390/char/tape_std.h7
-rw-r--r--drivers/s390/char/tty3270.c388
-rw-r--r--drivers/s390/char/tty3270.h2
-rw-r--r--drivers/s390/char/vmcp.c60
-rw-r--r--drivers/s390/char/vmcp.h2
-rw-r--r--drivers/s390/char/vmlogrdr.c139
-rw-r--r--drivers/s390/char/vmur.c84
-rw-r--r--drivers/s390/char/vmwatchdog.c255
-rw-r--r--drivers/s390/char/zcore.c480
-rw-r--r--drivers/s390/cio/Makefile8
-rw-r--r--drivers/s390/cio/airq.c332
-rw-r--r--drivers/s390/cio/blacklist.c66
-rw-r--r--drivers/s390/cio/ccwgroup.c606
-rw-r--r--drivers/s390/cio/ccwreq.c367
-rw-r--r--drivers/s390/cio/chp.c134
-rw-r--r--drivers/s390/cio/chp.h18
-rw-r--r--drivers/s390/cio/chsc.c721
-rw-r--r--drivers/s390/cio/chsc.h210
-rw-r--r--drivers/s390/cio/chsc_sch.c255
-rw-r--r--drivers/s390/cio/cio.c482
-rw-r--r--drivers/s390/cio/cio.h42
-rw-r--r--drivers/s390/cio/cmf.c23
-rw-r--r--drivers/s390/cio/crw.c161
-rw-r--r--drivers/s390/cio/css.c712
-rw-r--r--drivers/s390/cio/css.h37
-rw-r--r--drivers/s390/cio/device.c1854
-rw-r--r--drivers/s390/cio/device.h54
-rw-r--r--drivers/s390/cio/device_fsm.c668
-rw-r--r--drivers/s390/cio/device_id.c375
-rw-r--r--drivers/s390/cio/device_ops.c293
-rw-r--r--drivers/s390/cio/device_pgid.c1045
-rw-r--r--drivers/s390/cio/device_status.c8
-rw-r--r--drivers/s390/cio/eadm_sch.c418
-rw-r--r--drivers/s390/cio/eadm_sch.h22
-rw-r--r--drivers/s390/cio/fcx.c4
-rw-r--r--drivers/s390/cio/idset.c29
-rw-r--r--drivers/s390/cio/idset.h7
-rw-r--r--drivers/s390/cio/io_sch.h206
-rw-r--r--drivers/s390/cio/ioasm.h49
-rw-r--r--drivers/s390/cio/itcw.c64
-rw-r--r--drivers/s390/cio/orb.h91
-rw-r--r--drivers/s390/cio/qdio.h278
-rw-r--r--drivers/s390/cio/qdio_debug.c300
-rw-r--r--drivers/s390/cio/qdio_debug.h53
-rw-r--r--drivers/s390/cio/qdio_main.c1340
-rw-r--r--drivers/s390/cio/qdio_perf.c159
-rw-r--r--drivers/s390/cio/qdio_perf.h59
-rw-r--r--drivers/s390/cio/qdio_setup.c202
-rw-r--r--drivers/s390/cio/qdio_thinint.c340
-rw-r--r--drivers/s390/cio/scm.c288
-rw-r--r--drivers/s390/cio/scsw.c843
-rw-r--r--drivers/s390/crypto/Makefile13
-rw-r--r--drivers/s390/crypto/ap_bus.c579
-rw-r--r--drivers/s390/crypto/ap_bus.h76
-rw-r--r--drivers/s390/crypto/zcrypt_api.c490
-rw-r--r--drivers/s390/crypto/zcrypt_api.h28
-rw-r--r--drivers/s390/crypto/zcrypt_cca_key.h4
-rw-r--r--drivers/s390/crypto/zcrypt_cex2a.c386
-rw-r--r--drivers/s390/crypto/zcrypt_cex2a.h29
-rw-r--r--drivers/s390/crypto/zcrypt_cex4.c167
-rw-r--r--drivers/s390/crypto/zcrypt_cex4.h12
-rw-r--r--drivers/s390/crypto/zcrypt_debug.h53
-rw-r--r--drivers/s390/crypto/zcrypt_error.h23
-rw-r--r--drivers/s390/crypto/zcrypt_mono.c100
-rw-r--r--drivers/s390/crypto/zcrypt_msgtype50.c529
-rw-r--r--drivers/s390/crypto/zcrypt_msgtype50.h41
-rw-r--r--drivers/s390/crypto/zcrypt_msgtype6.c1152
-rw-r--r--drivers/s390/crypto/zcrypt_msgtype6.h171
-rw-r--r--drivers/s390/crypto/zcrypt_pcica.c30
-rw-r--r--drivers/s390/crypto/zcrypt_pcica.h4
-rw-r--r--drivers/s390/crypto/zcrypt_pcicc.c33
-rw-r--r--drivers/s390/crypto/zcrypt_pcicc.h4
-rw-r--r--drivers/s390/crypto/zcrypt_pcixcc.c811
-rw-r--r--drivers/s390/crypto/zcrypt_pcixcc.h5
-rw-r--r--drivers/s390/ebcdic.c246
-rw-r--r--drivers/s390/kvm/Makefile2
-rw-r--r--drivers/s390/kvm/kvm_virtio.c201
-rw-r--r--drivers/s390/kvm/virtio_ccw.c1254
-rw-r--r--drivers/s390/net/Kconfig80
-rw-r--r--drivers/s390/net/Makefile11
-rw-r--r--drivers/s390/net/claw.c892
-rw-r--r--drivers/s390/net/claw.h24
-rw-r--r--drivers/s390/net/ctcm_dbug.c5
-rw-r--r--drivers/s390/net/ctcm_dbug.h2
-rw-r--r--drivers/s390/net/ctcm_fsms.c83
-rw-r--r--drivers/s390/net/ctcm_fsms.h3
-rw-r--r--drivers/s390/net/ctcm_main.c367
-rw-r--r--drivers/s390/net/ctcm_main.h34
-rw-r--r--drivers/s390/net/ctcm_mpc.c118
-rw-r--r--drivers/s390/net/ctcm_mpc.h3
-rw-r--r--drivers/s390/net/ctcm_sysfs.c85
-rw-r--r--drivers/s390/net/cu3088.c148
-rw-r--r--drivers/s390/net/cu3088.h41
-rw-r--r--drivers/s390/net/fsm.c2
-rw-r--r--drivers/s390/net/fsm.h4
-rw-r--r--drivers/s390/net/lcs.c364
-rw-r--r--drivers/s390/net/lcs.h30
-rw-r--r--drivers/s390/net/netiucv.c503
-rw-r--r--drivers/s390/net/qeth_core.h276
-rw-r--r--drivers/s390/net/qeth_core_main.c3141
-rw-r--r--drivers/s390/net/qeth_core_mpc.c8
-rw-r--r--drivers/s390/net/qeth_core_mpc.h300
-rw-r--r--drivers/s390/net/qeth_core_offl.c699
-rw-r--r--drivers/s390/net/qeth_core_offl.h76
-rw-r--r--drivers/s390/net/qeth_core_sys.c369
-rw-r--r--drivers/s390/net/qeth_l2.h15
-rw-r--r--drivers/s390/net/qeth_l2_main.c1373
-rw-r--r--drivers/s390/net/qeth_l2_sys.c223
-rw-r--r--drivers/s390/net/qeth_l3.h9
-rw-r--r--drivers/s390/net/qeth_l3_main.c1872
-rw-r--r--drivers/s390/net/qeth_l3_sys.c380
-rw-r--r--drivers/s390/net/smsgiucv.c93
-rw-r--r--drivers/s390/net/smsgiucv.h10
-rw-r--r--drivers/s390/net/smsgiucv_app.c218
-rw-r--r--drivers/s390/s390mach.c538
-rw-r--r--drivers/s390/s390mach.h122
-rw-r--r--drivers/s390/scsi/Makefile5
-rw-r--r--drivers/s390/scsi/zfcp_aux.c648
-rw-r--r--drivers/s390/scsi/zfcp_ccw.c346
-rw-r--r--drivers/s390/scsi/zfcp_cfdc.c251
-rw-r--r--drivers/s390/scsi/zfcp_dbf.c1521
-rw-r--r--drivers/s390/scsi/zfcp_dbf.h529
-rw-r--r--drivers/s390/scsi/zfcp_def.h612
-rw-r--r--drivers/s390/scsi/zfcp_erp.c1194
-rw-r--r--drivers/s390/scsi/zfcp_ext.h211
-rw-r--r--drivers/s390/scsi/zfcp_fc.c1062
-rw-r--r--drivers/s390/scsi/zfcp_fc.h297
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c1989
-rw-r--r--drivers/s390/scsi/zfcp_fsf.h117
-rw-r--r--drivers/s390/scsi/zfcp_qdio.c601
-rw-r--r--drivers/s390/scsi/zfcp_qdio.h271
-rw-r--r--drivers/s390/scsi/zfcp_reqlist.h183
-rw-r--r--drivers/s390/scsi/zfcp_scsi.c610
-rw-r--r--drivers/s390/scsi/zfcp_sysfs.c458
-rw-r--r--drivers/s390/scsi/zfcp_unit.c255
-rw-r--r--drivers/s390/sysinfo.c469
-rw-r--r--drivers/sbus/char/Kconfig7
-rw-r--r--drivers/sbus/char/bbc_envctrl.c86
-rw-r--r--drivers/sbus/char/bbc_i2c.c72
-rw-r--r--drivers/sbus/char/bbc_i2c.h10
-rw-r--r--drivers/sbus/char/display7seg.c48
-rw-r--r--drivers/sbus/char/envctrl.c47
-rw-r--r--drivers/sbus/char/flash.c56
-rw-r--r--drivers/sbus/char/jsflash.c72
-rw-r--r--drivers/sbus/char/max1617.h2
-rw-r--r--drivers/sbus/char/openprom.c73
-rw-r--r--drivers/sbus/char/uctrl.c48
-rw-r--r--drivers/scsi/3w-9xxx.c181
-rw-r--r--drivers/scsi/3w-9xxx.h13
-rw-r--r--drivers/scsi/3w-sas.c1932
-rw-r--r--drivers/scsi/3w-sas.h396
-rw-r--r--drivers/scsi/3w-xxxx.c67
-rw-r--r--drivers/scsi/3w-xxxx.h12
-rw-r--r--drivers/scsi/53c700.c22
-rw-r--r--drivers/scsi/53c700.scr2
-rw-r--r--drivers/scsi/53c700_d.h_shipped2
-rw-r--r--drivers/scsi/BusLogic.c4518
-rw-r--r--drivers/scsi/BusLogic.h1488
-rw-r--r--drivers/scsi/FlashPoint.c632
-rw-r--r--drivers/scsi/Kconfig371
-rw-r--r--drivers/scsi/Makefile39
-rw-r--r--drivers/scsi/NCR5380.c220
-rw-r--r--drivers/scsi/NCR5380.h40
-rw-r--r--drivers/scsi/NCR53c406a.c4
-rw-r--r--drivers/scsi/NCR_D700.c15
-rw-r--r--drivers/scsi/NCR_Q720.c3
-rw-r--r--drivers/scsi/a100u2w.c19
-rw-r--r--drivers/scsi/a2091.c396
-rw-r--r--drivers/scsi/a2091.h49
-rw-r--r--drivers/scsi/a3000.c379
-rw-r--r--drivers/scsi/a3000.h53
-rw-r--r--drivers/scsi/a4000t.c100
-rw-r--r--drivers/scsi/aacraid/Makefile4
-rw-r--r--drivers/scsi/aacraid/aachba.c487
-rw-r--r--drivers/scsi/aacraid/aacraid.h226
-rw-r--r--drivers/scsi/aacraid/commctrl.c46
-rw-r--r--drivers/scsi/aacraid/comminit.c126
-rw-r--r--drivers/scsi/aacraid/commsup.c207
-rw-r--r--drivers/scsi/aacraid/dpcsup.c127
-rw-r--r--drivers/scsi/aacraid/linit.c130
-rw-r--r--drivers/scsi/aacraid/nark.c7
-rw-r--r--drivers/scsi/aacraid/rkt.c5
-rw-r--r--drivers/scsi/aacraid/rx.c51
-rw-r--r--drivers/scsi/aacraid/sa.c14
-rw-r--r--drivers/scsi/aacraid/src.c833
-rw-r--r--drivers/scsi/advansys.c3120
-rw-r--r--drivers/scsi/aha152x.c94
-rw-r--r--drivers/scsi/aha1542.c101
-rw-r--r--drivers/scsi/aha1542.h2
-rw-r--r--drivers/scsi/aha1740.c43
-rw-r--r--drivers/scsi/aic7xxx/Kconfig.aic79xx3
-rw-r--r--drivers/scsi/aic7xxx/Kconfig.aic7xxx3
-rw-r--r--drivers/scsi/aic7xxx/aic7770.c12
-rw-r--r--drivers/scsi/aic7xxx/aic7770_osm.c2
-rw-r--r--drivers/scsi/aic7xxx/aic79xx.h8
-rw-r--r--drivers/scsi/aic7xxx/aic79xx.reg24
-rw-r--r--drivers/scsi/aic7xxx/aic79xx.seq22
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_core.c713
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_inline.h32
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.c144
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm.h121
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_osm_pci.c20
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_pci.c78
-rw-r--r--drivers/scsi/aic7xxx/aic79xx_proc.c176
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx.h6
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx.reg2
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx.seq12
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_93cx6.c10
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_core.c450
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_inline.h5
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_osm.c114
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_osm.h123
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_osm_pci.c12
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_pci.c92
-rw-r--r--drivers/scsi/aic7xxx/aic7xxx_proc.c168
-rw-r--r--drivers/scsi/aic7xxx/aicasm/aicasm.c2
-rw-r--r--drivers/scsi/aic7xxx/aicasm/aicasm_gram.y8
-rw-r--r--drivers/scsi/aic7xxx/aicasm/aicasm_insformat.h1
-rw-r--r--drivers/scsi/aic7xxx/aicasm/aicasm_macro_gram.y2
-rw-r--r--drivers/scsi/aic7xxx/aicasm/aicasm_symbol.c2
-rw-r--r--drivers/scsi/aic7xxx/aicasm/aicasm_symbol.h2
-rw-r--r--drivers/scsi/aic7xxx/aiclib.h4
-rw-r--r--drivers/scsi/aic7xxx_old.c11165
-rw-r--r--drivers/scsi/aic7xxx_old/aic7xxx.h28
-rw-r--r--drivers/scsi/aic7xxx_old/aic7xxx.reg1401
-rw-r--r--drivers/scsi/aic7xxx_old/aic7xxx.seq1539
-rw-r--r--drivers/scsi/aic7xxx_old/aic7xxx_proc.c373
-rw-r--r--drivers/scsi/aic7xxx_old/aic7xxx_reg.h629
-rw-r--r--drivers/scsi/aic7xxx_old/aic7xxx_seq.c817
-rw-r--r--drivers/scsi/aic7xxx_old/scsi_message.h49
-rw-r--r--drivers/scsi/aic7xxx_old/sequencer.h135
-rw-r--r--drivers/scsi/aic94xx/Makefile4
-rw-r--r--drivers/scsi/aic94xx/aic94xx.h2
-rw-r--r--drivers/scsi/aic94xx/aic94xx_dev.c60
-rw-r--r--drivers/scsi/aic94xx/aic94xx_dump.c2
-rw-r--r--drivers/scsi/aic94xx/aic94xx_hwi.c3
-rw-r--r--drivers/scsi/aic94xx/aic94xx_init.c44
-rw-r--r--drivers/scsi/aic94xx/aic94xx_reg_def.h8
-rw-r--r--drivers/scsi/aic94xx/aic94xx_scb.c4
-rw-r--r--drivers/scsi/aic94xx/aic94xx_sds.c1
-rw-r--r--drivers/scsi/aic94xx/aic94xx_seq.c14
-rw-r--r--drivers/scsi/aic94xx/aic94xx_task.c7
-rw-r--r--drivers/scsi/aic94xx/aic94xx_tmf.c14
-rw-r--r--drivers/scsi/arcmsr/arcmsr.h331
-rw-r--r--drivers/scsi/arcmsr/arcmsr_attr.c11
-rw-r--r--drivers/scsi/arcmsr/arcmsr_hba.c2392
-rw-r--r--drivers/scsi/arm/Kconfig10
-rw-r--r--drivers/scsi/arm/acornscsi.c129
-rw-r--r--drivers/scsi/arm/acornscsi.h6
-rw-r--r--drivers/scsi/arm/arxescsi.c49
-rw-r--r--drivers/scsi/arm/cumana_1.c15
-rw-r--r--drivers/scsi/arm/cumana_2.c58
-rw-r--r--drivers/scsi/arm/eesox.c54
-rw-r--r--drivers/scsi/arm/fas216.c53
-rw-r--r--drivers/scsi/arm/fas216.h38
-rw-r--r--drivers/scsi/arm/oak.c18
-rw-r--r--drivers/scsi/arm/powertec.c44
-rw-r--r--drivers/scsi/atari_NCR5380.c356
-rw-r--r--drivers/scsi/atari_scsi.c84
-rw-r--r--drivers/scsi/atari_scsi.h126
-rw-r--r--drivers/scsi/atp870u.c69
-rw-r--r--drivers/scsi/be2iscsi/Kconfig9
-rw-r--r--drivers/scsi/be2iscsi/Makefile8
-rw-r--r--drivers/scsi/be2iscsi/be.h211
-rw-r--r--drivers/scsi/be2iscsi/be_cmds.c1409
-rw-r--r--drivers/scsi/be2iscsi/be_cmds.h1351
-rw-r--r--drivers/scsi/be2iscsi/be_iscsi.c1443
-rw-r--r--drivers/scsi/be2iscsi/be_iscsi.h91
-rw-r--r--drivers/scsi/be2iscsi/be_main.c5802
-rw-r--r--drivers/scsi/be2iscsi/be_main.h1076
-rw-r--r--drivers/scsi/be2iscsi/be_mgmt.c1705
-rw-r--r--drivers/scsi/be2iscsi/be_mgmt.h341
-rw-r--r--drivers/scsi/bfa/Makefile6
-rw-r--r--drivers/scsi/bfa/bfa.h448
-rw-r--r--drivers/scsi/bfa/bfa_core.c2000
-rw-r--r--drivers/scsi/bfa/bfa_cs.h366
-rw-r--r--drivers/scsi/bfa/bfa_defs.h1287
-rw-r--r--drivers/scsi/bfa/bfa_defs_fcs.h478
-rw-r--r--drivers/scsi/bfa/bfa_defs_svc.h1462
-rw-r--r--drivers/scsi/bfa/bfa_fc.h1628
-rw-r--r--drivers/scsi/bfa/bfa_fcbuild.c1463
-rw-r--r--drivers/scsi/bfa/bfa_fcbuild.h328
-rw-r--r--drivers/scsi/bfa/bfa_fcpim.c3936
-rw-r--r--drivers/scsi/bfa/bfa_fcpim.h429
-rw-r--r--drivers/scsi/bfa/bfa_fcs.c1712
-rw-r--r--drivers/scsi/bfa/bfa_fcs.h883
-rw-r--r--drivers/scsi/bfa/bfa_fcs_fcpim.c839
-rw-r--r--drivers/scsi/bfa/bfa_fcs_lport.c6988
-rw-r--r--drivers/scsi/bfa/bfa_fcs_rport.c3464
-rw-r--r--drivers/scsi/bfa/bfa_hw_cb.c191
-rw-r--r--drivers/scsi/bfa/bfa_hw_ct.c178
-rw-r--r--drivers/scsi/bfa/bfa_ioc.c7065
-rw-r--r--drivers/scsi/bfa/bfa_ioc.h1048
-rw-r--r--drivers/scsi/bfa/bfa_ioc_cb.c408
-rw-r--r--drivers/scsi/bfa/bfa_ioc_ct.c997
-rw-r--r--drivers/scsi/bfa/bfa_modules.h139
-rw-r--r--drivers/scsi/bfa/bfa_plog.h155
-rw-r--r--drivers/scsi/bfa/bfa_port.c880
-rw-r--r--drivers/scsi/bfa/bfa_port.h126
-rw-r--r--drivers/scsi/bfa/bfa_svc.c7062
-rw-r--r--drivers/scsi/bfa/bfa_svc.h763
-rw-r--r--drivers/scsi/bfa/bfad.c1838
-rw-r--r--drivers/scsi/bfa/bfad_attr.c999
-rw-r--r--drivers/scsi/bfa/bfad_bsg.c3595
-rw-r--r--drivers/scsi/bfa/bfad_bsg.h836
-rw-r--r--drivers/scsi/bfa/bfad_debugfs.c550
-rw-r--r--drivers/scsi/bfa/bfad_drv.h360
-rw-r--r--drivers/scsi/bfa/bfad_im.c1328
-rw-r--r--drivers/scsi/bfa/bfad_im.h197
-rw-r--r--drivers/scsi/bfa/bfi.h1324
-rw-r--r--drivers/scsi/bfa/bfi_ms.h878
-rw-r--r--drivers/scsi/bfa/bfi_reg.h459
-rw-r--r--drivers/scsi/bnx2fc/57xx_hsi_bnx2fc.h990
-rw-r--r--drivers/scsi/bnx2fc/Kconfig12
-rw-r--r--drivers/scsi/bnx2fc/Makefile4
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc.h593
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_constants.h274
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_debug.c70
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_debug.h33
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_els.c919
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_fcoe.c2816
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_hwi.c2194
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_io.c2084
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_tgt.c909
-rw-r--r--drivers/scsi/bnx2i/57xx_iscsi_constants.h159
-rw-r--r--drivers/scsi/bnx2i/57xx_iscsi_hsi.h1524
-rw-r--r--drivers/scsi/bnx2i/Kconfig12
-rw-r--r--drivers/scsi/bnx2i/Makefile3
-rw-r--r--drivers/scsi/bnx2i/bnx2i.h880
-rw-r--r--drivers/scsi/bnx2i/bnx2i_hwi.c2769
-rw-r--r--drivers/scsi/bnx2i/bnx2i_init.c602
-rw-r--r--drivers/scsi/bnx2i/bnx2i_iscsi.c2300
-rw-r--r--drivers/scsi/bnx2i/bnx2i_sysfs.c143
-rw-r--r--drivers/scsi/bvme6000_scsi.c34
-rw-r--r--drivers/scsi/ch.c127
-rw-r--r--drivers/scsi/constants.c370
-rw-r--r--drivers/scsi/csiostor/Kconfig19
-rw-r--r--drivers/scsi/csiostor/Makefile12
-rw-r--r--drivers/scsi/csiostor/csio_attr.c796
-rw-r--r--drivers/scsi/csiostor/csio_defs.h121
-rw-r--r--drivers/scsi/csiostor/csio_hw.c3967
-rw-r--r--drivers/scsi/csiostor/csio_hw.h643
-rw-r--r--drivers/scsi/csiostor/csio_hw_chip.h175
-rw-r--r--drivers/scsi/csiostor/csio_hw_t4.c403
-rw-r--r--drivers/scsi/csiostor/csio_hw_t5.c397
-rw-r--r--drivers/scsi/csiostor/csio_init.c1288
-rw-r--r--drivers/scsi/csiostor/csio_init.h137
-rw-r--r--drivers/scsi/csiostor/csio_isr.c624
-rw-r--r--drivers/scsi/csiostor/csio_lnode.c2135
-rw-r--r--drivers/scsi/csiostor/csio_lnode.h255
-rw-r--r--drivers/scsi/csiostor/csio_mb.c1673
-rw-r--r--drivers/scsi/csiostor/csio_mb.h267
-rw-r--r--drivers/scsi/csiostor/csio_rnode.c921
-rw-r--r--drivers/scsi/csiostor/csio_rnode.h141
-rw-r--r--drivers/scsi/csiostor/csio_scsi.c2555
-rw-r--r--drivers/scsi/csiostor/csio_scsi.h342
-rw-r--r--drivers/scsi/csiostor/csio_wr.c1648
-rw-r--r--drivers/scsi/csiostor/csio_wr.h512
-rw-r--r--drivers/scsi/csiostor/t4fw_api_stor.h539
-rw-r--r--drivers/scsi/cxgb3i/Kbuild4
-rw-r--r--drivers/scsi/cxgb3i/Kconfig7
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i.h139
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_ddp.c771
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_ddp.h306
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_init.c107
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_iscsi.c951
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_offload.c1810
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_offload.h231
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_pdu.c402
-rw-r--r--drivers/scsi/cxgb3i/cxgb3i_pdu.h59
-rw-r--r--drivers/scsi/cxgbi/Kconfig2
-rw-r--r--drivers/scsi/cxgbi/Makefile2
-rw-r--r--drivers/scsi/cxgbi/cxgb3i/Kbuild3
-rw-r--r--drivers/scsi/cxgbi/cxgb3i/Kconfig10
-rw-r--r--drivers/scsi/cxgbi/cxgb3i/cxgb3i.c1413
-rw-r--r--drivers/scsi/cxgbi/cxgb3i/cxgb3i.h62
-rw-r--r--drivers/scsi/cxgbi/cxgb4i/Kbuild3
-rw-r--r--drivers/scsi/cxgbi/cxgb4i/Kconfig10
-rw-r--r--drivers/scsi/cxgbi/cxgb4i/cxgb4i.c1649
-rw-r--r--drivers/scsi/cxgbi/cxgb4i/cxgb4i.h43
-rw-r--r--drivers/scsi/cxgbi/libcxgbi.c2649
-rw-r--r--drivers/scsi/cxgbi/libcxgbi.h743
-rw-r--r--drivers/scsi/dc395x.c323
-rw-r--r--drivers/scsi/dc395x.h2
-rw-r--r--drivers/scsi/device_handler/Kconfig4
-rw-r--r--drivers/scsi/device_handler/scsi_dh.c253
-rw-r--r--drivers/scsi/device_handler/scsi_dh_alua.c479
-rw-r--r--drivers/scsi/device_handler/scsi_dh_emc.c97
-rw-r--r--drivers/scsi/device_handler/scsi_dh_hp_sw.c124
-rw-r--r--drivers/scsi/device_handler/scsi_dh_rdac.c454
-rw-r--r--drivers/scsi/dmx3191d.c10
-rw-r--r--drivers/scsi/dpt/dpti_i2o.h2
-rw-r--r--drivers/scsi/dpt/osd_util.h2
-rw-r--r--drivers/scsi/dpt/sys_info.h6
-rw-r--r--drivers/scsi/dpt_i2o.c237
-rw-r--r--drivers/scsi/dpti.h3
-rw-r--r--drivers/scsi/dtc.c8
-rw-r--r--drivers/scsi/dtc.h5
-rw-r--r--drivers/scsi/eata.c104
-rw-r--r--drivers/scsi/eata_pio.c86
-rw-r--r--drivers/scsi/esas2r/Kconfig5
-rw-r--r--drivers/scsi/esas2r/Makefile5
-rw-r--r--drivers/scsi/esas2r/atioctl.h1254
-rw-r--r--drivers/scsi/esas2r/atvda.h1319
-rw-r--r--drivers/scsi/esas2r/esas2r.h1431
-rw-r--r--drivers/scsi/esas2r/esas2r_disc.c1184
-rw-r--r--drivers/scsi/esas2r/esas2r_flash.c1521
-rw-r--r--drivers/scsi/esas2r/esas2r_init.c1771
-rw-r--r--drivers/scsi/esas2r/esas2r_int.c942
-rw-r--r--drivers/scsi/esas2r/esas2r_io.c877
-rw-r--r--drivers/scsi/esas2r/esas2r_ioctl.c2110
-rw-r--r--drivers/scsi/esas2r/esas2r_log.c250
-rw-r--r--drivers/scsi/esas2r/esas2r_log.h118
-rw-r--r--drivers/scsi/esas2r/esas2r_main.c2032
-rw-r--r--drivers/scsi/esas2r/esas2r_targdb.c306
-rw-r--r--drivers/scsi/esas2r/esas2r_vda.c524
-rw-r--r--drivers/scsi/esp_scsi.c42
-rw-r--r--drivers/scsi/esp_scsi.h1
-rw-r--r--drivers/scsi/fcoe/Makefile8
-rw-r--r--drivers/scsi/fcoe/fc_transport_fcoe.c446
-rw-r--r--drivers/scsi/fcoe/fcoe.c2967
-rw-r--r--drivers/scsi/fcoe/fcoe.h104
-rw-r--r--drivers/scsi/fcoe/fcoe_ctlr.c2965
-rw-r--r--drivers/scsi/fcoe/fcoe_sw.c494
-rw-r--r--drivers/scsi/fcoe/fcoe_sysfs.c954
-rw-r--r--drivers/scsi/fcoe/fcoe_transport.c1013
-rw-r--r--drivers/scsi/fcoe/libfcoe.c1510
-rw-r--r--drivers/scsi/fcoe/libfcoe.h35
-rw-r--r--drivers/scsi/fd_mcs.c1352
-rw-r--r--drivers/scsi/fdomain.c10
-rw-r--r--drivers/scsi/fnic/Makefile17
-rw-r--r--drivers/scsi/fnic/cq_desc.h78
-rw-r--r--drivers/scsi/fnic/cq_enet_desc.h167
-rw-r--r--drivers/scsi/fnic/cq_exch_desc.h182
-rw-r--r--drivers/scsi/fnic/fcpio.h780
-rw-r--r--drivers/scsi/fnic/fnic.h379
-rw-r--r--drivers/scsi/fnic/fnic_attrs.c56
-rw-r--r--drivers/scsi/fnic/fnic_debugfs.c836
-rw-r--r--drivers/scsi/fnic/fnic_fcs.c1341
-rw-r--r--drivers/scsi/fnic/fnic_fip.h68
-rw-r--r--drivers/scsi/fnic/fnic_io.h69
-rw-r--r--drivers/scsi/fnic/fnic_isr.c350
-rw-r--r--drivers/scsi/fnic/fnic_main.c1160
-rw-r--r--drivers/scsi/fnic/fnic_res.c443
-rw-r--r--drivers/scsi/fnic/fnic_res.h249
-rw-r--r--drivers/scsi/fnic/fnic_scsi.c2660
-rw-r--r--drivers/scsi/fnic/fnic_stats.h116
-rw-r--r--drivers/scsi/fnic/fnic_trace.c780
-rw-r--r--drivers/scsi/fnic/fnic_trace.h129
-rw-r--r--drivers/scsi/fnic/rq_enet_desc.h58
-rw-r--r--drivers/scsi/fnic/vnic_cq.c85
-rw-r--r--drivers/scsi/fnic/vnic_cq.h121
-rw-r--r--drivers/scsi/fnic/vnic_cq_copy.h62
-rw-r--r--drivers/scsi/fnic/vnic_dev.c701
-rw-r--r--drivers/scsi/fnic/vnic_dev.h163
-rw-r--r--drivers/scsi/fnic/vnic_devcmd.h348
-rw-r--r--drivers/scsi/fnic/vnic_intr.c60
-rw-r--r--drivers/scsi/fnic/vnic_intr.h118
-rw-r--r--drivers/scsi/fnic/vnic_nic.h69
-rw-r--r--drivers/scsi/fnic/vnic_resource.h61
-rw-r--r--drivers/scsi/fnic/vnic_rq.c197
-rw-r--r--drivers/scsi/fnic/vnic_rq.h235
-rw-r--r--drivers/scsi/fnic/vnic_scsi.h100
-rw-r--r--drivers/scsi/fnic/vnic_stats.h68
-rw-r--r--drivers/scsi/fnic/vnic_wq.c183
-rw-r--r--drivers/scsi/fnic/vnic_wq.h175
-rw-r--r--drivers/scsi/fnic/vnic_wq_copy.c117
-rw-r--r--drivers/scsi/fnic/vnic_wq_copy.h128
-rw-r--r--drivers/scsi/fnic/wq_enet_desc.h96
-rw-r--r--drivers/scsi/g_NCR5380.c111
-rw-r--r--drivers/scsi/g_NCR5380.h15
-rw-r--r--drivers/scsi/gdth.c533
-rw-r--r--drivers/scsi/gdth.h964
-rw-r--r--drivers/scsi/gdth_ioctl.h366
-rw-r--r--drivers/scsi/gdth_proc.c249
-rw-r--r--drivers/scsi/gdth_proc.h9
-rw-r--r--drivers/scsi/gvp11.c582
-rw-r--r--drivers/scsi/gvp11.h49
-rw-r--r--drivers/scsi/hosts.c92
-rw-r--r--drivers/scsi/hpsa.c7707
-rw-r--r--drivers/scsi/hpsa.h585
-rw-r--r--drivers/scsi/hpsa_cmd.h640
-rw-r--r--drivers/scsi/hptiop.c475
-rw-r--r--drivers/scsi/hptiop.h74
-rw-r--r--drivers/scsi/ibmmca.c2378
-rw-r--r--drivers/scsi/ibmvscsi/Makefile7
-rw-r--r--drivers/scsi/ibmvscsi/ibmvfc.c1626
-rw-r--r--drivers/scsi/ibmvscsi/ibmvfc.h75
-rw-r--r--drivers/scsi/ibmvscsi/ibmvscsi.c1152
-rw-r--r--drivers/scsi/ibmvscsi/ibmvscsi.h30
-rw-r--r--drivers/scsi/ibmvscsi/ibmvstgt.c16
-rw-r--r--drivers/scsi/ibmvscsi/iseries_vscsi.c167
-rw-r--r--drivers/scsi/ibmvscsi/rpa_vscsi.c343
-rw-r--r--drivers/scsi/ibmvscsi/viosrp.h100
-rw-r--r--drivers/scsi/imm.c47
-rw-r--r--drivers/scsi/in2000.c208
-rw-r--r--drivers/scsi/in2000.h2
-rw-r--r--drivers/scsi/initio.c17
-rw-r--r--drivers/scsi/initio.h4
-rw-r--r--drivers/scsi/ipr.c4217
-rw-r--r--drivers/scsi/ipr.h704
-rw-r--r--drivers/scsi/ips.c274
-rw-r--r--drivers/scsi/ips.h11
-rw-r--r--drivers/scsi/isci/Makefile8
-rw-r--r--drivers/scsi/isci/host.c2807
-rw-r--r--drivers/scsi/isci/host.h517
-rw-r--r--drivers/scsi/isci/init.c812
-rw-r--r--drivers/scsi/isci/isci.h539
-rw-r--r--drivers/scsi/isci/phy.c1487
-rw-r--r--drivers/scsi/isci/phy.h460
-rw-r--r--drivers/scsi/isci/port.c1770
-rw-r--r--drivers/scsi/isci/port.h283
-rw-r--r--drivers/scsi/isci/port_config.c760
-rw-r--r--drivers/scsi/isci/probe_roms.c230
-rw-r--r--drivers/scsi/isci/probe_roms.h330
-rw-r--r--drivers/scsi/isci/registers.h1863
-rw-r--r--drivers/scsi/isci/remote_device.c1726
-rw-r--r--drivers/scsi/isci/remote_device.h387
-rw-r--r--drivers/scsi/isci/remote_node_context.c809
-rw-r--r--drivers/scsi/isci/remote_node_context.h236
-rw-r--r--drivers/scsi/isci/remote_node_table.c598
-rw-r--r--drivers/scsi/isci/remote_node_table.h188
-rw-r--r--drivers/scsi/isci/request.c3528
-rw-r--r--drivers/scsi/isci/request.h310
-rw-r--r--drivers/scsi/isci/sas.h217
-rw-r--r--drivers/scsi/isci/scu_completion_codes.h285
-rw-r--r--drivers/scsi/isci/scu_event_codes.h336
-rw-r--r--drivers/scsi/isci/scu_remote_node_context.h229
-rw-r--r--drivers/scsi/isci/scu_task_context.h965
-rw-r--r--drivers/scsi/isci/task.c812
-rw-r--r--drivers/scsi/isci/task.h190
-rw-r--r--drivers/scsi/isci/unsolicited_frame_control.c211
-rw-r--r--drivers/scsi/isci/unsolicited_frame_control.h282
-rw-r--r--drivers/scsi/iscsi_boot_sysfs.c495
-rw-r--r--drivers/scsi/iscsi_tcp.c452
-rw-r--r--drivers/scsi/iscsi_tcp.h7
-rw-r--r--drivers/scsi/jazz_esp.c9
-rw-r--r--drivers/scsi/lasi700.c7
-rw-r--r--drivers/scsi/libfc/Makefile4
-rw-r--r--drivers/scsi/libfc/fc_disc.c746
-rw-r--r--drivers/scsi/libfc/fc_elsct.c115
-rw-r--r--drivers/scsi/libfc/fc_exch.c2089
-rw-r--r--drivers/scsi/libfc/fc_fcp.c1448
-rw-r--r--drivers/scsi/libfc/fc_frame.c16
-rw-r--r--drivers/scsi/libfc/fc_libfc.c331
-rw-r--r--drivers/scsi/libfc/fc_libfc.h139
-rw-r--r--drivers/scsi/libfc/fc_lport.c1768
-rw-r--r--drivers/scsi/libfc/fc_npiv.c159
-rw-r--r--drivers/scsi/libfc/fc_rport.c2150
-rw-r--r--drivers/scsi/libiscsi.c1870
-rw-r--r--drivers/scsi/libiscsi_tcp.c304
-rw-r--r--drivers/scsi/libsas/Kconfig8
-rw-r--r--drivers/scsi/libsas/Makefile6
-rw-r--r--drivers/scsi/libsas/sas_ata.c981
-rw-r--r--drivers/scsi/libsas/sas_discover.c377
-rw-r--r--drivers/scsi/libsas/sas_dump.c5
-rw-r--r--drivers/scsi/libsas/sas_dump.h12
-rw-r--r--drivers/scsi/libsas/sas_event.c104
-rw-r--r--drivers/scsi/libsas/sas_expander.c704
-rw-r--r--drivers/scsi/libsas/sas_host_smp.c173
-rw-r--r--drivers/scsi/libsas/sas_init.c374
-rw-r--r--drivers/scsi/libsas/sas_internal.h114
-rw-r--r--drivers/scsi/libsas/sas_phy.c58
-rw-r--r--drivers/scsi/libsas/sas_port.c151
-rw-r--r--drivers/scsi/libsas/sas_scsi_host.c689
-rw-r--r--drivers/scsi/libsas/sas_task.c7
-rw-r--r--drivers/scsi/libsrp.c30
-rw-r--r--drivers/scsi/lpfc/Makefile12
-rw-r--r--drivers/scsi/lpfc/lpfc.h424
-rw-r--r--drivers/scsi/lpfc/lpfc_attr.c3005
-rw-r--r--drivers/scsi/lpfc/lpfc_bsg.c5412
-rw-r--r--drivers/scsi/lpfc/lpfc_bsg.h288
-rw-r--r--drivers/scsi/lpfc/lpfc_compat.h6
-rw-r--r--drivers/scsi/lpfc/lpfc_crtn.h232
-rw-r--r--drivers/scsi/lpfc/lpfc_ct.c196
-rw-r--r--drivers/scsi/lpfc/lpfc_debugfs.c3428
-rw-r--r--drivers/scsi/lpfc/lpfc_debugfs.h623
-rw-r--r--drivers/scsi/lpfc/lpfc_disc.h39
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c2667
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c3651
-rw-r--r--drivers/scsi/lpfc/lpfc_hw.h756
-rw-r--r--drivers/scsi/lpfc/lpfc_hw4.h3690
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c9565
-rw-r--r--drivers/scsi/lpfc/lpfc_logmsg.h57
-rw-r--r--drivers/scsi/lpfc/lpfc_mbox.c1312
-rw-r--r--drivers/scsi/lpfc/lpfc_mem.c305
-rw-r--r--drivers/scsi/lpfc/lpfc_nl.h4
-rw-r--r--drivers/scsi/lpfc/lpfc_nportdisc.c600
-rw-r--r--drivers/scsi/lpfc/lpfc_scsi.c4989
-rw-r--r--drivers/scsi/lpfc/lpfc_scsi.h40
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c13663
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.h124
-rw-r--r--drivers/scsi/lpfc/lpfc_sli4.h739
-rw-r--r--drivers/scsi/lpfc/lpfc_version.h12
-rw-r--r--drivers/scsi/lpfc/lpfc_vport.c176
-rw-r--r--drivers/scsi/lpfc/lpfc_vport.h1
-rw-r--r--drivers/scsi/mac53c94.c18
-rw-r--r--drivers/scsi/mac_esp.c170
-rw-r--r--drivers/scsi/mac_scsi.c39
-rw-r--r--drivers/scsi/mac_scsi.h13
-rw-r--r--drivers/scsi/megaraid.c1259
-rw-r--r--drivers/scsi/megaraid.h72
-rw-r--r--drivers/scsi/megaraid/Makefile2
-rw-r--r--drivers/scsi/megaraid/mbox_defs.h12
-rw-r--r--drivers/scsi/megaraid/megaraid_mbox.c92
-rw-r--r--drivers/scsi/megaraid/megaraid_mm.c32
-rw-r--r--drivers/scsi/megaraid/megaraid_sas.c3547
-rw-r--r--drivers/scsi/megaraid/megaraid_sas.h708
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_base.c6325
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_fp.c1241
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_fusion.c2676
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_fusion.h766
-rw-r--r--drivers/scsi/mesh.c16
-rw-r--r--drivers/scsi/mpt2sas/Kconfig67
-rw-r--r--drivers/scsi/mpt2sas/Makefile7
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2.h1161
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_cnfg.h3020
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_init.h459
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_ioc.h1654
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_raid.h362
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_sas.h288
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_tool.h439
-rw-r--r--drivers/scsi/mpt2sas/mpi/mpi2_type.h61
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.c4670
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_base.h1176
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_config.c1490
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_ctl.c3076
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_ctl.h418
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_debug.h181
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c8580
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_transport.c2171
-rw-r--r--drivers/scsi/mpt3sas/Kconfig67
-rw-r--r--drivers/scsi/mpt3sas/Makefile8
-rw-r--r--drivers/scsi/mpt3sas/mpi/mpi2.h1170
-rw-r--r--drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h3334
-rw-r--r--drivers/scsi/mpt3sas/mpi/mpi2_init.h560
-rw-r--r--drivers/scsi/mpt3sas/mpi/mpi2_ioc.h1669
-rw-r--r--drivers/scsi/mpt3sas/mpi/mpi2_raid.h350
-rw-r--r--drivers/scsi/mpt3sas/mpi/mpi2_sas.h295
-rw-r--r--drivers/scsi/mpt3sas/mpi/mpi2_tool.h439
-rw-r--r--drivers/scsi/mpt3sas/mpi/mpi2_type.h56
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_base.c4864
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_base.h1139
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_config.c1649
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_ctl.c3282
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_ctl.h418
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_debug.h219
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_scsih.c8168
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_transport.c2132
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c433
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_trigger_diag.h193
-rw-r--r--drivers/scsi/mvme147.c179
-rw-r--r--drivers/scsi/mvme147.h4
-rw-r--r--drivers/scsi/mvme16x_scsi.c32
-rw-r--r--drivers/scsi/mvsas.c3222
-rw-r--r--drivers/scsi/mvsas/Kconfig50
-rw-r--r--drivers/scsi/mvsas/Makefile31
-rw-r--r--drivers/scsi/mvsas/mv_64xx.c828
-rw-r--r--drivers/scsi/mvsas/mv_64xx.h152
-rw-r--r--drivers/scsi/mvsas/mv_94xx.c1061
-rw-r--r--drivers/scsi/mvsas/mv_94xx.h278
-rw-r--r--drivers/scsi/mvsas/mv_chips.h270
-rw-r--r--drivers/scsi/mvsas/mv_defs.h510
-rw-r--r--drivers/scsi/mvsas/mv_init.c876
-rw-r--r--drivers/scsi/mvsas/mv_sas.c2205
-rw-r--r--drivers/scsi/mvsas/mv_sas.h488
-rw-r--r--drivers/scsi/mvumi.c2754
-rw-r--r--drivers/scsi/mvumi.h573
-rw-r--r--drivers/scsi/ncr53c8xx.c16
-rw-r--r--drivers/scsi/nsp32.c80
-rw-r--r--drivers/scsi/nsp32.h2
-rw-r--r--drivers/scsi/nsp32_debug.c2
-rw-r--r--drivers/scsi/osd/Kbuild20
-rw-r--r--drivers/scsi/osd/Kconfig49
-rw-r--r--drivers/scsi/osd/osd_debug.h30
-rw-r--r--drivers/scsi/osd/osd_initiator.c2071
-rw-r--r--drivers/scsi/osd/osd_uld.c594
-rw-r--r--drivers/scsi/osst.c153
-rw-r--r--drivers/scsi/osst.h4
-rw-r--r--drivers/scsi/pas16.c6
-rw-r--r--drivers/scsi/pas16.h8
-rw-r--r--drivers/scsi/pcmcia/Kconfig1
-rw-r--r--drivers/scsi/pcmcia/Makefile2
-rw-r--r--drivers/scsi/pcmcia/aha152x_stub.c100
-rw-r--r--drivers/scsi/pcmcia/fdomain_stub.c80
-rw-r--r--drivers/scsi/pcmcia/nsp_cs.c277
-rw-r--r--drivers/scsi/pcmcia/nsp_cs.h15
-rw-r--r--drivers/scsi/pcmcia/nsp_debug.c2
-rw-r--r--drivers/scsi/pcmcia/qlogic_stub.c99
-rw-r--r--drivers/scsi/pcmcia/sym53c500_cs.c96
-rw-r--r--drivers/scsi/pm8001/Makefile13
-rw-r--r--drivers/scsi/pm8001/pm8001_chips.h89
-rw-r--r--drivers/scsi/pm8001/pm8001_ctl.c756
-rw-r--r--drivers/scsi/pm8001/pm8001_ctl.h63
-rw-r--r--drivers/scsi/pm8001/pm8001_defs.h131
-rw-r--r--drivers/scsi/pm8001/pm8001_hwi.c5104
-rw-r--r--drivers/scsi/pm8001/pm8001_hwi.h1038
-rw-r--r--drivers/scsi/pm8001/pm8001_init.c1198
-rw-r--r--drivers/scsi/pm8001/pm8001_sas.c1283
-rw-r--r--drivers/scsi/pm8001/pm8001_sas.h724
-rw-r--r--drivers/scsi/pm8001/pm80xx_hwi.c4529
-rw-r--r--drivers/scsi/pm8001/pm80xx_hwi.h1532
-rw-r--r--drivers/scsi/pmcraid.c6146
-rw-r--r--drivers/scsi/pmcraid.h1095
-rw-r--r--drivers/scsi/ppa.c41
-rw-r--r--drivers/scsi/ps3rom.c18
-rw-r--r--drivers/scsi/ql1040_fw.h2130
-rw-r--r--drivers/scsi/ql12160_fw.h1811
-rw-r--r--drivers/scsi/ql1280_fw.h2048
-rw-r--r--drivers/scsi/qla1280.c598
-rw-r--r--drivers/scsi/qla1280.h9
-rw-r--r--drivers/scsi/qla2xxx/Kconfig13
-rw-r--r--drivers/scsi/qla2xxx/Makefile4
-rw-r--r--drivers/scsi/qla2xxx/qla_attr.c1273
-rw-r--r--drivers/scsi/qla2xxx/qla_bsg.c2279
-rw-r--r--drivers/scsi/qla2xxx/qla_bsg.h235
-rw-r--r--drivers/scsi/qla2xxx/qla_dbg.c1314
-rw-r--r--drivers/scsi/qla2xxx/qla_dbg.h253
-rw-r--r--drivers/scsi/qla2xxx/qla_def.h1161
-rw-r--r--drivers/scsi/qla2xxx/qla_devtbl.h2
-rw-r--r--drivers/scsi/qla2xxx/qla_dfs.c25
-rw-r--r--drivers/scsi/qla2xxx/qla_fw.h315
-rw-r--r--drivers/scsi/qla2xxx/qla_gbl.h462
-rw-r--r--drivers/scsi/qla2xxx/qla_gs.c685
-rw-r--r--drivers/scsi/qla2xxx/qla_init.c3539
-rw-r--r--drivers/scsi/qla2xxx/qla_inline.h219
-rw-r--r--drivers/scsi/qla2xxx/qla_iocb.c2473
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c2675
-rw-r--r--drivers/scsi/qla2xxx/qla_mbx.c3346
-rw-r--r--drivers/scsi/qla2xxx/qla_mid.c469
-rw-r--r--drivers/scsi/qla2xxx/qla_mr.c3472
-rw-r--r--drivers/scsi/qla2xxx/qla_mr.h527
-rw-r--r--drivers/scsi/qla2xxx/qla_nx.c4518
-rw-r--r--drivers/scsi/qla2xxx/qla_nx.h1202
-rw-r--r--drivers/scsi/qla2xxx/qla_nx2.c4079
-rw-r--r--drivers/scsi/qla2xxx/qla_nx2.h599
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c4381
-rw-r--r--drivers/scsi/qla2xxx/qla_settings.h2
-rw-r--r--drivers/scsi/qla2xxx/qla_sup.c879
-rw-r--r--drivers/scsi/qla2xxx/qla_target.c5639
-rw-r--r--drivers/scsi/qla2xxx/qla_target.h1093
-rw-r--r--drivers/scsi/qla2xxx/qla_tmpl.c956
-rw-r--r--drivers/scsi/qla2xxx/qla_tmpl.h216
-rw-r--r--drivers/scsi/qla2xxx/qla_version.h6
-rw-r--r--drivers/scsi/qla2xxx/tcm_qla2xxx.c2146
-rw-r--r--drivers/scsi/qla2xxx/tcm_qla2xxx.h83
-rw-r--r--drivers/scsi/qla4xxx/Kconfig7
-rw-r--r--drivers/scsi/qla4xxx/Makefile2
-rw-r--r--drivers/scsi/qla4xxx/ql4_83xx.c1594
-rw-r--r--drivers/scsi/qla4xxx/ql4_83xx.h371
-rw-r--r--drivers/scsi/qla4xxx/ql4_attr.c351
-rw-r--r--drivers/scsi/qla4xxx/ql4_bsg.c873
-rw-r--r--drivers/scsi/qla4xxx/ql4_bsg.h32
-rw-r--r--drivers/scsi/qla4xxx/ql4_dbg.c147
-rw-r--r--drivers/scsi/qla4xxx/ql4_dbg.h9
-rw-r--r--drivers/scsi/qla4xxx/ql4_def.h642
-rw-r--r--drivers/scsi/qla4xxx/ql4_fw.h707
-rw-r--r--drivers/scsi/qla4xxx/ql4_glbl.h291
-rw-r--r--drivers/scsi/qla4xxx/ql4_init.c1498
-rw-r--r--drivers/scsi/qla4xxx/ql4_inline.h16
-rw-r--r--drivers/scsi/qla4xxx/ql4_iocb.c377
-rw-r--r--drivers/scsi/qla4xxx/ql4_isr.c1242
-rw-r--r--drivers/scsi/qla4xxx/ql4_mbx.c1993
-rw-r--r--drivers/scsi/qla4xxx/ql4_nvram.c25
-rw-r--r--drivers/scsi/qla4xxx/ql4_nvram.h14
-rw-r--r--drivers/scsi/qla4xxx/ql4_nx.c4275
-rw-r--r--drivers/scsi/qla4xxx/ql4_nx.h1032
-rw-r--r--drivers/scsi/qla4xxx/ql4_os.c9146
-rw-r--r--drivers/scsi/qla4xxx/ql4_version.h5
-rw-r--r--drivers/scsi/qlogicfas.c2
-rw-r--r--drivers/scsi/qlogicfas408.c4
-rw-r--r--drivers/scsi/qlogicfas408.h3
-rw-r--r--drivers/scsi/qlogicpti.c139
-rw-r--r--drivers/scsi/qlogicpti.h4
-rw-r--r--drivers/scsi/qlogicpti_asm.c1160
-rw-r--r--drivers/scsi/raid_class.c3
-rw-r--r--drivers/scsi/scsi.c603
-rw-r--r--drivers/scsi/scsi_debug.c1537
-rw-r--r--drivers/scsi/scsi_devinfo.c351
-rw-r--r--drivers/scsi/scsi_error.c938
-rw-r--r--drivers/scsi/scsi_ioctl.c3
-rw-r--r--drivers/scsi/scsi_lib.c1064
-rw-r--r--drivers/scsi/scsi_lib_dma.c5
-rw-r--r--drivers/scsi/scsi_netlink.c574
-rw-r--r--drivers/scsi/scsi_pm.c354
-rw-r--r--drivers/scsi/scsi_priv.h55
-rw-r--r--drivers/scsi/scsi_proc.c143
-rw-r--r--drivers/scsi/scsi_sas_internal.h2
-rw-r--r--drivers/scsi/scsi_scan.c267
-rw-r--r--drivers/scsi/scsi_sysctl.c17
-rw-r--r--drivers/scsi/scsi_sysfs.c613
-rw-r--r--drivers/scsi/scsi_tgt_if.c5
-rw-r--r--drivers/scsi/scsi_tgt_lib.c17
-rw-r--r--drivers/scsi/scsi_trace.c288
-rw-r--r--drivers/scsi/scsi_transport_fc.c1061
-rw-r--r--drivers/scsi/scsi_transport_iscsi.c3130
-rw-r--r--drivers/scsi/scsi_transport_sas.c199
-rw-r--r--drivers/scsi/scsi_transport_spi.c96
-rw-r--r--drivers/scsi/scsi_transport_srp.c609
-rw-r--r--drivers/scsi/scsi_wait_scan.c31
-rw-r--r--drivers/scsi/scsicam.c2
-rw-r--r--drivers/scsi/sd.c1988
-rw-r--r--drivers/scsi/sd.h97
-rw-r--r--drivers/scsi/sd_dif.c147
-rw-r--r--drivers/scsi/ses.c315
-rw-r--r--drivers/scsi/sg.c858
-rw-r--r--drivers/scsi/sgiwd93.c6
-rw-r--r--drivers/scsi/sim710.c136
-rw-r--r--drivers/scsi/sni_53c710.c9
-rw-r--r--drivers/scsi/sr.c360
-rw-r--r--drivers/scsi/sr.h10
-rw-r--r--drivers/scsi/sr_ioctl.c18
-rw-r--r--drivers/scsi/sr_vendor.c1
-rw-r--r--drivers/scsi/st.c537
-rw-r--r--drivers/scsi/st.h9
-rw-r--r--drivers/scsi/stex.c1085
-rw-r--r--drivers/scsi/storvsc_drv.c1888
-rw-r--r--drivers/scsi/sun3_NCR5380.c486
-rw-r--r--drivers/scsi/sun3_scsi.c242
-rw-r--r--drivers/scsi/sun3_scsi.h204
-rw-r--r--drivers/scsi/sun3_scsi_vme.c584
-rw-r--r--drivers/scsi/sun3x_esp.c7
-rw-r--r--drivers/scsi/sun_esp.c90
-rw-r--r--drivers/scsi/sym53c416.c9
-rw-r--r--drivers/scsi/sym53c416.h2
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_fw1.h2
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_fw2.h2
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_glue.c348
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_glue.h8
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_hipd.c138
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_hipd.h20
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_malloc.c4
-rw-r--r--drivers/scsi/sym53c8xx_2/sym_misc.h18
-rw-r--r--drivers/scsi/t128.c10
-rw-r--r--drivers/scsi/t128.h13
-rw-r--r--drivers/scsi/tmscsim.c65
-rw-r--r--drivers/scsi/tmscsim.h1
-rw-r--r--drivers/scsi/u14-34f.c93
-rw-r--r--drivers/scsi/ufs/Kconfig70
-rw-r--r--drivers/scsi/ufs/Makefile4
-rw-r--r--drivers/scsi/ufs/ufs.h329
-rw-r--r--drivers/scsi/ufs/ufshcd-pci.c238
-rw-r--r--drivers/scsi/ufs/ufshcd-pltfrm.c218
-rw-r--r--drivers/scsi/ufs/ufshcd.c3247
-rw-r--r--drivers/scsi/ufs/ufshcd.h334
-rw-r--r--drivers/scsi/ufs/ufshci.h385
-rw-r--r--drivers/scsi/ufs/unipro.h151
-rw-r--r--drivers/scsi/ultrastor.c8
-rw-r--r--drivers/scsi/ultrastor.h3
-rw-r--r--drivers/scsi/virtio_scsi.c1082
-rw-r--r--drivers/scsi/vmw_pvscsi.c1623
-rw-r--r--drivers/scsi/vmw_pvscsi.h469
-rw-r--r--drivers/scsi/wd33c93.c252
-rw-r--r--drivers/scsi/wd33c93.h7
-rw-r--r--drivers/scsi/wd7000.c45
-rw-r--r--drivers/scsi/zalon.c6
-rw-r--r--drivers/scsi/zorro7xx.c16
-rw-r--r--drivers/serial/68328serial.c1492
-rw-r--r--drivers/serial/68328serial.h193
-rw-r--r--drivers/serial/68360serial.c2979
-rw-r--r--drivers/serial/8250.c3212
-rw-r--r--drivers/serial/8250.h79
-rw-r--r--drivers/serial/8250_early.c260
-rw-r--r--drivers/serial/8250_mca.c63
-rw-r--r--drivers/serial/8250_pci.c3152
-rw-r--r--drivers/serial/Kconfig1415
-rw-r--r--drivers/serial/Makefile78
-rw-r--r--drivers/serial/amba-pl011.c853
-rw-r--r--drivers/serial/atmel_serial.c1626
-rw-r--r--drivers/serial/bfin_5xx.c1299
-rw-r--r--drivers/serial/bfin_sport_uart.c614
-rw-r--r--drivers/serial/bfin_sport_uart.h63
-rw-r--r--drivers/serial/clps711x.c579
-rw-r--r--drivers/serial/imx.c1234
-rw-r--r--drivers/serial/kgdboc.c170
-rw-r--r--drivers/serial/mpc52xx_uart.c1334
-rw-r--r--drivers/serial/mux.c634
-rw-r--r--drivers/serial/of_serial.c197
-rw-r--r--drivers/serial/s3c2400.c106
-rw-r--r--drivers/serial/s3c2410.c118
-rw-r--r--drivers/serial/s3c2412.c151
-rw-r--r--drivers/serial/s3c2440.c181
-rw-r--r--drivers/serial/s3c24a0.c118
-rw-r--r--drivers/serial/s3c6400.c151
-rw-r--r--drivers/serial/samsung.c1427
-rw-r--r--drivers/serial/samsung.h111
-rw-r--r--drivers/serial/sc26xx.c757
-rw-r--r--drivers/serial/serial_core.c2579
-rw-r--r--drivers/serial/serial_cs.c937
-rw-r--r--drivers/serial/serial_lh7a40x.c682
-rw-r--r--drivers/serial/sh-sci.c1356
-rw-r--r--drivers/serial/sh-sci.h765
-rw-r--r--drivers/serial/suncore.h32
-rw-r--r--drivers/serial/uartlite.c680
-rw-r--r--drivers/sfi/Kconfig17
-rw-r--r--drivers/sfi/Makefile3
-rw-r--r--drivers/sfi/sfi_acpi.c214
-rw-r--r--drivers/sfi/sfi_core.c521
-rw-r--r--drivers/sfi/sfi_core.h81
-rw-r--r--drivers/sh/Kconfig5
-rw-r--r--drivers/sh/Makefile12
-rw-r--r--drivers/sh/clk/Makefile3
-rw-r--r--drivers/sh/clk/core.c699
-rw-r--r--drivers/sh/clk/cpg.c492
-rw-r--r--drivers/sh/intc.c713
-rw-r--r--drivers/sh/intc/Kconfig39
-rw-r--r--drivers/sh/intc/Makefile5
-rw-r--r--drivers/sh/intc/access.c246
-rw-r--r--drivers/sh/intc/balancing.c97
-rw-r--r--drivers/sh/intc/chip.c211
-rw-r--r--drivers/sh/intc/core.c511
-rw-r--r--drivers/sh/intc/handle.c306
-rw-r--r--drivers/sh/intc/internals.h198
-rw-r--r--drivers/sh/intc/irqdomain.c68
-rw-r--r--drivers/sh/intc/userimask.c84
-rw-r--r--drivers/sh/intc/virq-debugfs.c64
-rw-r--r--drivers/sh/intc/virq.c265
-rw-r--r--drivers/sh/maple/maple.c486
-rw-r--r--drivers/sh/pm_runtime.c111
-rw-r--r--drivers/sh/superhyway/superhyway.c4
-rw-r--r--drivers/sn/ioc3.c16
-rw-r--r--drivers/soc/Kconfig5
-rw-r--r--drivers/soc/Makefile5
-rw-r--r--drivers/soc/qcom/Kconfig11
-rw-r--r--drivers/soc/qcom/Makefile1
-rw-r--r--drivers/soc/qcom/qcom_gsbi.c85
-rw-r--r--drivers/spi/Kconfig464
-rw-r--r--drivers/spi/Makefile110
-rw-r--r--drivers/spi/at25.c389
-rw-r--r--drivers/spi/atmel_spi.c931
-rw-r--r--drivers/spi/atmel_spi.h167
-rw-r--r--drivers/spi/au1550_spi.c1031
-rw-r--r--drivers/spi/mpc52xx_psc_spi.c541
-rw-r--r--drivers/spi/omap2_mcspi.c1131
-rw-r--r--drivers/spi/omap_uwire.c597
-rw-r--r--drivers/spi/orion_spi.c579
-rw-r--r--drivers/spi/pxa2xx_spi.c1681
-rw-r--r--drivers/spi/spi-adi-v3.c986
-rw-r--r--drivers/spi/spi-altera.c295
-rw-r--r--drivers/spi/spi-ath79.c318
-rw-r--r--drivers/spi/spi-atmel.c1514
-rw-r--r--drivers/spi/spi-au1550.c1009
-rw-r--r--drivers/spi/spi-bcm2835.c408
-rw-r--r--drivers/spi/spi-bcm63xx-hsspi.c474
-rw-r--r--drivers/spi/spi-bcm63xx.c485
-rw-r--r--drivers/spi/spi-bfin-sport.c930
-rw-r--r--drivers/spi/spi-bfin5xx.c1475
-rw-r--r--drivers/spi/spi-bitbang-txrx.h97
-rw-r--r--drivers/spi/spi-bitbang.c476
-rw-r--r--drivers/spi/spi-butterfly.c355
-rw-r--r--drivers/spi/spi-cadence.c673
-rw-r--r--drivers/spi/spi-clps711x.c247
-rw-r--r--drivers/spi/spi-coldfire-qspi.c534
-rw-r--r--drivers/spi/spi-davinci.c1041
-rw-r--r--drivers/spi/spi-dw-mid.c228
-rw-r--r--drivers/spi/spi-dw-mmio.c129
-rw-r--r--drivers/spi/spi-dw-pci.c147
-rw-r--r--drivers/spi/spi-dw.c741
-rw-r--r--drivers/spi/spi-dw.h237
-rw-r--r--drivers/spi/spi-efm32.c500
-rw-r--r--drivers/spi/spi-ep93xx.c976
-rw-r--r--drivers/spi/spi-falcon.c454
-rw-r--r--drivers/spi/spi-fsl-cpm.c388
-rw-r--r--drivers/spi/spi-fsl-cpm.h43
-rw-r--r--drivers/spi/spi-fsl-dspi.c574
-rw-r--r--drivers/spi/spi-fsl-espi.c832
-rw-r--r--drivers/spi/spi-fsl-lib.c232
-rw-r--r--drivers/spi/spi-fsl-lib.h133
-rw-r--r--drivers/spi/spi-fsl-spi.c966
-rw-r--r--drivers/spi/spi-fsl-spi.h72
-rw-r--r--drivers/spi/spi-gpio.c537
-rw-r--r--drivers/spi/spi-imx.c972
-rw-r--r--drivers/spi/spi-lm70llp.c348
-rw-r--r--drivers/spi/spi-mpc512x-psc.c611
-rw-r--r--drivers/spi/spi-mpc52xx-psc.c519
-rw-r--r--drivers/spi/spi-mpc52xx.c552
-rw-r--r--drivers/spi/spi-mxs.c583
-rw-r--r--drivers/spi/spi-nuc900.c434
-rw-r--r--drivers/spi/spi-oc-tiny.c364
-rw-r--r--drivers/spi/spi-octeon.c261
-rw-r--r--drivers/spi/spi-omap-100k.c471
-rw-r--r--drivers/spi/spi-omap-uwire.c570
-rw-r--r--drivers/spi/spi-omap2-mcspi.c1518
-rw-r--r--drivers/spi/spi-orion.c451
-rw-r--r--drivers/spi/spi-pl022.c2430
-rw-r--r--drivers/spi/spi-ppc4xx.c586
-rw-r--r--drivers/spi/spi-pxa2xx-dma.c376
-rw-r--r--drivers/spi/spi-pxa2xx-pci.c128
-rw-r--r--drivers/spi/spi-pxa2xx-pxadma.c489
-rw-r--r--drivers/spi/spi-pxa2xx.c1354
-rw-r--r--drivers/spi/spi-pxa2xx.h221
-rw-r--r--drivers/spi/spi-qup.c761
-rw-r--r--drivers/spi/spi-rspi.c1177
-rw-r--r--drivers/spi/spi-s3c24xx-fiq.S116
-rw-r--r--drivers/spi/spi-s3c24xx-fiq.h26
-rw-r--r--drivers/spi/spi-s3c24xx.c674
-rw-r--r--drivers/spi/spi-s3c64xx.c1426
-rw-r--r--drivers/spi/spi-sc18is602.c333
-rw-r--r--drivers/spi/spi-sh-hspi.c327
-rw-r--r--drivers/spi/spi-sh-msiof.c798
-rw-r--r--drivers/spi/spi-sh-sci.c198
-rw-r--r--drivers/spi/spi-sh.c546
-rw-r--r--drivers/spi/spi-sirf.c852
-rw-r--r--drivers/spi/spi-sun4i.c477
-rw-r--r--drivers/spi/spi-sun6i.c483
-rw-r--r--drivers/spi/spi-tegra114.c1229
-rw-r--r--drivers/spi/spi-tegra20-sflash.c622
-rw-r--r--drivers/spi/spi-tegra20-slink.c1239
-rw-r--r--drivers/spi/spi-ti-qspi.c581
-rw-r--r--drivers/spi/spi-tle62x0.c321
-rw-r--r--drivers/spi/spi-topcliff-pch.c1759
-rw-r--r--drivers/spi/spi-txx9.c444
-rw-r--r--drivers/spi/spi-xcomm.c253
-rw-r--r--drivers/spi/spi-xilinx.c482
-rw-r--r--drivers/spi/spi-xtensa-xtfpga.c170
-rw-r--r--drivers/spi/spi.c1816
-rw-r--r--drivers/spi/spi_bfin5xx.c1423
-rw-r--r--drivers/spi/spi_bitbang.c516
-rw-r--r--drivers/spi/spi_butterfly.c357
-rw-r--r--drivers/spi/spi_gpio.c360
-rw-r--r--drivers/spi/spi_imx.c1775
-rw-r--r--drivers/spi/spi_lm70llp.c352
-rw-r--r--drivers/spi/spi_mpc83xx.c712
-rw-r--r--drivers/spi/spi_s3c24xx.c484
-rw-r--r--drivers/spi/spi_s3c24xx_gpio.c201
-rw-r--r--drivers/spi/spi_sh_sci.c206
-rw-r--r--drivers/spi/spi_txx9.c477
-rw-r--r--drivers/spi/spidev.c104
-rw-r--r--drivers/spi/tle62x0.c331
-rw-r--r--drivers/spi/xilinx_spi.c463
-rw-r--r--drivers/spmi/Kconfig27
-rw-r--r--drivers/spmi/Makefile6
-rw-r--r--drivers/spmi/spmi-pmic-arb.c778
-rw-r--r--drivers/spmi/spmi.c574
-rw-r--r--drivers/ssb/Kconfig48
-rw-r--r--drivers/ssb/Makefile4
-rw-r--r--drivers/ssb/b43_pci_bridge.c11
-rw-r--r--drivers/ssb/driver_chipcommon.c291
-rw-r--r--drivers/ssb/driver_chipcommon_pmu.c716
-rw-r--r--drivers/ssb/driver_chipcommon_sflash.c164
-rw-r--r--drivers/ssb/driver_extif.c69
-rw-r--r--drivers/ssb/driver_gige.c7
-rw-r--r--drivers/ssb/driver_gpio.c484
-rw-r--r--drivers/ssb/driver_mipscore.c171
-rw-r--r--drivers/ssb/driver_pcicore.c318
-rw-r--r--drivers/ssb/embedded.c38
-rw-r--r--drivers/ssb/main.c499
-rw-r--r--drivers/ssb/pci.c512
-rw-r--r--drivers/ssb/pcihost_wrapper.c13
-rw-r--r--drivers/ssb/pcmcia.c286
-rw-r--r--drivers/ssb/scan.c75
-rw-r--r--drivers/ssb/sdio.c606
-rw-r--r--drivers/ssb/sprom.c95
-rw-r--r--drivers/ssb/ssb_private.h153
-rw-r--r--drivers/staging/Kconfig136
-rw-r--r--drivers/staging/Makefile73
-rw-r--r--drivers/staging/agnx/Kconfig5
-rw-r--r--drivers/staging/agnx/Makefile8
-rw-r--r--drivers/staging/agnx/TODO22
-rw-r--r--drivers/staging/agnx/agnx.h154
-rw-r--r--drivers/staging/agnx/debug.h418
-rw-r--r--drivers/staging/agnx/pci.c644
-rw-r--r--drivers/staging/agnx/phy.c960
-rw-r--r--drivers/staging/agnx/phy.h409
-rw-r--r--drivers/staging/agnx/rf.c894
-rw-r--r--drivers/staging/agnx/sta.c219
-rw-r--r--drivers/staging/agnx/sta.h222
-rw-r--r--drivers/staging/agnx/table.c168
-rw-r--r--drivers/staging/agnx/table.h10
-rw-r--r--drivers/staging/agnx/xmit.c819
-rw-r--r--drivers/staging/agnx/xmit.h250
-rw-r--r--drivers/staging/altpciechdma/Kconfig10
-rw-r--r--drivers/staging/altpciechdma/Makefile2
-rw-r--r--drivers/staging/altpciechdma/TODO15
-rw-r--r--drivers/staging/altpciechdma/altpciechdma.c1184
-rw-r--r--drivers/staging/android/Kconfig148
-rw-r--r--drivers/staging/android/Makefile10
-rw-r--r--drivers/staging/android/TODO2
-rw-r--r--drivers/staging/android/alarm-dev.c446
-rw-r--r--drivers/staging/android/android_alarm.h41
-rw-r--r--drivers/staging/android/ashmem.c886
-rw-r--r--drivers/staging/android/ashmem.h27
-rw-r--r--drivers/staging/android/binder.c2298
-rw-r--r--drivers/staging/android/binder.h308
-rw-r--r--drivers/staging/android/binder_trace.h329
-rw-r--r--drivers/staging/android/ion/Kconfig35
-rw-r--r--drivers/staging/android/ion/Makefile10
-rw-r--r--drivers/staging/android/ion/compat_ion.c195
-rw-r--r--drivers/staging/android/ion/compat_ion.h30
-rw-r--r--drivers/staging/android/ion/ion.c1645
-rw-r--r--drivers/staging/android/ion/ion.h204
-rw-r--r--drivers/staging/android/ion/ion_carveout_heap.c194
-rw-r--r--drivers/staging/android/ion/ion_chunk_heap.c195
-rw-r--r--drivers/staging/android/ion/ion_cma_heap.c218
-rw-r--r--drivers/staging/android/ion/ion_dummy_driver.c158
-rw-r--r--drivers/staging/android/ion/ion_heap.c383
-rw-r--r--drivers/staging/android/ion/ion_page_pool.c182
-rw-r--r--drivers/staging/android/ion/ion_priv.h405
-rw-r--r--drivers/staging/android/ion/ion_system_heap.c446
-rw-r--r--drivers/staging/android/ion/ion_test.c282
-rw-r--r--drivers/staging/android/ion/tegra/Makefile1
-rw-r--r--drivers/staging/android/ion/tegra/tegra_ion.c82
-rw-r--r--drivers/staging/android/logger.c459
-rw-r--r--drivers/staging/android/logger.h61
-rw-r--r--drivers/staging/android/lowmemorykiller.c191
-rw-r--r--drivers/staging/android/ram_console.c395
-rw-r--r--drivers/staging/android/sw_sync.c268
-rw-r--r--drivers/staging/android/sw_sync.h59
-rw-r--r--drivers/staging/android/sync.c1029
-rw-r--r--drivers/staging/android/sync.h344
-rw-r--r--drivers/staging/android/timed_gpio.c132
-rw-r--r--drivers/staging/android/timed_gpio.h10
-rw-r--r--drivers/staging/android/timed_output.c118
-rw-r--r--drivers/staging/android/timed_output.h37
-rw-r--r--drivers/staging/android/trace/sync.h82
-rw-r--r--drivers/staging/android/uapi/android_alarm.h62
-rw-r--r--drivers/staging/android/uapi/ashmem.h47
-rw-r--r--drivers/staging/android/uapi/binder.h351
-rw-r--r--drivers/staging/android/uapi/ion.h196
-rw-r--r--drivers/staging/android/uapi/ion_test.h70
-rw-r--r--drivers/staging/android/uapi/sw_sync.h32
-rw-r--r--drivers/staging/android/uapi/sync.h97
-rw-r--r--drivers/staging/asus_oled/Kconfig6
-rw-r--r--drivers/staging/asus_oled/Makefile1
-rw-r--r--drivers/staging/asus_oled/README156
-rw-r--r--drivers/staging/asus_oled/TODO10
-rw-r--r--drivers/staging/asus_oled/asus_oled.c745
-rw-r--r--drivers/staging/asus_oled/linux.txt33
-rw-r--r--drivers/staging/asus_oled/linux_f.txt18
-rw-r--r--drivers/staging/asus_oled/linux_fr.txt33
-rw-r--r--drivers/staging/asus_oled/tux.txt33
-rw-r--r--drivers/staging/asus_oled/tux_r.txt33
-rw-r--r--drivers/staging/asus_oled/tux_r2.txt33
-rw-r--r--drivers/staging/asus_oled/zig.txt33
-rw-r--r--drivers/staging/at76_usb/Kconfig8
-rw-r--r--drivers/staging/at76_usb/Makefile1
-rw-r--r--drivers/staging/at76_usb/TODO2
-rw-r--r--drivers/staging/at76_usb/at76_usb.c2771
-rw-r--r--drivers/staging/at76_usb/at76_usb.h508
-rw-r--r--drivers/staging/bcm/Adapter.h457
-rw-r--r--drivers/staging/bcm/Bcmchar.c2652
-rw-r--r--drivers/staging/bcm/Bcmnet.c241
-rw-r--r--drivers/staging/bcm/CmHost.c2253
-rw-r--r--drivers/staging/bcm/CmHost.h62
-rw-r--r--drivers/staging/bcm/DDRInit.c1239
-rw-r--r--drivers/staging/bcm/DDRInit.h9
-rw-r--r--drivers/staging/bcm/Debug.h242
-rw-r--r--drivers/staging/bcm/HandleControlPacket.c235
-rw-r--r--drivers/staging/bcm/HostMIBSInterface.h192
-rw-r--r--drivers/staging/bcm/IPv6Protocol.c451
-rw-r--r--drivers/staging/bcm/IPv6ProtocolHdr.h85
-rw-r--r--drivers/staging/bcm/InterfaceAdapter.h79
-rw-r--r--drivers/staging/bcm/InterfaceDld.c316
-rw-r--r--drivers/staging/bcm/InterfaceIdleMode.c275
-rw-r--r--drivers/staging/bcm/InterfaceIdleMode.h15
-rw-r--r--drivers/staging/bcm/InterfaceInit.c717
-rw-r--r--drivers/staging/bcm/InterfaceInit.h26
-rw-r--r--drivers/staging/bcm/InterfaceIsr.c190
-rw-r--r--drivers/staging/bcm/InterfaceIsr.h15
-rw-r--r--drivers/staging/bcm/InterfaceMacros.h18
-rw-r--r--drivers/staging/bcm/InterfaceMisc.c217
-rw-r--r--drivers/staging/bcm/InterfaceMisc.h42
-rw-r--r--drivers/staging/bcm/InterfaceRx.c233
-rw-r--r--drivers/staging/bcm/InterfaceRx.h7
-rw-r--r--drivers/staging/bcm/InterfaceTx.c174
-rw-r--r--drivers/staging/bcm/InterfaceTx.h7
-rw-r--r--drivers/staging/bcm/Ioctl.h226
-rw-r--r--drivers/staging/bcm/Kconfig6
-rw-r--r--drivers/staging/bcm/LeakyBucket.c317
-rw-r--r--drivers/staging/bcm/Macros.h352
-rw-r--r--drivers/staging/bcm/Makefile12
-rw-r--r--drivers/staging/bcm/Misc.c1580
-rw-r--r--drivers/staging/bcm/PHSDefines.h94
-rw-r--r--drivers/staging/bcm/PHSModule.c1448
-rw-r--r--drivers/staging/bcm/PHSModule.h50
-rw-r--r--drivers/staging/bcm/Protocol.h128
-rw-r--r--drivers/staging/bcm/Prototypes.h222
-rw-r--r--drivers/staging/bcm/Qos.c777
-rw-r--r--drivers/staging/bcm/Queue.h31
-rw-r--r--drivers/staging/bcm/TODO22
-rw-r--r--drivers/staging/bcm/Transmit.c245
-rw-r--r--drivers/staging/bcm/Typedefs.h47
-rw-r--r--drivers/staging/bcm/cntrl_SignalingInterface.h311
-rw-r--r--drivers/staging/bcm/headers.h78
-rw-r--r--drivers/staging/bcm/hostmibs.c150
-rw-r--r--drivers/staging/bcm/led_control.c916
-rw-r--r--drivers/staging/bcm/led_control.h84
-rw-r--r--drivers/staging/bcm/nvm.c4613
-rw-r--r--drivers/staging/bcm/nvm.h286
-rw-r--r--drivers/staging/bcm/sort.c52
-rw-r--r--drivers/staging/bcm/target_params.h57
-rw-r--r--drivers/staging/bcm/vendorspecificextn.c142
-rw-r--r--drivers/staging/bcm/vendorspecificextn.h18
-rw-r--r--drivers/staging/benet/Kconfig7
-rw-r--r--drivers/staging/benet/MAINTAINERS6
-rw-r--r--drivers/staging/benet/Makefile14
-rw-r--r--drivers/staging/benet/TODO6
-rw-r--r--drivers/staging/benet/asyncmesg.h82
-rw-r--r--drivers/staging/benet/be_cm.h134
-rw-r--r--drivers/staging/benet/be_common.h53
-rw-r--r--drivers/staging/benet/be_ethtool.c348
-rw-r--r--drivers/staging/benet/be_init.c1382
-rw-r--r--drivers/staging/benet/be_int.c863
-rw-r--r--drivers/staging/benet/be_netif.c705
-rw-r--r--drivers/staging/benet/benet.h429
-rw-r--r--drivers/staging/benet/bestatus.h103
-rw-r--r--drivers/staging/benet/cev.h243
-rw-r--r--drivers/staging/benet/cq.c211
-rw-r--r--drivers/staging/benet/descriptors.h71
-rw-r--r--drivers/staging/benet/doorbells.h179
-rw-r--r--drivers/staging/benet/ep.h66
-rw-r--r--drivers/staging/benet/eq.c299
-rw-r--r--drivers/staging/benet/eth.c1273
-rw-r--r--drivers/staging/benet/etx_context.h55
-rw-r--r--drivers/staging/benet/funcobj.c565
-rw-r--r--drivers/staging/benet/fwcmd_common.h222
-rw-r--r--drivers/staging/benet/fwcmd_common_bmap.h717
-rw-r--r--drivers/staging/benet/fwcmd_eth_bmap.h280
-rw-r--r--drivers/staging/benet/fwcmd_hdr_bmap.h54
-rw-r--r--drivers/staging/benet/fwcmd_mcc.h94
-rw-r--r--drivers/staging/benet/fwcmd_opcodes.h244
-rw-r--r--drivers/staging/benet/fwcmd_types_bmap.h29
-rw-r--r--drivers/staging/benet/host_struct.h182
-rw-r--r--drivers/staging/benet/hwlib.h830
-rw-r--r--drivers/staging/benet/mpu.c1364
-rw-r--r--drivers/staging/benet/mpu.h74
-rw-r--r--drivers/staging/benet/mpu_context.h46
-rw-r--r--drivers/staging/benet/pcicfg.h825
-rw-r--r--drivers/staging/benet/post_codes.h111
-rw-r--r--drivers/staging/benet/regmap.h68
-rw-r--r--drivers/staging/ced1401/Kconfig6
-rw-r--r--drivers/staging/ced1401/Makefile3
-rw-r--r--drivers/staging/ced1401/TODO10
-rw-r--r--drivers/staging/ced1401/ced_ioc.c1494
-rw-r--r--drivers/staging/ced1401/ced_ioctl.h336
-rw-r--r--drivers/staging/ced1401/machine.h119
-rw-r--r--drivers/staging/ced1401/usb1401.c1582
-rw-r--r--drivers/staging/ced1401/usb1401.h246
-rw-r--r--drivers/staging/ced1401/use1401.h288
-rw-r--r--drivers/staging/ced1401/use14_ioc.h299
-rw-r--r--drivers/staging/ced1401/userspace/use1401.c3035
-rw-r--r--drivers/staging/comedi/Kconfig1302
-rw-r--r--drivers/staging/comedi/Makefile25
-rw-r--r--drivers/staging/comedi/TODO5
-rw-r--r--drivers/staging/comedi/comedi.h405
-rw-r--r--drivers/staging/comedi/comedi_buf.c511
-rw-r--r--drivers/staging/comedi/comedi_compat32.c295
-rw-r--r--drivers/staging/comedi/comedi_compat32.h27
-rw-r--r--drivers/staging/comedi/comedi_fops.c2623
-rw-r--r--drivers/staging/comedi/comedi_fops.h8
-rw-r--r--drivers/staging/comedi/comedi_internal.h56
-rw-r--r--drivers/staging/comedi/comedi_ksyms.c77
-rw-r--r--drivers/staging/comedi/comedi_pci.c146
-rw-r--r--drivers/staging/comedi/comedi_pcmcia.c156
-rw-r--r--drivers/staging/comedi/comedi_rt.h150
-rw-r--r--drivers/staging/comedi/comedi_usb.c116
-rw-r--r--drivers/staging/comedi/comedidev.h673
-rw-r--r--drivers/staging/comedi/comedilib.h181
-rw-r--r--drivers/staging/comedi/drivers.c1146
-rw-r--r--drivers/staging/comedi/drivers/8253.h345
-rw-r--r--drivers/staging/comedi/drivers/8255.c380
-rw-r--r--drivers/staging/comedi/drivers/8255.h33
-rw-r--r--drivers/staging/comedi/drivers/8255_pci.c329
-rw-r--r--drivers/staging/comedi/drivers/Makefile147
-rw-r--r--drivers/staging/comedi/drivers/addi-data/addi_common.c284
-rw-r--r--drivers/staging/comedi/drivers/addi-data/addi_common.h165
-rw-r--r--drivers/staging/comedi/drivers/addi-data/addi_eeprom.c360
-rw-r--r--drivers/staging/comedi/drivers/addi-data/hwdrv_apci035.c485
-rw-r--r--drivers/staging/comedi/drivers/addi-data/hwdrv_apci1500.c2413
-rw-r--r--drivers/staging/comedi/drivers/addi-data/hwdrv_apci1564.c551
-rw-r--r--drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c2190
-rw-r--r--drivers/staging/comedi/drivers/addi-data/hwdrv_apci3200.c3165
-rw-r--r--drivers/staging/comedi/drivers/addi-data/hwdrv_apci3501.c174
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_035.c77
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_1032.c384
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_1500.c76
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_1516.c227
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_1564.c192
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_16xx.c188
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_2032.c378
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_2200.c153
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_3120.c250
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_3200.c125
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_3501.c447
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_3xxx.c982
-rw-r--r--drivers/staging/comedi/drivers/addi_watchdog.c161
-rw-r--r--drivers/staging/comedi/drivers/addi_watchdog.h9
-rw-r--r--drivers/staging/comedi/drivers/adl_pci6208.c260
-rw-r--r--drivers/staging/comedi/drivers/adl_pci7x3x.c280
-rw-r--r--drivers/staging/comedi/drivers/adl_pci8164.c164
-rw-r--r--drivers/staging/comedi/drivers/adl_pci9111.c903
-rw-r--r--drivers/staging/comedi/drivers/adl_pci9118.c2090
-rw-r--r--drivers/staging/comedi/drivers/adq12b.c293
-rw-r--r--drivers/staging/comedi/drivers/adv_pci1710.c1338
-rw-r--r--drivers/staging/comedi/drivers/adv_pci1723.c323
-rw-r--r--drivers/staging/comedi/drivers/adv_pci1724.c401
-rw-r--r--drivers/staging/comedi/drivers/adv_pci_dio.c1222
-rw-r--r--drivers/staging/comedi/drivers/aio_aio12_8.c272
-rw-r--r--drivers/staging/comedi/drivers/aio_iiro_16.c114
-rw-r--r--drivers/staging/comedi/drivers/amcc_s5933.h172
-rw-r--r--drivers/staging/comedi/drivers/amplc_dio200.c305
-rw-r--r--drivers/staging/comedi/drivers/amplc_dio200.h90
-rw-r--r--drivers/staging/comedi/drivers/amplc_dio200_common.c1223
-rw-r--r--drivers/staging/comedi/drivers/amplc_dio200_pci.c480
-rw-r--r--drivers/staging/comedi/drivers/amplc_pc236.c572
-rw-r--r--drivers/staging/comedi/drivers/amplc_pc263.c114
-rw-r--r--drivers/staging/comedi/drivers/amplc_pci224.c1372
-rw-r--r--drivers/staging/comedi/drivers/amplc_pci230.c2825
-rw-r--r--drivers/staging/comedi/drivers/amplc_pci263.c120
-rw-r--r--drivers/staging/comedi/drivers/c6xdigio.c307
-rw-r--r--drivers/staging/comedi/drivers/cb_das16_cs.c372
-rw-r--r--drivers/staging/comedi/drivers/cb_pcidas.c1652
-rw-r--r--drivers/staging/comedi/drivers/cb_pcidas64.c4119
-rw-r--r--drivers/staging/comedi/drivers/cb_pcidda.c429
-rw-r--r--drivers/staging/comedi/drivers/cb_pcimdas.c302
-rw-r--r--drivers/staging/comedi/drivers/cb_pcimdda.c225
-rw-r--r--drivers/staging/comedi/drivers/comedi_bond.c687
-rw-r--r--drivers/staging/comedi/drivers/comedi_fc.c132
-rw-r--r--drivers/staging/comedi/drivers/comedi_fc.h157
-rw-r--r--drivers/staging/comedi/drivers/comedi_parport.c526
-rw-r--r--drivers/staging/comedi/drivers/comedi_pci.h60
-rw-r--r--drivers/staging/comedi/drivers/comedi_test.c607
-rw-r--r--drivers/staging/comedi/drivers/contec_pci_dio.c128
-rw-r--r--drivers/staging/comedi/drivers/dac02.c172
-rw-r--r--drivers/staging/comedi/drivers/daqboard2000.c815
-rw-r--r--drivers/staging/comedi/drivers/das08.c580
-rw-r--r--drivers/staging/comedi/drivers/das08.h52
-rw-r--r--drivers/staging/comedi/drivers/das08_cs.c117
-rw-r--r--drivers/staging/comedi/drivers/das08_isa.c205
-rw-r--r--drivers/staging/comedi/drivers/das08_pci.c108
-rw-r--r--drivers/staging/comedi/drivers/das16.c1259
-rw-r--r--drivers/staging/comedi/drivers/das16m1.c648
-rw-r--r--drivers/staging/comedi/drivers/das1800.c1608
-rw-r--r--drivers/staging/comedi/drivers/das6402.c547
-rw-r--r--drivers/staging/comedi/drivers/das800.c771
-rw-r--r--drivers/staging/comedi/drivers/dmm32at.c806
-rw-r--r--drivers/staging/comedi/drivers/dt2801.c654
-rw-r--r--drivers/staging/comedi/drivers/dt2811.c490
-rw-r--r--drivers/staging/comedi/drivers/dt2814.c304
-rw-r--r--drivers/staging/comedi/drivers/dt2815.c225
-rw-r--r--drivers/staging/comedi/drivers/dt2817.c151
-rw-r--r--drivers/staging/comedi/drivers/dt282x.c1384
-rw-r--r--drivers/staging/comedi/drivers/dt3000.c814
-rw-r--r--drivers/staging/comedi/drivers/dt9812.c1106
-rw-r--r--drivers/staging/comedi/drivers/dyna_pci10xx.c281
-rw-r--r--drivers/staging/comedi/drivers/fl512.c178
-rw-r--r--drivers/staging/comedi/drivers/gsc_hpdi.c751
-rw-r--r--drivers/staging/comedi/drivers/icp_multi.c1107
-rw-r--r--drivers/staging/comedi/drivers/icp_multi.h278
-rw-r--r--drivers/staging/comedi/drivers/ii_pci20kc.c534
-rw-r--r--drivers/staging/comedi/drivers/jr3_pci.c830
-rw-r--r--drivers/staging/comedi/drivers/jr3_pci.h681
-rw-r--r--drivers/staging/comedi/drivers/ke_counter.c181
-rw-r--r--drivers/staging/comedi/drivers/me4000.c2651
-rw-r--r--drivers/staging/comedi/drivers/me4000.h446
-rw-r--r--drivers/staging/comedi/drivers/me_daq.c834
-rw-r--r--drivers/staging/comedi/drivers/mf6x4.c351
-rw-r--r--drivers/staging/comedi/drivers/mite.c618
-rw-r--r--drivers/staging/comedi/drivers/mite.h243
-rw-r--r--drivers/staging/comedi/drivers/mpc624.c361
-rw-r--r--drivers/staging/comedi/drivers/multiq3.c310
-rw-r--r--drivers/staging/comedi/drivers/ni_6527.c476
-rw-r--r--drivers/staging/comedi/drivers/ni_65xx.c778
-rw-r--r--drivers/staging/comedi/drivers/ni_660x.c1240
-rw-r--r--drivers/staging/comedi/drivers/ni_670x.c300
-rw-r--r--drivers/staging/comedi/drivers/ni_at_a2150.c821
-rw-r--r--drivers/staging/comedi/drivers/ni_at_ao.c409
-rw-r--r--drivers/staging/comedi/drivers/ni_atmio.c494
-rw-r--r--drivers/staging/comedi/drivers/ni_atmio16d.c781
-rw-r--r--drivers/staging/comedi/drivers/ni_daq_700.c267
-rw-r--r--drivers/staging/comedi/drivers/ni_daq_dio24.c99
-rw-r--r--drivers/staging/comedi/drivers/ni_labpc.c1515
-rw-r--r--drivers/staging/comedi/drivers/ni_labpc.h90
-rw-r--r--drivers/staging/comedi/drivers/ni_labpc_cs.c135
-rw-r--r--drivers/staging/comedi/drivers/ni_labpc_isadma.c227
-rw-r--r--drivers/staging/comedi/drivers/ni_labpc_isadma.h57
-rw-r--r--drivers/staging/comedi/drivers/ni_labpc_pci.c133
-rw-r--r--drivers/staging/comedi/drivers/ni_labpc_regs.h75
-rw-r--r--drivers/staging/comedi/drivers/ni_mio_common.c5740
-rw-r--r--drivers/staging/comedi/drivers/ni_mio_cs.c310
-rw-r--r--drivers/staging/comedi/drivers/ni_pcidio.c1088
-rw-r--r--drivers/staging/comedi/drivers/ni_pcimio.c1706
-rw-r--r--drivers/staging/comedi/drivers/ni_stc.h1507
-rw-r--r--drivers/staging/comedi/drivers/ni_tio.c1698
-rw-r--r--drivers/staging/comedi/drivers/ni_tio.h156
-rw-r--r--drivers/staging/comedi/drivers/ni_tio_internal.h404
-rw-r--r--drivers/staging/comedi/drivers/ni_tiocmd.c496
-rw-r--r--drivers/staging/comedi/drivers/pcl711.c570
-rw-r--r--drivers/staging/comedi/drivers/pcl724.c155
-rw-r--r--drivers/staging/comedi/drivers/pcl726.c455
-rw-r--r--drivers/staging/comedi/drivers/pcl730.c337
-rw-r--r--drivers/staging/comedi/drivers/pcl812.c1437
-rw-r--r--drivers/staging/comedi/drivers/pcl816.c811
-rw-r--r--drivers/staging/comedi/drivers/pcl818.c1258
-rw-r--r--drivers/staging/comedi/drivers/pcm3724.c247
-rw-r--r--drivers/staging/comedi/drivers/pcmad.c159
-rw-r--r--drivers/staging/comedi/drivers/pcmda12.c176
-rw-r--r--drivers/staging/comedi/drivers/pcmmio.c849
-rw-r--r--drivers/staging/comedi/drivers/pcmuio.c690
-rw-r--r--drivers/staging/comedi/drivers/plx9052.h79
-rw-r--r--drivers/staging/comedi/drivers/plx9080.h111
-rw-r--r--drivers/staging/comedi/drivers/quatech_daqp_cs.c816
-rw-r--r--drivers/staging/comedi/drivers/rtd520.c2719
-rw-r--r--drivers/staging/comedi/drivers/rtd520.h412
-rw-r--r--drivers/staging/comedi/drivers/rti800.c378
-rw-r--r--drivers/staging/comedi/drivers/rti802.c143
-rw-r--r--drivers/staging/comedi/drivers/s526.c628
-rw-r--r--drivers/staging/comedi/drivers/s626.c5386
-rw-r--r--drivers/staging/comedi/drivers/s626.h1544
-rw-r--r--drivers/staging/comedi/drivers/serial2002.c807
-rw-r--r--drivers/staging/comedi/drivers/skel.c729
-rw-r--r--drivers/staging/comedi/drivers/ssv_dnp.c187
-rw-r--r--drivers/staging/comedi/drivers/unioxx5.c508
-rw-r--r--drivers/staging/comedi/drivers/usbdux.c3092
-rw-r--r--drivers/staging/comedi/drivers/usbduxfast.c2177
-rw-r--r--drivers/staging/comedi/drivers/usbduxsigma.c1715
-rw-r--r--drivers/staging/comedi/drivers/vmk80xx.c963
-rw-r--r--drivers/staging/comedi/interrupt.h60
-rw-r--r--drivers/staging/comedi/kcomedilib/Makefile11
-rw-r--r--drivers/staging/comedi/kcomedilib/data.c89
-rw-r--r--drivers/staging/comedi/kcomedilib/dio.c95
-rw-r--r--drivers/staging/comedi/kcomedilib/get.c294
-rw-r--r--drivers/staging/comedi/kcomedilib/kcomedilib_main.c615
-rw-r--r--drivers/staging/comedi/kcomedilib/ksyms.c144
-rw-r--r--drivers/staging/comedi/pci_ids.h31
-rw-r--r--drivers/staging/comedi/proc.c135
-rw-r--r--drivers/staging/comedi/range.c133
-rw-r--r--drivers/staging/comedi/rt.c412
-rw-r--r--drivers/staging/comedi/rt_pend_tq.c113
-rw-r--r--drivers/staging/comedi/rt_pend_tq.h10
-rw-r--r--drivers/staging/comedi/wrapper.h25
-rw-r--r--drivers/staging/cptm1217/Kconfig12
-rw-r--r--drivers/staging/cptm1217/Makefile2
-rw-r--r--drivers/staging/cptm1217/TODO5
-rw-r--r--drivers/staging/cptm1217/clearpad_tm1217.c666
-rw-r--r--drivers/staging/cptm1217/cp_tm1217.h8
-rw-r--r--drivers/staging/crystalhd/Kconfig6
-rw-r--r--drivers/staging/crystalhd/Makefile6
-rw-r--r--drivers/staging/crystalhd/TODO15
-rw-r--r--drivers/staging/crystalhd/bc_dts_defs.h572
-rw-r--r--drivers/staging/crystalhd/bc_dts_glob_lnx.h300
-rw-r--r--drivers/staging/crystalhd/bcm_70012_regs.h758
-rw-r--r--drivers/staging/crystalhd/crystalhd.h13
-rw-r--r--drivers/staging/crystalhd/crystalhd_cmds.c1066
-rw-r--r--drivers/staging/crystalhd/crystalhd_cmds.h92
-rw-r--r--drivers/staging/crystalhd/crystalhd_fw_if.h370
-rw-r--r--drivers/staging/crystalhd/crystalhd_hw.c2458
-rw-r--r--drivers/staging/crystalhd/crystalhd_hw.h407
-rw-r--r--drivers/staging/crystalhd/crystalhd_lnx.c782
-rw-r--r--drivers/staging/crystalhd/crystalhd_lnx.h93
-rw-r--r--drivers/staging/crystalhd/crystalhd_misc.c1044
-rw-r--r--drivers/staging/crystalhd/crystalhd_misc.h232
-rw-r--r--drivers/staging/cxt1e1/Kconfig21
-rw-r--r--drivers/staging/cxt1e1/Makefile18
-rw-r--r--drivers/staging/cxt1e1/comet.c596
-rw-r--r--drivers/staging/cxt1e1/comet.h353
-rw-r--r--drivers/staging/cxt1e1/comet_tables.c538
-rw-r--r--drivers/staging/cxt1e1/comet_tables.h61
-rw-r--r--drivers/staging/cxt1e1/functions.c318
-rw-r--r--drivers/staging/cxt1e1/hwprobe.c382
-rw-r--r--drivers/staging/cxt1e1/libsbew.h549
-rw-r--r--drivers/staging/cxt1e1/linux.c1142
-rw-r--r--drivers/staging/cxt1e1/musycc.c1720
-rw-r--r--drivers/staging/cxt1e1/musycc.h427
-rw-r--r--drivers/staging/cxt1e1/pmc93x6_eeprom.c532
-rw-r--r--drivers/staging/cxt1e1/pmc93x6_eeprom.h39
-rw-r--r--drivers/staging/cxt1e1/pmcc4.h108
-rw-r--r--drivers/staging/cxt1e1/pmcc4_cpld.h91
-rw-r--r--drivers/staging/cxt1e1/pmcc4_defs.h68
-rw-r--r--drivers/staging/cxt1e1/pmcc4_drv.c1613
-rw-r--r--drivers/staging/cxt1e1/pmcc4_ioctls.h65
-rw-r--r--drivers/staging/cxt1e1/pmcc4_private.h295
-rw-r--r--drivers/staging/cxt1e1/pmcc4_sysdep.h63
-rw-r--r--drivers/staging/cxt1e1/sbe_bid.h47
-rw-r--r--drivers/staging/cxt1e1/sbe_promformat.h130
-rw-r--r--drivers/staging/cxt1e1/sbecom_inline_linux.h193
-rw-r--r--drivers/staging/cxt1e1/sbecrc.c133
-rw-r--r--drivers/staging/cxt1e1/sbeid.c205
-rw-r--r--drivers/staging/cxt1e1/sbeproc.c219
-rw-r--r--drivers/staging/cxt1e1/sbeproc.h42
-rw-r--r--drivers/staging/cxt1e1/sbew_ioc.h81
-rw-r--r--drivers/staging/dgap/Kconfig6
-rw-r--r--drivers/staging/dgap/Makefile1
-rw-r--r--drivers/staging/dgap/dgap.c7499
-rw-r--r--drivers/staging/dgap/dgap.h1249
-rw-r--r--drivers/staging/dgnc/Kconfig6
-rw-r--r--drivers/staging/dgnc/Makefile7
-rw-r--r--drivers/staging/dgnc/TODO17
-rw-r--r--drivers/staging/dgnc/dgnc_cls.c1434
-rw-r--r--drivers/staging/dgnc/dgnc_cls.h89
-rw-r--r--drivers/staging/dgnc/dgnc_driver.c934
-rw-r--r--drivers/staging/dgnc/dgnc_driver.h563
-rw-r--r--drivers/staging/dgnc/dgnc_kcompat.h64
-rw-r--r--drivers/staging/dgnc/dgnc_mgmt.c304
-rw-r--r--drivers/staging/dgnc/dgnc_mgmt.h31
-rw-r--r--drivers/staging/dgnc/dgnc_neo.c1942
-rw-r--r--drivers/staging/dgnc/dgnc_neo.h157
-rw-r--r--drivers/staging/dgnc/dgnc_pci.h75
-rw-r--r--drivers/staging/dgnc/dgnc_sysfs.c756
-rw-r--r--drivers/staging/dgnc/dgnc_sysfs.h49
-rw-r--r--drivers/staging/dgnc/dgnc_trace.c185
-rw-r--r--drivers/staging/dgnc/dgnc_trace.h44
-rw-r--r--drivers/staging/dgnc/dgnc_tty.c3446
-rw-r--r--drivers/staging/dgnc/dgnc_tty.h42
-rw-r--r--drivers/staging/dgnc/dgnc_types.h36
-rw-r--r--drivers/staging/dgnc/digi.h416
-rw-r--r--drivers/staging/dgnc/dpacompat.h115
-rw-r--r--drivers/staging/dgrp/Kconfig9
-rw-r--r--drivers/staging/dgrp/Makefile12
-rw-r--r--drivers/staging/dgrp/README2
-rw-r--r--drivers/staging/dgrp/TODO13
-rw-r--r--drivers/staging/dgrp/dgrp_common.c169
-rw-r--r--drivers/staging/dgrp/dgrp_common.h150
-rw-r--r--drivers/staging/dgrp/dgrp_dpa_ops.c534
-rw-r--r--drivers/staging/dgrp/dgrp_driver.c105
-rw-r--r--drivers/staging/dgrp/dgrp_mon_ops.c327
-rw-r--r--drivers/staging/dgrp/dgrp_net_ops.c3666
-rw-r--r--drivers/staging/dgrp/dgrp_ports_ops.c156
-rw-r--r--drivers/staging/dgrp/dgrp_specproc.c541
-rw-r--r--drivers/staging/dgrp/dgrp_sysfs.c558
-rw-r--r--drivers/staging/dgrp/dgrp_tty.c3337
-rw-r--r--drivers/staging/dgrp/digirp.h129
-rw-r--r--drivers/staging/dgrp/drp.h693
-rw-r--r--drivers/staging/echo/TODO8
-rw-r--r--drivers/staging/echo/bit_operations.h228
-rw-r--r--drivers/staging/echo/echo.c638
-rw-r--r--drivers/staging/echo/fir.h295
-rw-r--r--drivers/staging/echo/mmx.h281
-rw-r--r--drivers/staging/echo/oslec.h86
-rw-r--r--drivers/staging/epl/Benchmark.h437
-rw-r--r--drivers/staging/epl/Debug.h734
-rw-r--r--drivers/staging/epl/Edrv8139.c1252
-rw-r--r--drivers/staging/epl/EdrvFec.h114
-rw-r--r--drivers/staging/epl/EdrvFec5282.h340
-rw-r--r--drivers/staging/epl/EdrvSim.h89
-rw-r--r--drivers/staging/epl/Epl.h273
-rw-r--r--drivers/staging/epl/EplAmi.h362
-rw-r--r--drivers/staging/epl/EplApiGeneric.c2060
-rw-r--r--drivers/staging/epl/EplApiLinux.h141
-rw-r--r--drivers/staging/epl/EplApiLinuxKernel.c1260
-rw-r--r--drivers/staging/epl/EplApiProcessImage.c347
-rw-r--r--drivers/staging/epl/EplCfg.h196
-rw-r--r--drivers/staging/epl/EplDef.h355
-rw-r--r--drivers/staging/epl/EplDll.h205
-rw-r--r--drivers/staging/epl/EplDllCal.h123
-rw-r--r--drivers/staging/epl/EplDllk.c4054
-rw-r--r--drivers/staging/epl/EplDllkCal.c1260
-rw-r--r--drivers/staging/epl/EplDlluCal.c529
-rw-r--r--drivers/staging/epl/EplErrDef.h294
-rw-r--r--drivers/staging/epl/EplErrorHandlerk.c810
-rw-r--r--drivers/staging/epl/EplEvent.h279
-rw-r--r--drivers/staging/epl/EplEventk.c853
-rw-r--r--drivers/staging/epl/EplEventu.c814
-rw-r--r--drivers/staging/epl/EplFrame.h344
-rw-r--r--drivers/staging/epl/EplIdentu.c488
-rw-r--r--drivers/staging/epl/EplInc.h385
-rw-r--r--drivers/staging/epl/EplInstDef.h377
-rw-r--r--drivers/staging/epl/EplLed.h92
-rw-r--r--drivers/staging/epl/EplNmt.h230
-rw-r--r--drivers/staging/epl/EplNmtCnu.c704
-rw-r--r--drivers/staging/epl/EplNmtMnu.c2835
-rw-r--r--drivers/staging/epl/EplNmtk.c1842
-rw-r--r--drivers/staging/epl/EplNmtkCal.c149
-rw-r--r--drivers/staging/epl/EplNmtu.c708
-rw-r--r--drivers/staging/epl/EplNmtuCal.c158
-rw-r--r--drivers/staging/epl/EplObd.c3262
-rw-r--r--drivers/staging/epl/EplObd.h464
-rw-r--r--drivers/staging/epl/EplObdMacro.h354
-rw-r--r--drivers/staging/epl/EplObdkCal.c147
-rw-r--r--drivers/staging/epl/EplObdu.c517
-rw-r--r--drivers/staging/epl/EplObduCal.c558
-rw-r--r--drivers/staging/epl/EplObjDef.h208
-rw-r--r--drivers/staging/epl/EplPdo.h117
-rw-r--r--drivers/staging/epl/EplPdok.c694
-rw-r--r--drivers/staging/epl/EplPdokCal.c266
-rw-r--r--drivers/staging/epl/EplPdou.c565
-rw-r--r--drivers/staging/epl/EplSdo.h245
-rw-r--r--drivers/staging/epl/EplSdoAc.h111
-rw-r--r--drivers/staging/epl/EplSdoAsndu.c483
-rw-r--r--drivers/staging/epl/EplSdoAsySequ.c2522
-rw-r--r--drivers/staging/epl/EplSdoComu.c3346
-rw-r--r--drivers/staging/epl/EplSdoUdpu.c790
-rw-r--r--drivers/staging/epl/EplStatusu.c380
-rw-r--r--drivers/staging/epl/EplTarget.h233
-rw-r--r--drivers/staging/epl/EplTimer.h117
-rw-r--r--drivers/staging/epl/EplTimeruLinuxKernel.c446
-rw-r--r--drivers/staging/epl/EplTimeruNull.c312
-rw-r--r--drivers/staging/epl/EplTimeruWin32.c513
-rw-r--r--drivers/staging/epl/EplVersion.h98
-rw-r--r--drivers/staging/epl/Kconfig6
-rw-r--r--drivers/staging/epl/Makefile41
-rw-r--r--drivers/staging/epl/SharedBuff.c1799
-rw-r--r--drivers/staging/epl/SharedBuff.h204
-rw-r--r--drivers/staging/epl/ShbIpc-LinuxKernel.c966
-rw-r--r--drivers/staging/epl/ShbIpc-Win32.c1202
-rw-r--r--drivers/staging/epl/ShbIpc.h125
-rw-r--r--drivers/staging/epl/ShbLinuxKernel.h68
-rw-r--r--drivers/staging/epl/SocketLinuxKernel.c197
-rw-r--r--drivers/staging/epl/SocketLinuxKernel.h105
-rw-r--r--drivers/staging/epl/TimerHighReskX86.c522
-rw-r--r--drivers/staging/epl/VirtualEthernetLinux.c342
-rw-r--r--drivers/staging/epl/amix86.c905
-rw-r--r--drivers/staging/epl/demo_main.c961
-rw-r--r--drivers/staging/epl/edrv.h167
-rw-r--r--drivers/staging/epl/global.h1391
-rw-r--r--drivers/staging/epl/kernel/EplDllk.h165
-rw-r--r--drivers/staging/epl/kernel/EplDllkCal.h141
-rw-r--r--drivers/staging/epl/kernel/EplErrorHandlerk.h100
-rw-r--r--drivers/staging/epl/kernel/EplEventk.h108
-rw-r--r--drivers/staging/epl/kernel/EplNmtk.h105
-rw-r--r--drivers/staging/epl/kernel/EplNmtkCal.h89
-rw-r--r--drivers/staging/epl/kernel/EplObdk.h196
-rw-r--r--drivers/staging/epl/kernel/EplObdkCal.h89
-rw-r--r--drivers/staging/epl/kernel/EplPdok.h110
-rw-r--r--drivers/staging/epl/kernel/EplPdokCal.h99
-rw-r--r--drivers/staging/epl/kernel/EplTimerHighResk.h109
-rw-r--r--drivers/staging/epl/kernel/EplTimerk.h118
-rw-r--r--drivers/staging/epl/kernel/VirtualEthernet.h96
-rw-r--r--drivers/staging/epl/proc_fs.c409
-rw-r--r--drivers/staging/epl/proc_fs.h89
-rw-r--r--drivers/staging/epl/user/EplCfgMau.h284
-rw-r--r--drivers/staging/epl/user/EplDllu.h108
-rw-r--r--drivers/staging/epl/user/EplDlluCal.h117
-rw-r--r--drivers/staging/epl/user/EplEventu.h108
-rw-r--r--drivers/staging/epl/user/EplIdentu.h108
-rw-r--r--drivers/staging/epl/user/EplLedu.h109
-rw-r--r--drivers/staging/epl/user/EplNmtCnu.h108
-rw-r--r--drivers/staging/epl/user/EplNmtMnu.h131
-rw-r--r--drivers/staging/epl/user/EplNmtu.h155
-rw-r--r--drivers/staging/epl/user/EplNmtuCal.h91
-rw-r--r--drivers/staging/epl/user/EplObdu.h192
-rw-r--r--drivers/staging/epl/user/EplObduCal.h148
-rw-r--r--drivers/staging/epl/user/EplPdou.h108
-rw-r--r--drivers/staging/epl/user/EplSdoAsndu.h107
-rw-r--r--drivers/staging/epl/user/EplSdoAsySequ.h111
-rw-r--r--drivers/staging/epl/user/EplSdoComu.h126
-rw-r--r--drivers/staging/epl/user/EplSdoUdpu.h109
-rw-r--r--drivers/staging/epl/user/EplStatusu.h104
-rw-r--r--drivers/staging/epl/user/EplTimeru.h107
-rw-r--r--drivers/staging/et131x/Kconfig12
-rw-r--r--drivers/staging/et131x/Makefile13
-rw-r--r--drivers/staging/et131x/README21
-rw-r--r--drivers/staging/et131x/et1310_address_map.h2399
-rw-r--r--drivers/staging/et131x/et1310_eeprom.c480
-rw-r--r--drivers/staging/et131x/et1310_eeprom.h89
-rw-r--r--drivers/staging/et131x/et1310_jagcore.c220
-rw-r--r--drivers/staging/et131x/et1310_jagcore.h112
-rw-r--r--drivers/staging/et131x/et1310_mac.c792
-rw-r--r--drivers/staging/et131x/et1310_mac.h93
-rw-r--r--drivers/staging/et131x/et1310_phy.c1279
-rw-r--r--drivers/staging/et131x/et1310_phy.h910
-rw-r--r--drivers/staging/et131x/et1310_pm.c207
-rw-r--r--drivers/staging/et131x/et1310_pm.h125
-rw-r--r--drivers/staging/et131x/et1310_rx.c1391
-rw-r--r--drivers/staging/et131x/et1310_rx.h373
-rw-r--r--drivers/staging/et131x/et1310_tx.c1522
-rw-r--r--drivers/staging/et131x/et1310_tx.h242
-rw-r--r--drivers/staging/et131x/et131x.c4751
-rw-r--r--drivers/staging/et131x/et131x.h1670
-rw-r--r--drivers/staging/et131x/et131x_adapter.h347
-rw-r--r--drivers/staging/et131x/et131x_config.c325
-rw-r--r--drivers/staging/et131x/et131x_config.h67
-rw-r--r--drivers/staging/et131x/et131x_debug.c217
-rw-r--r--drivers/staging/et131x/et131x_debug.h255
-rw-r--r--drivers/staging/et131x/et131x_defs.h128
-rw-r--r--drivers/staging/et131x/et131x_initpci.c1045
-rw-r--r--drivers/staging/et131x/et131x_initpci.h73
-rw-r--r--drivers/staging/et131x/et131x_isr.c488
-rw-r--r--drivers/staging/et131x/et131x_isr.h65
-rw-r--r--drivers/staging/et131x/et131x_netdev.c856
-rw-r--r--drivers/staging/et131x/et131x_netdev.h64
-rw-r--r--drivers/staging/et131x/et131x_version.h81
-rw-r--r--drivers/staging/frontier/Kconfig1
-rw-r--r--drivers/staging/frontier/README53
-rw-r--r--drivers/staging/frontier/alphatrack.c520
-rw-r--r--drivers/staging/frontier/alphatrack.h82
-rw-r--r--drivers/staging/frontier/frontier_compat.h63
-rw-r--r--drivers/staging/frontier/surface_sysfs.h100
-rw-r--r--drivers/staging/frontier/tranzport.c761
-rw-r--r--drivers/staging/ft1000/Kconfig22
-rw-r--r--drivers/staging/ft1000/Makefile3
-rw-r--r--drivers/staging/ft1000/TODO9
-rw-r--r--drivers/staging/ft1000/ft1000-pcmcia/Makefile3
-rw-r--r--drivers/staging/ft1000/ft1000-pcmcia/boot.h158
-rw-r--r--drivers/staging/ft1000/ft1000-pcmcia/ft1000.h73
-rw-r--r--drivers/staging/ft1000/ft1000-pcmcia/ft1000.imgbin0 -> 305770 bytes-rw-r--r--drivers/staging/ft1000/ft1000-pcmcia/ft1000_cs.c169
-rw-r--r--drivers/staging/ft1000/ft1000-pcmcia/ft1000_dnld.c774
-rw-r--r--drivers/staging/ft1000/ft1000-pcmcia/ft1000_hw.c2266
-rw-r--r--drivers/staging/ft1000/ft1000-pcmcia/ft1000_proc.c211
-rw-r--r--drivers/staging/ft1000/ft1000-usb/Makefile3
-rw-r--r--drivers/staging/ft1000/ft1000-usb/ft1000_debug.c792
-rw-r--r--drivers/staging/ft1000/ft1000-usb/ft1000_download.c1074
-rw-r--r--drivers/staging/ft1000/ft1000-usb/ft1000_hw.c1604
-rw-r--r--drivers/staging/ft1000/ft1000-usb/ft1000_ioctl.h123
-rw-r--r--drivers/staging/ft1000/ft1000-usb/ft1000_proc.c241
-rw-r--r--drivers/staging/ft1000/ft1000-usb/ft1000_usb.c268
-rw-r--r--drivers/staging/ft1000/ft1000-usb/ft1000_usb.h155
-rw-r--r--drivers/staging/ft1000/ft1000-usb/ft3000.imgbin0 -> 280414 bytes-rw-r--r--drivers/staging/ft1000/ft1000.h368
-rw-r--r--drivers/staging/fwserial/Kconfig31
-rw-r--r--drivers/staging/fwserial/Makefile2
-rw-r--r--drivers/staging/fwserial/TODO14
-rw-r--r--drivers/staging/fwserial/dma_fifo.c303
-rw-r--r--drivers/staging/fwserial/dma_fifo.h126
-rw-r--r--drivers/staging/fwserial/fwserial.c2955
-rw-r--r--drivers/staging/fwserial/fwserial.h369
-rw-r--r--drivers/staging/gdm724x/Kconfig15
-rw-r--r--drivers/staging/gdm724x/Makefile7
-rw-r--r--drivers/staging/gdm724x/TODO16
-rw-r--r--drivers/staging/gdm724x/gdm_endian.c67
-rw-r--r--drivers/staging/gdm724x/gdm_endian.h49
-rw-r--r--drivers/staging/gdm724x/gdm_lte.c944
-rw-r--r--drivers/staging/gdm724x/gdm_lte.h81
-rw-r--r--drivers/staging/gdm724x/gdm_mux.c692
-rw-r--r--drivers/staging/gdm724x/gdm_mux.h95
-rw-r--r--drivers/staging/gdm724x/gdm_tty.c346
-rw-r--r--drivers/staging/gdm724x/gdm_tty.h71
-rw-r--r--drivers/staging/gdm724x/gdm_usb.c1041
-rw-r--r--drivers/staging/gdm724x/gdm_usb.h109
-rw-r--r--drivers/staging/gdm724x/hci.h55
-rw-r--r--drivers/staging/gdm724x/hci_packet.h93
-rw-r--r--drivers/staging/gdm724x/netlink_k.c150
-rw-r--r--drivers/staging/gdm724x/netlink_k.h25
-rw-r--r--drivers/staging/gdm72xx/Kconfig46
-rw-r--r--drivers/staging/gdm72xx/Makefile6
-rw-r--r--drivers/staging/gdm72xx/TODO2
-rw-r--r--drivers/staging/gdm72xx/gdm_qos.c442
-rw-r--r--drivers/staging/gdm72xx/gdm_qos.h76
-rw-r--r--drivers/staging/gdm72xx/gdm_sdio.c708
-rw-r--r--drivers/staging/gdm72xx/gdm_sdio.h63
-rw-r--r--drivers/staging/gdm72xx/gdm_usb.c798
-rw-r--r--drivers/staging/gdm72xx/gdm_usb.h78
-rw-r--r--drivers/staging/gdm72xx/gdm_wimax.c962
-rw-r--r--drivers/staging/gdm72xx/gdm_wimax.h60
-rw-r--r--drivers/staging/gdm72xx/hci.h209
-rw-r--r--drivers/staging/gdm72xx/netlink_k.c158
-rw-r--r--drivers/staging/gdm72xx/netlink_k.h24
-rw-r--r--drivers/staging/gdm72xx/sdio_boot.c158
-rw-r--r--drivers/staging/gdm72xx/sdio_boot.h21
-rw-r--r--drivers/staging/gdm72xx/usb_boot.c359
-rw-r--r--drivers/staging/gdm72xx/usb_boot.h22
-rw-r--r--drivers/staging/gdm72xx/usb_ids.h82
-rw-r--r--drivers/staging/gdm72xx/wm_ioctl.h95
-rw-r--r--drivers/staging/go7007/Kconfig37
-rw-r--r--drivers/staging/go7007/Makefile27
-rw-r--r--drivers/staging/go7007/README11
-rw-r--r--drivers/staging/go7007/go7007-driver.c690
-rw-r--r--drivers/staging/go7007/go7007-i2c.c308
-rw-r--r--drivers/staging/go7007/go7007-v4l2.c1877
-rw-r--r--drivers/staging/go7007/go7007.h114
-rw-r--r--drivers/staging/go7007/s2250-board.c630
-rw-r--r--drivers/staging/go7007/s2250-loader.c188
-rw-r--r--drivers/staging/go7007/wis-i2c.h56
-rw-r--r--drivers/staging/go7007/wis-ov7640.c129
-rw-r--r--drivers/staging/go7007/wis-saa7113.c357
-rw-r--r--drivers/staging/go7007/wis-saa7115.c490
-rw-r--r--drivers/staging/go7007/wis-sony-tuner.c741
-rw-r--r--drivers/staging/go7007/wis-tw2804.c379
-rw-r--r--drivers/staging/go7007/wis-tw9903.c361
-rw-r--r--drivers/staging/go7007/wis-uda1342.c135
-rw-r--r--drivers/staging/goldfish/Kconfig13
-rw-r--r--drivers/staging/goldfish/Makefile6
-rw-r--r--drivers/staging/goldfish/README11
-rw-r--r--drivers/staging/goldfish/goldfish_audio.c384
-rw-r--r--drivers/staging/goldfish/goldfish_nand.c440
-rw-r--r--drivers/staging/goldfish/goldfish_nand_reg.h76
-rw-r--r--drivers/staging/gs_fpgaboot/Kconfig8
-rw-r--r--drivers/staging/gs_fpgaboot/Makefile2
-rw-r--r--drivers/staging/gs_fpgaboot/README71
-rw-r--r--drivers/staging/gs_fpgaboot/TODO7
-rw-r--r--drivers/staging/gs_fpgaboot/gs_fpgaboot.c421
-rw-r--r--drivers/staging/gs_fpgaboot/gs_fpgaboot.h56
-rw-r--r--drivers/staging/gs_fpgaboot/io.c300
-rw-r--r--drivers/staging/gs_fpgaboot/io.h90
-rw-r--r--drivers/staging/iio/Documentation/dac/max51741
-rw-r--r--drivers/staging/iio/Documentation/device.txt79
-rw-r--r--drivers/staging/iio/Documentation/generic_buffer.c340
-rw-r--r--drivers/staging/iio/Documentation/iio_event_monitor.c255
-rw-r--r--drivers/staging/iio/Documentation/iio_utils.h676
-rw-r--r--drivers/staging/iio/Documentation/inkernel.txt58
-rw-r--r--drivers/staging/iio/Documentation/light/sysfs-bus-iio-light-tsl25836
-rw-r--r--drivers/staging/iio/Documentation/light/sysfs-bus-iio-light-tsl2x7x13
-rw-r--r--drivers/staging/iio/Documentation/lsiio.c157
-rw-r--r--drivers/staging/iio/Documentation/overview.txt57
-rw-r--r--drivers/staging/iio/Documentation/ring.txt47
-rw-r--r--drivers/staging/iio/Documentation/sysfs-bus-iio-ad719220
-rw-r--r--drivers/staging/iio/Documentation/sysfs-bus-iio-adc-ad7280a21
-rw-r--r--drivers/staging/iio/Documentation/sysfs-bus-iio-dds96
-rw-r--r--drivers/staging/iio/Documentation/sysfs-bus-iio-impedance-analyzer-ad593330
-rw-r--r--drivers/staging/iio/Documentation/sysfs-bus-iio-light107
-rw-r--r--drivers/staging/iio/Documentation/sysfs-bus-iio-light-tsl258320
-rw-r--r--drivers/staging/iio/Documentation/sysfs-bus-iio-trigger-sysfs11
-rw-r--r--drivers/staging/iio/Documentation/trigger.txt35
-rw-r--r--drivers/staging/iio/Kconfig47
-rw-r--r--drivers/staging/iio/Makefile23
-rw-r--r--drivers/staging/iio/TODO84
-rw-r--r--drivers/staging/iio/accel/Kconfig78
-rw-r--r--drivers/staging/iio/accel/Makefile28
-rw-r--r--drivers/staging/iio/accel/adis16201.h66
-rw-r--r--drivers/staging/iio/accel/adis16201_core.c247
-rw-r--r--drivers/staging/iio/accel/adis16203.h59
-rw-r--r--drivers/staging/iio/accel/adis16203_core.c213
-rw-r--r--drivers/staging/iio/accel/adis16204.h68
-rw-r--r--drivers/staging/iio/accel/adis16204_core.c251
-rw-r--r--drivers/staging/iio/accel/adis16209.h105
-rw-r--r--drivers/staging/iio/accel/adis16209_core.c246
-rw-r--r--drivers/staging/iio/accel/adis16220.h140
-rw-r--r--drivers/staging/iio/accel/adis16220_core.c500
-rw-r--r--drivers/staging/iio/accel/adis16240.h129
-rw-r--r--drivers/staging/iio/accel/adis16240_core.c298
-rw-r--r--drivers/staging/iio/accel/lis3l02dq.h210
-rw-r--r--drivers/staging/iio/accel/lis3l02dq_core.c822
-rw-r--r--drivers/staging/iio/accel/lis3l02dq_ring.c422
-rw-r--r--drivers/staging/iio/accel/sca3000.h275
-rw-r--r--drivers/staging/iio/accel/sca3000_core.c1248
-rw-r--r--drivers/staging/iio/accel/sca3000_ring.c365
-rw-r--r--drivers/staging/iio/adc/Kconfig117
-rw-r--r--drivers/staging/iio/adc/Makefile18
-rw-r--r--drivers/staging/iio/adc/ad7192.c719
-rw-r--r--drivers/staging/iio/adc/ad7192.h47
-rw-r--r--drivers/staging/iio/adc/ad7280a.c984
-rw-r--r--drivers/staging/iio/adc/ad7280a.h38
-rw-r--r--drivers/staging/iio/adc/ad7291.c580
-rw-r--r--drivers/staging/iio/adc/ad7291.h12
-rw-r--r--drivers/staging/iio/adc/ad7606.h104
-rw-r--r--drivers/staging/iio/adc/ad7606_core.c603
-rw-r--r--drivers/staging/iio/adc/ad7606_par.c178
-rw-r--r--drivers/staging/iio/adc/ad7606_ring.c101
-rw-r--r--drivers/staging/iio/adc/ad7606_spi.c116
-rw-r--r--drivers/staging/iio/adc/ad7780.c276
-rw-r--r--drivers/staging/iio/adc/ad7780.h30
-rw-r--r--drivers/staging/iio/adc/ad7816.c447
-rw-r--r--drivers/staging/iio/adc/lpc32xx_adc.c216
-rw-r--r--drivers/staging/iio/adc/mxs-lradc.c1685
-rw-r--r--drivers/staging/iio/adc/spear_adc.c401
-rw-r--r--drivers/staging/iio/addac/Kconfig28
-rw-r--r--drivers/staging/iio/addac/Makefile7
-rw-r--r--drivers/staging/iio/addac/adt7316-i2c.c136
-rw-r--r--drivers/staging/iio/addac/adt7316-spi.c144
-rw-r--r--drivers/staging/iio/addac/adt7316.c2190
-rw-r--r--drivers/staging/iio/addac/adt7316.h35
-rw-r--r--drivers/staging/iio/cdc/Kconfig36
-rw-r--r--drivers/staging/iio/cdc/Makefile7
-rw-r--r--drivers/staging/iio/cdc/ad7150.c683
-rw-r--r--drivers/staging/iio/cdc/ad7152.c543
-rw-r--r--drivers/staging/iio/cdc/ad7746.c791
-rw-r--r--drivers/staging/iio/cdc/ad7746.h29
-rw-r--r--drivers/staging/iio/frequency/Kconfig61
-rw-r--r--drivers/staging/iio/frequency/Makefile11
-rw-r--r--drivers/staging/iio/frequency/ad5930.c140
-rw-r--r--drivers/staging/iio/frequency/ad9832.c354
-rw-r--r--drivers/staging/iio/frequency/ad9832.h126
-rw-r--r--drivers/staging/iio/frequency/ad9834.c457
-rw-r--r--drivers/staging/iio/frequency/ad9834.h112
-rw-r--r--drivers/staging/iio/frequency/ad9850.c126
-rw-r--r--drivers/staging/iio/frequency/ad9852.c253
-rw-r--r--drivers/staging/iio/frequency/ad9910.c371
-rw-r--r--drivers/staging/iio/frequency/ad9951.c209
-rw-r--r--drivers/staging/iio/frequency/dds.h110
-rw-r--r--drivers/staging/iio/gyro/Kconfig13
-rw-r--r--drivers/staging/iio/gyro/Makefile6
-rw-r--r--drivers/staging/iio/gyro/adis16060_core.c245
-rw-r--r--drivers/staging/iio/iio_dummy_evgen.c221
-rw-r--r--drivers/staging/iio/iio_dummy_evgen.h2
-rw-r--r--drivers/staging/iio/iio_simple_dummy.c588
-rw-r--r--drivers/staging/iio/iio_simple_dummy.h120
-rw-r--r--drivers/staging/iio/iio_simple_dummy_buffer.c199
-rw-r--r--drivers/staging/iio/iio_simple_dummy_events.c210
-rw-r--r--drivers/staging/iio/impedance-analyzer/Kconfig18
-rw-r--r--drivers/staging/iio/impedance-analyzer/Makefile5
-rw-r--r--drivers/staging/iio/impedance-analyzer/ad5933.c821
-rw-r--r--drivers/staging/iio/impedance-analyzer/ad5933.h28
-rw-r--r--drivers/staging/iio/light/Kconfig43
-rw-r--r--drivers/staging/iio/light/Makefile8
-rw-r--r--drivers/staging/iio/light/isl29018.c662
-rw-r--r--drivers/staging/iio/light/isl29028.c561
-rw-r--r--drivers/staging/iio/light/tsl2583.c950
-rw-r--r--drivers/staging/iio/light/tsl2x7x.h100
-rw-r--r--drivers/staging/iio/light/tsl2x7x_core.c2037
-rw-r--r--drivers/staging/iio/magnetometer/Kconfig18
-rw-r--r--drivers/staging/iio/magnetometer/Makefile5
-rw-r--r--drivers/staging/iio/magnetometer/hmc5843.c652
-rw-r--r--drivers/staging/iio/meter/Kconfig63
-rw-r--r--drivers/staging/iio/meter/Makefile15
-rw-r--r--drivers/staging/iio/meter/ade7753.c550
-rw-r--r--drivers/staging/iio/meter/ade7753.h72
-rw-r--r--drivers/staging/iio/meter/ade7754.c572
-rw-r--r--drivers/staging/iio/meter/ade7754.h90
-rw-r--r--drivers/staging/iio/meter/ade7758.h183
-rw-r--r--drivers/staging/iio/meter/ade7758_core.c958
-rw-r--r--drivers/staging/iio/meter/ade7758_ring.c188
-rw-r--r--drivers/staging/iio/meter/ade7758_trigger.c109
-rw-r--r--drivers/staging/iio/meter/ade7759.c496
-rw-r--r--drivers/staging/iio/meter/ade7759.h53
-rw-r--r--drivers/staging/iio/meter/ade7854-i2c.c258
-rw-r--r--drivers/staging/iio/meter/ade7854-spi.c331
-rw-r--r--drivers/staging/iio/meter/ade7854.c578
-rw-r--r--drivers/staging/iio/meter/ade7854.h174
-rw-r--r--drivers/staging/iio/meter/meter.h396
-rw-r--r--drivers/staging/iio/resolver/Kconfig30
-rw-r--r--drivers/staging/iio/resolver/Makefile7
-rw-r--r--drivers/staging/iio/resolver/ad2s1200.c166
-rw-r--r--drivers/staging/iio/resolver/ad2s1210.c742
-rw-r--r--drivers/staging/iio/resolver/ad2s1210.h17
-rw-r--r--drivers/staging/iio/resolver/ad2s90.c120
-rw-r--r--drivers/staging/iio/ring_hw.h22
-rw-r--r--drivers/staging/iio/trigger/Kconfig26
-rw-r--r--drivers/staging/iio/trigger/Makefile6
-rw-r--r--drivers/staging/iio/trigger/iio-trig-bfin-timer.c302
-rw-r--r--drivers/staging/iio/trigger/iio-trig-bfin-timer.h24
-rw-r--r--drivers/staging/iio/trigger/iio-trig-periodic-rtc.c203
-rw-r--r--drivers/staging/imx-drm/Kconfig53
-rw-r--r--drivers/staging/imx-drm/Makefile12
-rw-r--r--drivers/staging/imx-drm/TODO17
-rw-r--r--drivers/staging/imx-drm/imx-drm-core.c718
-rw-r--r--drivers/staging/imx-drm/imx-drm.h56
-rw-r--r--drivers/staging/imx-drm/imx-hdmi.c1768
-rw-r--r--drivers/staging/imx-drm/imx-hdmi.h1032
-rw-r--r--drivers/staging/imx-drm/imx-ldb.c613
-rw-r--r--drivers/staging/imx-drm/imx-tve.c735
-rw-r--r--drivers/staging/imx-drm/ipuv3-crtc.c515
-rw-r--r--drivers/staging/imx-drm/ipuv3-plane.c387
-rw-r--r--drivers/staging/imx-drm/ipuv3-plane.h55
-rw-r--r--drivers/staging/imx-drm/parallel-display.c293
-rw-r--r--drivers/staging/keucr/Kconfig14
-rw-r--r--drivers/staging/keucr/Makefile13
-rw-r--r--drivers/staging/keucr/TODO12
-rw-r--r--drivers/staging/keucr/common.h7
-rw-r--r--drivers/staging/keucr/init.c333
-rw-r--r--drivers/staging/keucr/init.h518
-rw-r--r--drivers/staging/keucr/scsiglue.c467
-rw-r--r--drivers/staging/keucr/scsiglue.h10
-rw-r--r--drivers/staging/keucr/smcommon.h29
-rw-r--r--drivers/staging/keucr/smil.h288
-rw-r--r--drivers/staging/keucr/smilecc.c211
-rw-r--r--drivers/staging/keucr/smilmain.c760
-rw-r--r--drivers/staging/keucr/smilsub.c679
-rw-r--r--drivers/staging/keucr/smscsi.c194
-rw-r--r--drivers/staging/keucr/transport.c865
-rw-r--r--drivers/staging/keucr/transport.h73
-rw-r--r--drivers/staging/keucr/usb.c642
-rw-r--r--drivers/staging/keucr/usb.h240
-rw-r--r--drivers/staging/line6/Kconfig38
-rw-r--r--drivers/staging/line6/Makefile14
-rw-r--r--drivers/staging/line6/audio.c71
-rw-r--r--drivers/staging/line6/audio.h21
-rw-r--r--drivers/staging/line6/capture.c432
-rw-r--r--drivers/staging/line6/capture.h35
-rw-r--r--drivers/staging/line6/driver.c1162
-rw-r--r--drivers/staging/line6/driver.h215
-rw-r--r--drivers/staging/line6/midi.c321
-rw-r--r--drivers/staging/line6/midi.h72
-rw-r--r--drivers/staging/line6/midibuf.c265
-rw-r--r--drivers/staging/line6/midibuf.h38
-rw-r--r--drivers/staging/line6/pcm.c576
-rw-r--r--drivers/staging/line6/pcm.h382
-rw-r--r--drivers/staging/line6/playback.c592
-rw-r--r--drivers/staging/line6/playback.h41
-rw-r--r--drivers/staging/line6/pod.c458
-rw-r--r--drivers/staging/line6/pod.h102
-rw-r--r--drivers/staging/line6/podhd.c154
-rw-r--r--drivers/staging/line6/podhd.h30
-rw-r--r--drivers/staging/line6/revision.h4
-rw-r--r--drivers/staging/line6/toneport.c460
-rw-r--r--drivers/staging/line6/toneport.h52
-rw-r--r--drivers/staging/line6/usbdefs.h116
-rw-r--r--drivers/staging/line6/variax.c235
-rw-r--r--drivers/staging/line6/variax.h72
-rw-r--r--drivers/staging/lustre/Kconfig3
-rw-r--r--drivers/staging/lustre/Makefile4
-rw-r--r--drivers/staging/lustre/TODO13
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/bitmap.h1
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/curproc.h97
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs.h187
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_cpu.h219
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_crypto.h201
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_debug.h274
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_fail.h170
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_hash.h849
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_heap.h200
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_ioctl.h220
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_kernelcomm.h119
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_prim.h88
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_private.h572
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_string.h107
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_time.h132
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/libcfs_workitem.h110
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/kp30.h93
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/libcfs.h121
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/linux-bitops.h38
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/linux-cpu.h166
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/linux-crypto.h49
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/linux-lock.h204
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/linux-mem.h87
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/linux-prim.h82
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/linux-tcpip.h72
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/linux-time.h274
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/linux-types.h36
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/linux/portals_compat25.h99
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/lucache.h162
-rw-r--r--drivers/staging/lustre/include/linux/libcfs/params_tree.h164
-rw-r--r--drivers/staging/lustre/include/linux/lnet/api-support.h44
-rw-r--r--drivers/staging/lustre/include/linux/lnet/api.h220
-rw-r--r--drivers/staging/lustre/include/linux/lnet/lib-lnet.h875
-rw-r--r--drivers/staging/lustre/include/linux/lnet/lib-types.h761
-rw-r--r--drivers/staging/lustre/include/linux/lnet/linux/api-support.h43
-rw-r--r--drivers/staging/lustre/include/linux/lnet/linux/lib-lnet.h72
-rw-r--r--drivers/staging/lustre/include/linux/lnet/linux/lib-types.h45
-rw-r--r--drivers/staging/lustre/include/linux/lnet/linux/lnet.h56
-rw-r--r--drivers/staging/lustre/include/linux/lnet/lnet-sysctl.h51
-rw-r--r--drivers/staging/lustre/include/linux/lnet/lnet.h51
-rw-r--r--drivers/staging/lustre/include/linux/lnet/lnetctl.h80
-rw-r--r--drivers/staging/lustre/include/linux/lnet/lnetst.h491
-rw-r--r--drivers/staging/lustre/include/linux/lnet/ptllnd.h94
-rw-r--r--drivers/staging/lustre/include/linux/lnet/ptllnd_wire.h120
-rw-r--r--drivers/staging/lustre/include/linux/lnet/socklnd.h103
-rw-r--r--drivers/staging/lustre/include/linux/lnet/types.h492
-rw-r--r--drivers/staging/lustre/lnet/Kconfig40
-rw-r--r--drivers/staging/lustre/lnet/Makefile1
-rw-r--r--drivers/staging/lustre/lnet/klnds/Makefile1
-rw-r--r--drivers/staging/lustre/lnet/klnds/o2iblnd/Makefile5
-rw-r--r--drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c3194
-rw-r--r--drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h1052
-rw-r--r--drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c3534
-rw-r--r--drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c231
-rw-r--r--drivers/staging/lustre/lnet/klnds/socklnd/Makefile7
-rw-r--r--drivers/staging/lustre/lnet/klnds/socklnd/socklnd.c2904
-rw-r--r--drivers/staging/lustre/lnet/klnds/socklnd/socklnd.h596
-rw-r--r--drivers/staging/lustre/lnet/klnds/socklnd/socklnd_cb.c2656
-rw-r--r--drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib-linux.c714
-rw-r--r--drivers/staging/lustre/lnet/klnds/socklnd/socklnd_lib-linux.h87
-rw-r--r--drivers/staging/lustre/lnet/klnds/socklnd/socklnd_modparams.c188
-rw-r--r--drivers/staging/lustre/lnet/klnds/socklnd/socklnd_proto.c799
-rw-r--r--drivers/staging/lustre/lnet/lnet/Makefile8
-rw-r--r--drivers/staging/lustre/lnet/lnet/acceptor.c506
-rw-r--r--drivers/staging/lustre/lnet/lnet/api-ni.c1948
-rw-r--r--drivers/staging/lustre/lnet/lnet/config.c1301
-rw-r--r--drivers/staging/lustre/lnet/lnet/lib-eq.c445
-rw-r--r--drivers/staging/lustre/lnet/lnet/lib-md.c451
-rw-r--r--drivers/staging/lustre/lnet/lnet/lib-me.c297
-rw-r--r--drivers/staging/lustre/lnet/lnet/lib-move.c2449
-rw-r--r--drivers/staging/lustre/lnet/lnet/lib-msg.c647
-rw-r--r--drivers/staging/lustre/lnet/lnet/lib-ptl.c938
-rw-r--r--drivers/staging/lustre/lnet/lnet/lo.c120
-rw-r--r--drivers/staging/lustre/lnet/lnet/module.c155
-rw-r--r--drivers/staging/lustre/lnet/lnet/peer.c338
-rw-r--r--drivers/staging/lustre/lnet/lnet/router.c1699
-rw-r--r--drivers/staging/lustre/lnet/lnet/router_proc.c938
-rw-r--r--drivers/staging/lustre/lnet/selftest/Makefile6
-rw-r--r--drivers/staging/lustre/lnet/selftest/brw_test.c509
-rw-r--r--drivers/staging/lustre/lnet/selftest/conctl.c929
-rw-r--r--drivers/staging/lustre/lnet/selftest/conrpc.c1396
-rw-r--r--drivers/staging/lustre/lnet/selftest/conrpc.h146
-rw-r--r--drivers/staging/lustre/lnet/selftest/console.c2108
-rw-r--r--drivers/staging/lustre/lnet/selftest/console.h232
-rw-r--r--drivers/staging/lustre/lnet/selftest/framework.c1814
-rw-r--r--drivers/staging/lustre/lnet/selftest/module.c171
-rw-r--r--drivers/staging/lustre/lnet/selftest/ping_test.c230
-rw-r--r--drivers/staging/lustre/lnet/selftest/rpc.c1667
-rw-r--r--drivers/staging/lustre/lnet/selftest/rpc.h302
-rw-r--r--drivers/staging/lustre/lnet/selftest/selftest.h612
-rw-r--r--drivers/staging/lustre/lnet/selftest/timer.c248
-rw-r--r--drivers/staging/lustre/lnet/selftest/timer.h53
-rw-r--r--drivers/staging/lustre/lustre/Kconfig60
-rw-r--r--drivers/staging/lustre/lustre/Makefile2
-rw-r--r--drivers/staging/lustre/lustre/fid/Makefile6
-rw-r--r--drivers/staging/lustre/lustre/fid/fid_internal.h56
-rw-r--r--drivers/staging/lustre/lustre/fid/fid_lib.c95
-rw-r--r--drivers/staging/lustre/lustre/fid/fid_request.c568
-rw-r--r--drivers/staging/lustre/lustre/fid/lproc_fid.c227
-rw-r--r--drivers/staging/lustre/lustre/fld/Makefile6
-rw-r--r--drivers/staging/lustre/lustre/fld/fld_cache.c547
-rw-r--r--drivers/staging/lustre/lustre/fld/fld_internal.h193
-rw-r--r--drivers/staging/lustre/lustre/fld/fld_request.c520
-rw-r--r--drivers/staging/lustre/lustre/fld/lproc_fld.c163
-rw-r--r--drivers/staging/lustre/lustre/include/cl_object.h3287
-rw-r--r--drivers/staging/lustre/lustre/include/dt_object.h1499
-rw-r--r--drivers/staging/lustre/lustre/include/interval_tree.h124
-rw-r--r--drivers/staging/lustre/lustre/include/lclient.h428
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lprocfs_status.h57
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_acl.h66
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_common.h22
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_compat25.h243
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_dlm.h46
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_fsfilt.h171
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_handles.h52
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_intent.h62
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_lib.h85
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_lite.h99
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_log.h57
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_net.h49
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h83
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_quota.h46
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lustre_user.h70
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lvfs.h134
-rw-r--r--drivers/staging/lustre/lustre/include/linux/lvfs_linux.h66
-rw-r--r--drivers/staging/lustre/lustre/include/linux/obd.h126
-rw-r--r--drivers/staging/lustre/lustre/include/linux/obd_class.h58
-rw-r--r--drivers/staging/lustre/lustre/include/linux/obd_support.h63
-rw-r--r--drivers/staging/lustre/lustre/include/lprocfs_status.h1005
-rw-r--r--drivers/staging/lustre/lustre/include/lu_object.h1340
-rw-r--r--drivers/staging/lustre/lustre/include/lu_ref.h182
-rw-r--r--drivers/staging/lustre/lustre/include/lustre/libiam.h145
-rw-r--r--drivers/staging/lustre/lustre/include/lustre/ll_fiemap.h121
-rw-r--r--drivers/staging/lustre/lustre/include/lustre/lustre_build_version.h2
-rw-r--r--drivers/staging/lustre/lustre/include/lustre/lustre_errno.h215
-rw-r--r--drivers/staging/lustre/lustre/include/lustre/lustre_idl.h3790
-rw-r--r--drivers/staging/lustre/lustre/include/lustre/lustre_lfsck_user.h95
-rw-r--r--drivers/staging/lustre/lustre/include/lustre/lustre_user.h1171
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_acl.h42
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_capa.h305
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_cfg.h293
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_debug.h56
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_disk.h548
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_dlm.h1482
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_dlm_flags.h476
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_eacl.h95
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_export.h406
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_fid.h767
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_fld.h161
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_fsfilt.h48
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_ha.h64
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_handles.h93
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_idmap.h104
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_import.h380
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_lib.h651
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_linkea.h57
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_lite.h151
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_log.h569
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_mdc.h191
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_mds.h81
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_net.h3247
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_param.h121
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_quota.h239
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_req_layout.h341
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_sec.h1150
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_update.h189
-rw-r--r--drivers/staging/lustre/lustre/include/lustre_ver.h24
-rw-r--r--drivers/staging/lustre/lustre/include/lvfs.h57
-rw-r--r--drivers/staging/lustre/lustre/include/md_object.h903
-rw-r--r--drivers/staging/lustre/lustre/include/obd.h1572
-rw-r--r--drivers/staging/lustre/lustre/include/obd_cache.h39
-rw-r--r--drivers/staging/lustre/lustre/include/obd_cksum.h176
-rw-r--r--drivers/staging/lustre/lustre/include/obd_class.h2191
-rw-r--r--drivers/staging/lustre/lustre/include/obd_ost.h96
-rw-r--r--drivers/staging/lustre/lustre/include/obd_support.h862
-rw-r--r--drivers/staging/lustre/lustre/lclient/glimpse.c269
-rw-r--r--drivers/staging/lustre/lustre/lclient/lcommon_cl.c1275
-rw-r--r--drivers/staging/lustre/lustre/lclient/lcommon_misc.c199
-rw-r--r--drivers/staging/lustre/lustre/ldlm/interval_tree.c746
-rw-r--r--drivers/staging/lustre/lustre/ldlm/l_lock.c76
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_extent.c240
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_flock.c859
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_inodebits.c75
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_internal.h309
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_lib.c851
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_lock.c2368
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c1186
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_plain.c72
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_pool.c1434
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_request.c2285
-rw-r--r--drivers/staging/lustre/lustre/ldlm/ldlm_resource.c1425
-rw-r--r--drivers/staging/lustre/lustre/libcfs/Makefile21
-rw-r--r--drivers/staging/lustre/lustre/libcfs/debug.c469
-rw-r--r--drivers/staging/lustre/lustre/libcfs/fail.c137
-rw-r--r--drivers/staging/lustre/lustre/libcfs/hash.c2113
-rw-r--r--drivers/staging/lustre/lustre/libcfs/heap.c475
-rw-r--r--drivers/staging/lustre/lustre/libcfs/kernel_user_comm.c240
-rw-r--r--drivers/staging/lustre/lustre/libcfs/libcfs_cpu.c224
-rw-r--r--drivers/staging/lustre/lustre/libcfs/libcfs_lock.c189
-rw-r--r--drivers/staging/lustre/lustre/libcfs/libcfs_mem.c202
-rw-r--r--drivers/staging/lustre/lustre/libcfs/libcfs_string.c560
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-cpu.c1060
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-crypto-adler.c144
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-crypto.c291
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-curproc.c116
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-debug.c203
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-module.c183
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c217
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c544
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-tcpip.c613
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.c275
-rw-r--r--drivers/staging/lustre/lustre/libcfs/linux/linux-tracefile.h48
-rw-r--r--drivers/staging/lustre/lustre/libcfs/module.c450
-rw-r--r--drivers/staging/lustre/lustre/libcfs/nidstrings.c860
-rw-r--r--drivers/staging/lustre/lustre/libcfs/prng.c139
-rw-r--r--drivers/staging/lustre/lustre/libcfs/tracefile.c1199
-rw-r--r--drivers/staging/lustre/lustre/libcfs/tracefile.h340
-rw-r--r--drivers/staging/lustre/lustre/libcfs/upcall_cache.c451
-rw-r--r--drivers/staging/lustre/lustre/libcfs/workitem.c478
-rw-r--r--drivers/staging/lustre/lustre/llite/Makefile14
-rw-r--r--drivers/staging/lustre/lustre/llite/dcache.c377
-rw-r--r--drivers/staging/lustre/lustre/llite/dir.c1985
-rw-r--r--drivers/staging/lustre/lustre/llite/file.c3557
-rw-r--r--drivers/staging/lustre/lustre/llite/llite_capa.c655
-rw-r--r--drivers/staging/lustre/lustre/llite/llite_close.c397
-rw-r--r--drivers/staging/lustre/lustre/llite/llite_internal.h1538
-rw-r--r--drivers/staging/lustre/lustre/llite/llite_lib.c2416
-rw-r--r--drivers/staging/lustre/lustre/llite/llite_mmap.c487
-rw-r--r--drivers/staging/lustre/lustre/llite/llite_nfs.c329
-rw-r--r--drivers/staging/lustre/lustre/llite/llite_rmtacl.c301
-rw-r--r--drivers/staging/lustre/lustre/llite/lloop.c863
-rw-r--r--drivers/staging/lustre/lustre/llite/lproc_llite.c1506
-rw-r--r--drivers/staging/lustre/lustre/llite/namei.c1252
-rw-r--r--drivers/staging/lustre/lustre/llite/remote_perm.c330
-rw-r--r--drivers/staging/lustre/lustre/llite/rw.c1290
-rw-r--r--drivers/staging/lustre/lustre/llite/rw26.c553
-rw-r--r--drivers/staging/lustre/lustre/llite/statahead.c1708
-rw-r--r--drivers/staging/lustre/lustre/llite/super25.c226
-rw-r--r--drivers/staging/lustre/lustre/llite/symlink.c167
-rw-r--r--drivers/staging/lustre/lustre/llite/vvp_dev.c545
-rw-r--r--drivers/staging/lustre/lustre/llite/vvp_internal.h62
-rw-r--r--drivers/staging/lustre/lustre/llite/vvp_io.c1208
-rw-r--r--drivers/staging/lustre/lustre/llite/vvp_lock.c84
-rw-r--r--drivers/staging/lustre/lustre/llite/vvp_object.c201
-rw-r--r--drivers/staging/lustre/lustre/llite/vvp_page.c552
-rw-r--r--drivers/staging/lustre/lustre/llite/xattr.c608
-rw-r--r--drivers/staging/lustre/lustre/llite/xattr_cache.c536
-rw-r--r--drivers/staging/lustre/lustre/lmv/Makefile5
-rw-r--r--drivers/staging/lustre/lustre/lmv/lmv_fld.c84
-rw-r--r--drivers/staging/lustre/lustre/lmv/lmv_intent.c320
-rw-r--r--drivers/staging/lustre/lustre/lmv/lmv_internal.h159
-rw-r--r--drivers/staging/lustre/lustre/lmv/lmv_obd.c2873
-rw-r--r--drivers/staging/lustre/lustre/lmv/lproc_lmv.c230
-rw-r--r--drivers/staging/lustre/lustre/lov/Makefile10
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_cl_internal.h839
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_dev.c528
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_ea.c358
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_internal.h352
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_io.c978
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_lock.c1184
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_merge.c214
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_obd.c2867
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_object.c990
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_offset.c265
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_pack.c677
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_page.c228
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_pool.c663
-rw-r--r--drivers/staging/lustre/lustre/lov/lov_request.c1517
-rw-r--r--drivers/staging/lustre/lustre/lov/lovsub_dev.c209
-rw-r--r--drivers/staging/lustre/lustre/lov/lovsub_io.c55
-rw-r--r--drivers/staging/lustre/lustre/lov/lovsub_lock.c466
-rw-r--r--drivers/staging/lustre/lustre/lov/lovsub_object.c164
-rw-r--r--drivers/staging/lustre/lustre/lov/lovsub_page.c71
-rw-r--r--drivers/staging/lustre/lustre/lov/lproc_lov.c299
-rw-r--r--drivers/staging/lustre/lustre/lvfs/Makefile7
-rw-r--r--drivers/staging/lustre/lustre/lvfs/fsfilt.c139
-rw-r--r--drivers/staging/lustre/lustre/lvfs/lvfs_lib.c170
-rw-r--r--drivers/staging/lustre/lustre/lvfs/lvfs_linux.c293
-rw-r--r--drivers/staging/lustre/lustre/mdc/Makefile6
-rw-r--r--drivers/staging/lustre/lustre/mdc/lproc_mdc.c214
-rw-r--r--drivers/staging/lustre/lustre/mdc/mdc_internal.h181
-rw-r--r--drivers/staging/lustre/lustre/mdc/mdc_lib.c590
-rw-r--r--drivers/staging/lustre/lustre/mdc/mdc_locks.c1301
-rw-r--r--drivers/staging/lustre/lustre/mdc/mdc_reint.c485
-rw-r--r--drivers/staging/lustre/lustre/mdc/mdc_request.c2758
-rw-r--r--drivers/staging/lustre/lustre/mgc/Makefile6
-rw-r--r--drivers/staging/lustre/lustre/mgc/libmgc.c158
-rw-r--r--drivers/staging/lustre/lustre/mgc/lproc_mgc.c80
-rw-r--r--drivers/staging/lustre/lustre/mgc/mgc_internal.h73
-rw-r--r--drivers/staging/lustre/lustre/mgc/mgc_request.c1985
-rw-r--r--drivers/staging/lustre/lustre/obdclass/Makefile13
-rw-r--r--drivers/staging/lustre/lustre/obdclass/acl.c539
-rw-r--r--drivers/staging/lustre/lustre/obdclass/capa.c417
-rw-r--r--drivers/staging/lustre/lustre/obdclass/cl_internal.h121
-rw-r--r--drivers/staging/lustre/lustre/obdclass/cl_io.c1669
-rw-r--r--drivers/staging/lustre/lustre/obdclass/cl_lock.c2240
-rw-r--r--drivers/staging/lustre/lustre/obdclass/cl_object.c1137
-rw-r--r--drivers/staging/lustre/lustre/obdclass/cl_page.c1553
-rw-r--r--drivers/staging/lustre/lustre/obdclass/class_obd.c678
-rw-r--r--drivers/staging/lustre/lustre/obdclass/debug.c112
-rw-r--r--drivers/staging/lustre/lustre/obdclass/dt_object.c1049
-rw-r--r--drivers/staging/lustre/lustre/obdclass/genops.c1827
-rw-r--r--drivers/staging/lustre/lustre/obdclass/idmap.c477
-rw-r--r--drivers/staging/lustre/lustre/obdclass/linkea.c194
-rw-r--r--drivers/staging/lustre/lustre/obdclass/linux/linux-module.c438
-rw-r--r--drivers/staging/lustre/lustre/obdclass/linux/linux-obdo.c222
-rw-r--r--drivers/staging/lustre/lustre/obdclass/linux/linux-sysctl.c426
-rw-r--r--drivers/staging/lustre/lustre/obdclass/llog.c990
-rw-r--r--drivers/staging/lustre/lustre/obdclass/llog_cat.c815
-rw-r--r--drivers/staging/lustre/lustre/obdclass/llog_internal.h98
-rw-r--r--drivers/staging/lustre/lustre/obdclass/llog_ioctl.c418
-rw-r--r--drivers/staging/lustre/lustre/obdclass/llog_lvfs.c847
-rw-r--r--drivers/staging/lustre/lustre/obdclass/llog_obd.c287
-rw-r--r--drivers/staging/lustre/lustre/obdclass/llog_osd.c1290
-rw-r--r--drivers/staging/lustre/lustre/obdclass/llog_swab.c413
-rw-r--r--drivers/staging/lustre/lustre/obdclass/llog_test.c1072
-rw-r--r--drivers/staging/lustre/lustre/obdclass/local_storage.c894
-rw-r--r--drivers/staging/lustre/lustre/obdclass/local_storage.h91
-rw-r--r--drivers/staging/lustre/lustre/obdclass/lprocfs_status.c1984
-rw-r--r--drivers/staging/lustre/lustre/obdclass/lu_object.c2196
-rw-r--r--drivers/staging/lustre/lustre/obdclass/lu_ref.c50
-rw-r--r--drivers/staging/lustre/lustre/obdclass/lu_ucred.c107
-rw-r--r--drivers/staging/lustre/lustre/obdclass/lustre_handles.c257
-rw-r--r--drivers/staging/lustre/lustre/obdclass/lustre_peer.c217
-rw-r--r--drivers/staging/lustre/lustre/obdclass/md_attrs.c199
-rw-r--r--drivers/staging/lustre/lustre/obdclass/mea.c112
-rw-r--r--drivers/staging/lustre/lustre/obdclass/obd_config.c1926
-rw-r--r--drivers/staging/lustre/lustre/obdclass/obd_mount.c1320
-rw-r--r--drivers/staging/lustre/lustre/obdclass/obdo.c362
-rw-r--r--drivers/staging/lustre/lustre/obdclass/statfs_pack.c75
-rw-r--r--drivers/staging/lustre/lustre/obdclass/uuid.c82
-rw-r--r--drivers/staging/lustre/lustre/obdecho/Makefile5
-rw-r--r--drivers/staging/lustre/lustre/obdecho/echo.c671
-rw-r--r--drivers/staging/lustre/lustre/obdecho/echo_client.c3170
-rw-r--r--drivers/staging/lustre/lustre/obdecho/echo_internal.h47
-rw-r--r--drivers/staging/lustre/lustre/obdecho/lproc_echo.c57
-rw-r--r--drivers/staging/lustre/lustre/osc/Makefile8
-rw-r--r--drivers/staging/lustre/lustre/osc/lproc_osc.c735
-rw-r--r--drivers/staging/lustre/lustre/osc/osc_cache.c2881
-rw-r--r--drivers/staging/lustre/lustre/osc/osc_cl_internal.h686
-rw-r--r--drivers/staging/lustre/lustre/osc/osc_dev.c260
-rw-r--r--drivers/staging/lustre/lustre/osc/osc_internal.h208
-rw-r--r--drivers/staging/lustre/lustre/osc/osc_io.c816
-rw-r--r--drivers/staging/lustre/lustre/osc/osc_lock.c1616
-rw-r--r--drivers/staging/lustre/lustre/osc/osc_object.c274
-rw-r--r--drivers/staging/lustre/lustre/osc/osc_page.c921
-rw-r--r--drivers/staging/lustre/lustre/osc/osc_quota.c327
-rw-r--r--drivers/staging/lustre/lustre/osc/osc_request.c3661
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/Makefile25
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/client.c3114
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/connection.c240
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/errno.c380
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/events.c582
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/Makefile8
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_api.h179
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_asn1.h84
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_bulk.c505
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_cli_upcall.c446
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_err.h193
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_generic_token.c296
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_internal.h526
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_keyring.c1409
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_krb5.h163
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_krb5_mech.c1786
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_mech_switch.c358
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_pipefs.c1233
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_rawobj.c242
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/gss_svc_upcall.c1093
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/lproc_gss.c220
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/gss/sec_gss.c2889
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/import.c1621
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/layout.c2458
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/llog_client.c345
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/llog_net.c74
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c1342
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/niobuf.c729
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/nrs.c1759
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/nrs_crr.c40
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/nrs_fifo.c270
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/pack_generic.c2567
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/pers.c75
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/pinger.c683
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/ptlrpc_internal.h312
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/ptlrpc_module.c171
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c812
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/recover.c381
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/sec.c2456
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/sec_bulk.c888
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/sec_config.c1228
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/sec_gc.c250
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/sec_lproc.c199
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/sec_null.c464
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/sec_plain.c1001
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/service.c3114
-rw-r--r--drivers/staging/lustre/lustre/ptlrpc/wiretest.c4540
-rw-r--r--drivers/staging/me4000/Kconfig10
-rw-r--r--drivers/staging/me4000/Makefile1
-rw-r--r--drivers/staging/me4000/README13
-rw-r--r--drivers/staging/me4000/me4000.c6098
-rw-r--r--drivers/staging/me4000/me4000.h966
-rw-r--r--drivers/staging/me4000/me4000_firmware.h10033
-rw-r--r--drivers/staging/me4000/me4610_firmware.h5409
-rw-r--r--drivers/staging/media/Kconfig49
-rw-r--r--drivers/staging/media/Makefile15
-rw-r--r--drivers/staging/media/as102/Kconfig8
-rw-r--r--drivers/staging/media/as102/Makefile6
-rw-r--r--drivers/staging/media/as102/as102_drv.c277
-rw-r--r--drivers/staging/media/as102/as102_drv.h99
-rw-r--r--drivers/staging/media/as102/as102_fe.c571
-rw-r--r--drivers/staging/media/as102/as102_fw.c232
-rw-r--r--drivers/staging/media/as102/as102_fw.h38
-rw-r--r--drivers/staging/media/as102/as102_usb_drv.c472
-rw-r--r--drivers/staging/media/as102/as102_usb_drv.h61
-rw-r--r--drivers/staging/media/as102/as10x_cmd.c418
-rw-r--r--drivers/staging/media/as102/as10x_cmd.h529
-rw-r--r--drivers/staging/media/as102/as10x_cmd_cfg.c206
-rw-r--r--drivers/staging/media/as102/as10x_cmd_stream.c211
-rw-r--r--drivers/staging/media/as102/as10x_handle.h54
-rw-r--r--drivers/staging/media/as102/as10x_types.h194
-rw-r--r--drivers/staging/media/bcm2048/Kconfig13
-rw-r--r--drivers/staging/media/bcm2048/Makefile1
-rw-r--r--drivers/staging/media/bcm2048/TODO24
-rw-r--r--drivers/staging/media/bcm2048/radio-bcm2048.c2744
-rw-r--r--drivers/staging/media/bcm2048/radio-bcm2048.h30
-rw-r--r--drivers/staging/media/cxd2099/Kconfig12
-rw-r--r--drivers/staging/media/cxd2099/Makefile5
-rw-r--r--drivers/staging/media/cxd2099/TODO12
-rw-r--r--drivers/staging/media/cxd2099/cxd2099.c719
-rw-r--r--drivers/staging/media/cxd2099/cxd2099.h51
-rw-r--r--drivers/staging/media/davinci_vpfe/Kconfig9
-rw-r--r--drivers/staging/media/davinci_vpfe/Makefile3
-rw-r--r--drivers/staging/media/davinci_vpfe/TODO37
-rw-r--r--drivers/staging/media/davinci_vpfe/davinci-vpfe-mc.txt154
-rw-r--r--drivers/staging/media/davinci_vpfe/davinci_vpfe_user.h1290
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_ipipe.c1863
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_ipipe.h179
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.c1048
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_ipipe_hw.h559
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_ipipeif.c1070
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_ipipeif.h233
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_ipipeif_user.h93
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_isif.c2105
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_isif.h203
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_isif_regs.h294
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_resizer.c1999
-rw-r--r--drivers/staging/media/davinci_vpfe/dm365_resizer.h244
-rw-r--r--drivers/staging/media/davinci_vpfe/vpfe.h86
-rw-r--r--drivers/staging/media/davinci_vpfe/vpfe_mc_capture.c724
-rw-r--r--drivers/staging/media/davinci_vpfe/vpfe_mc_capture.h95
-rw-r--r--drivers/staging/media/davinci_vpfe/vpfe_video.c1637
-rw-r--r--drivers/staging/media/davinci_vpfe/vpfe_video.h153
-rw-r--r--drivers/staging/media/dt3155v4l/Kconfig28
-rw-r--r--drivers/staging/media/dt3155v4l/Makefile1
-rw-r--r--drivers/staging/media/dt3155v4l/dt3155v4l.c995
-rw-r--r--drivers/staging/media/dt3155v4l/dt3155v4l.h212
-rw-r--r--drivers/staging/media/go7007/Kconfig51
-rw-r--r--drivers/staging/media/go7007/Makefile15
-rw-r--r--drivers/staging/media/go7007/README137
-rw-r--r--drivers/staging/media/go7007/go7007-driver.c711
-rw-r--r--drivers/staging/media/go7007/go7007-fw.c (renamed from drivers/staging/go7007/go7007-fw.c)154
-rw-r--r--drivers/staging/media/go7007/go7007-i2c.c222
-rw-r--r--drivers/staging/media/go7007/go7007-loader.c145
-rw-r--r--drivers/staging/media/go7007/go7007-priv.h (renamed from drivers/staging/go7007/go7007-priv.h)117
-rw-r--r--drivers/staging/media/go7007/go7007-usb.c (renamed from drivers/staging/go7007/go7007-usb.c)584
-rw-r--r--drivers/staging/media/go7007/go7007-v4l2.c1055
-rw-r--r--drivers/staging/media/go7007/go7007.h40
-rw-r--r--drivers/staging/media/go7007/go7007.txt (renamed from drivers/staging/go7007/go7007.txt)171
-rw-r--r--drivers/staging/media/go7007/s2250-board.c631
-rw-r--r--drivers/staging/media/go7007/saa7134-go7007.c (renamed from drivers/staging/go7007/saa7134-go7007.c)187
-rw-r--r--drivers/staging/media/go7007/snd-go7007.c (renamed from drivers/staging/go7007/snd-go7007.c)26
-rw-r--r--drivers/staging/media/lirc/Kconfig72
-rw-r--r--drivers/staging/media/lirc/Makefile13
-rw-r--r--drivers/staging/media/lirc/TODO13
-rw-r--r--drivers/staging/media/lirc/TODO.lirc_zilog36
-rw-r--r--drivers/staging/media/lirc/lirc_bt829.c405
-rw-r--r--drivers/staging/media/lirc/lirc_igorplugusb.c514
-rw-r--r--drivers/staging/media/lirc/lirc_imon.c1042
-rw-r--r--drivers/staging/media/lirc/lirc_parallel.c746
-rw-r--r--drivers/staging/media/lirc/lirc_parallel.h26
-rw-r--r--drivers/staging/media/lirc/lirc_sasem.c934
-rw-r--r--drivers/staging/media/lirc/lirc_serial.c1240
-rw-r--r--drivers/staging/media/lirc/lirc_sir.c1317
-rw-r--r--drivers/staging/media/lirc/lirc_zilog.c1686
-rw-r--r--drivers/staging/media/msi3101/Kconfig10
-rw-r--r--drivers/staging/media/msi3101/Makefile2
-rw-r--r--drivers/staging/media/msi3101/msi001.c500
-rw-r--r--drivers/staging/media/msi3101/sdr-msi3101.c1518
-rw-r--r--drivers/staging/media/omap24xx/Kconfig35
-rw-r--r--drivers/staging/media/omap24xx/Makefile5
-rw-r--r--drivers/staging/media/omap24xx/omap24xxcam-dma.c (renamed from drivers/media/video/omap24xxcam-dma.c)24
-rw-r--r--drivers/staging/media/omap24xx/omap24xxcam.c (renamed from drivers/media/video/omap24xxcam.c)97
-rw-r--r--drivers/staging/media/omap24xx/omap24xxcam.h (renamed from drivers/media/video/omap24xxcam.h)21
-rw-r--r--drivers/staging/media/omap24xx/tcm825x.c (renamed from drivers/media/video/tcm825x.c)59
-rw-r--r--drivers/staging/media/omap24xx/tcm825x.h (renamed from drivers/media/video/tcm825x.h)12
-rw-r--r--drivers/staging/media/omap24xx/v4l2-int-device.c (renamed from drivers/media/video/v4l2-int-device.c)3
-rw-r--r--drivers/staging/media/omap24xx/v4l2-int-device.h305
-rw-r--r--drivers/staging/media/omap4iss/Kconfig6
-rw-r--r--drivers/staging/media/omap4iss/Makefile6
-rw-r--r--drivers/staging/media/omap4iss/TODO4
-rw-r--r--drivers/staging/media/omap4iss/iss.c1557
-rw-r--r--drivers/staging/media/omap4iss/iss.h250
-rw-r--r--drivers/staging/media/omap4iss/iss_csi2.c1326
-rw-r--r--drivers/staging/media/omap4iss/iss_csi2.h158
-rw-r--r--drivers/staging/media/omap4iss/iss_csiphy.c279
-rw-r--r--drivers/staging/media/omap4iss/iss_csiphy.h51
-rw-r--r--drivers/staging/media/omap4iss/iss_ipipe.c570
-rw-r--r--drivers/staging/media/omap4iss/iss_ipipe.h67
-rw-r--r--drivers/staging/media/omap4iss/iss_ipipeif.c849
-rw-r--r--drivers/staging/media/omap4iss/iss_ipipeif.h92
-rw-r--r--drivers/staging/media/omap4iss/iss_regs.h901
-rw-r--r--drivers/staging/media/omap4iss/iss_resizer.c893
-rw-r--r--drivers/staging/media/omap4iss/iss_resizer.h75
-rw-r--r--drivers/staging/media/omap4iss/iss_video.c1226
-rw-r--r--drivers/staging/media/omap4iss/iss_video.h204
-rw-r--r--drivers/staging/media/rtl2832u_sdr/Kconfig7
-rw-r--r--drivers/staging/media/rtl2832u_sdr/Makefile6
-rw-r--r--drivers/staging/media/rtl2832u_sdr/rtl2832_sdr.c1497
-rw-r--r--drivers/staging/media/rtl2832u_sdr/rtl2832_sdr.h54
-rw-r--r--drivers/staging/media/sn9c102/Kconfig17
-rw-r--r--drivers/staging/media/sn9c102/Makefile (renamed from drivers/media/video/sn9c102/Makefile)0
-rw-r--r--drivers/staging/media/sn9c102/sn9c102.h (renamed from drivers/media/video/sn9c102/sn9c102.h)36
-rw-r--r--drivers/staging/media/sn9c102/sn9c102.txt592
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_config.h (renamed from drivers/media/video/sn9c102/sn9c102_config.h)0
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_core.c (renamed from drivers/media/video/sn9c102/sn9c102_core.c)575
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_devtable.h145
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_hv7131d.c (renamed from drivers/media/video/sn9c102/sn9c102_hv7131d.c)39
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_hv7131r.c (renamed from drivers/media/video/sn9c102/sn9c102_hv7131r.c)38
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_mi0343.c (renamed from drivers/media/video/sn9c102/sn9c102_mi0343.c)30
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_mi0360.c (renamed from drivers/media/video/sn9c102/sn9c102_mi0360.c)30
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_mt9v111.c (renamed from drivers/media/video/sn9c102/sn9c102_mt9v111.c)0
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_ov7630.c (renamed from drivers/media/video/sn9c102/sn9c102_ov7630.c)46
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_ov7660.c (renamed from drivers/media/video/sn9c102/sn9c102_ov7660.c)46
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_pas106b.c (renamed from drivers/media/video/sn9c102/sn9c102_pas106b.c)40
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_pas202bcb.c (renamed from drivers/media/video/sn9c102/sn9c102_pas202bcb.c)38
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_sensor.h (renamed from drivers/media/video/sn9c102/sn9c102_sensor.h)40
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_tas5110c1b.c (renamed from drivers/media/video/sn9c102/sn9c102_tas5110c1b.c)18
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_tas5110d.c (renamed from drivers/media/video/sn9c102/sn9c102_tas5110d.c)14
-rw-r--r--drivers/staging/media/sn9c102/sn9c102_tas5130d1b.c (renamed from drivers/media/video/sn9c102/sn9c102_tas5130d1b.c)18
-rw-r--r--drivers/staging/media/solo6x10/Kconfig18
-rw-r--r--drivers/staging/media/solo6x10/Makefile5
-rw-r--r--drivers/staging/media/solo6x10/TODO15
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-core.c709
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-disp.c322
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-eeprom.c154
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-enc.c344
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-g723.c424
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-gpio.c109
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-i2c.c334
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-jpeg.h193
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-offsets.h87
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-p2m.c333
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-regs.h639
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-tw28.c874
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-tw28.h69
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-v4l2-enc.c1414
-rw-r--r--drivers/staging/media/solo6x10/solo6x10-v4l2.c734
-rw-r--r--drivers/staging/media/solo6x10/solo6x10.h426
-rw-r--r--drivers/staging/meilhaus/Kconfig127
-rw-r--r--drivers/staging/meilhaus/Makefile43
-rw-r--r--drivers/staging/meilhaus/TODO10
-rw-r--r--drivers/staging/meilhaus/me0600_device.c215
-rw-r--r--drivers/staging/meilhaus/me0600_device.h97
-rw-r--r--drivers/staging/meilhaus/me0600_dio.c415
-rw-r--r--drivers/staging/meilhaus/me0600_dio.h68
-rw-r--r--drivers/staging/meilhaus/me0600_dio_reg.h41
-rw-r--r--drivers/staging/meilhaus/me0600_ext_irq.c478
-rw-r--r--drivers/staging/meilhaus/me0600_ext_irq.h58
-rw-r--r--drivers/staging/meilhaus/me0600_ext_irq_reg.h18
-rw-r--r--drivers/staging/meilhaus/me0600_optoi.c243
-rw-r--r--drivers/staging/meilhaus/me0600_optoi.h58
-rw-r--r--drivers/staging/meilhaus/me0600_optoi_reg.h35
-rw-r--r--drivers/staging/meilhaus/me0600_relay.c359
-rw-r--r--drivers/staging/meilhaus/me0600_relay.h63
-rw-r--r--drivers/staging/meilhaus/me0600_relay_reg.h36
-rw-r--r--drivers/staging/meilhaus/me0600_ttli.c238
-rw-r--r--drivers/staging/meilhaus/me0600_ttli.h58
-rw-r--r--drivers/staging/meilhaus/me0600_ttli_reg.h35
-rw-r--r--drivers/staging/meilhaus/me0900_device.c180
-rw-r--r--drivers/staging/meilhaus/me0900_device.h92
-rw-r--r--drivers/staging/meilhaus/me0900_di.c246
-rw-r--r--drivers/staging/meilhaus/me0900_di.h65
-rw-r--r--drivers/staging/meilhaus/me0900_do.c314
-rw-r--r--drivers/staging/meilhaus/me0900_do.h68
-rw-r--r--drivers/staging/meilhaus/me0900_reg.h40
-rw-r--r--drivers/staging/meilhaus/me1000_device.c208
-rw-r--r--drivers/staging/meilhaus/me1000_device.h59
-rw-r--r--drivers/staging/meilhaus/me1000_dio.c438
-rw-r--r--drivers/staging/meilhaus/me1000_dio.h71
-rw-r--r--drivers/staging/meilhaus/me1000_dio_reg.h50
-rw-r--r--drivers/staging/meilhaus/me1400_device.c256
-rw-r--r--drivers/staging/meilhaus/me1400_device.h108
-rw-r--r--drivers/staging/meilhaus/me1400_ext_irq.c517
-rw-r--r--drivers/staging/meilhaus/me1400_ext_irq.h62
-rw-r--r--drivers/staging/meilhaus/me1400_ext_irq_reg.h56
-rw-r--r--drivers/staging/meilhaus/me1600_ao.c1033
-rw-r--r--drivers/staging/meilhaus/me1600_ao.h132
-rw-r--r--drivers/staging/meilhaus/me1600_ao_reg.h66
-rw-r--r--drivers/staging/meilhaus/me1600_device.c261
-rw-r--r--drivers/staging/meilhaus/me1600_device.h101
-rw-r--r--drivers/staging/meilhaus/me4600_ai.c3434
-rw-r--r--drivers/staging/meilhaus/me4600_ai.h180
-rw-r--r--drivers/staging/meilhaus/me4600_ai_reg.h107
-rw-r--r--drivers/staging/meilhaus/me4600_ao.c6011
-rw-r--r--drivers/staging/meilhaus/me4600_ao.h263
-rw-r--r--drivers/staging/meilhaus/me4600_ao_reg.h113
-rw-r--r--drivers/staging/meilhaus/me4600_device.c373
-rw-r--r--drivers/staging/meilhaus/me4600_device.h151
-rw-r--r--drivers/staging/meilhaus/me4600_di.c256
-rw-r--r--drivers/staging/meilhaus/me4600_di.h64
-rw-r--r--drivers/staging/meilhaus/me4600_dio.c510
-rw-r--r--drivers/staging/meilhaus/me4600_dio.h69
-rw-r--r--drivers/staging/meilhaus/me4600_dio_reg.h63
-rw-r--r--drivers/staging/meilhaus/me4600_do.c433
-rw-r--r--drivers/staging/meilhaus/me4600_do.h65
-rw-r--r--drivers/staging/meilhaus/me4600_ext_irq.c467
-rw-r--r--drivers/staging/meilhaus/me4600_ext_irq.h78
-rw-r--r--drivers/staging/meilhaus/me4600_ext_irq_reg.h41
-rw-r--r--drivers/staging/meilhaus/me4600_reg.h46
-rw-r--r--drivers/staging/meilhaus/me6000_ao.c3739
-rw-r--r--drivers/staging/meilhaus/me6000_ao.h200
-rw-r--r--drivers/staging/meilhaus/me6000_ao_reg.h177
-rw-r--r--drivers/staging/meilhaus/me6000_device.c211
-rw-r--r--drivers/staging/meilhaus/me6000_device.h149
-rw-r--r--drivers/staging/meilhaus/me6000_dio.c415
-rw-r--r--drivers/staging/meilhaus/me6000_dio.h68
-rw-r--r--drivers/staging/meilhaus/me6000_dio_reg.h43
-rw-r--r--drivers/staging/meilhaus/me6000_reg.h35
-rw-r--r--drivers/staging/meilhaus/me8100_device.c187
-rw-r--r--drivers/staging/meilhaus/me8100_device.h97
-rw-r--r--drivers/staging/meilhaus/me8100_di.c693
-rw-r--r--drivers/staging/meilhaus/me8100_di.h89
-rw-r--r--drivers/staging/meilhaus/me8100_di_reg.h47
-rw-r--r--drivers/staging/meilhaus/me8100_do.c391
-rw-r--r--drivers/staging/meilhaus/me8100_do.h70
-rw-r--r--drivers/staging/meilhaus/me8100_do_reg.h36
-rw-r--r--drivers/staging/meilhaus/me8100_reg.h41
-rw-r--r--drivers/staging/meilhaus/me8200_device.c194
-rw-r--r--drivers/staging/meilhaus/me8200_device.h97
-rw-r--r--drivers/staging/meilhaus/me8200_di.c857
-rw-r--r--drivers/staging/meilhaus/me8200_di.h92
-rw-r--r--drivers/staging/meilhaus/me8200_di_reg.h75
-rw-r--r--drivers/staging/meilhaus/me8200_dio.c418
-rw-r--r--drivers/staging/meilhaus/me8200_dio.h68
-rw-r--r--drivers/staging/meilhaus/me8200_dio_reg.h43
-rw-r--r--drivers/staging/meilhaus/me8200_do.c600
-rw-r--r--drivers/staging/meilhaus/me8200_do.h75
-rw-r--r--drivers/staging/meilhaus/me8200_do_reg.h40
-rw-r--r--drivers/staging/meilhaus/me8200_reg.h46
-rw-r--r--drivers/staging/meilhaus/me8254.c1176
-rw-r--r--drivers/staging/meilhaus/me8254.h80
-rw-r--r--drivers/staging/meilhaus/me8254_reg.h172
-rw-r--r--drivers/staging/meilhaus/me8255.c462
-rw-r--r--drivers/staging/meilhaus/me8255.h59
-rw-r--r--drivers/staging/meilhaus/me8255_reg.h50
-rw-r--r--drivers/staging/meilhaus/mecirc_buf.h131
-rw-r--r--drivers/staging/meilhaus/mecommon.h26
-rw-r--r--drivers/staging/meilhaus/medebug.h125
-rw-r--r--drivers/staging/meilhaus/medefines.h449
-rw-r--r--drivers/staging/meilhaus/medevice.c1740
-rw-r--r--drivers/staging/meilhaus/medevice.h304
-rw-r--r--drivers/staging/meilhaus/medlist.c127
-rw-r--r--drivers/staging/meilhaus/medlist.h91
-rw-r--r--drivers/staging/meilhaus/medlock.c195
-rw-r--r--drivers/staging/meilhaus/medlock.h76
-rw-r--r--drivers/staging/meilhaus/medriver.h350
-rw-r--r--drivers/staging/meilhaus/medummy.c1266
-rw-r--r--drivers/staging/meilhaus/medummy.h40
-rw-r--r--drivers/staging/meilhaus/meerror.h100
-rw-r--r--drivers/staging/meilhaus/mefirmware.c137
-rw-r--r--drivers/staging/meilhaus/mefirmware.h57
-rw-r--r--drivers/staging/meilhaus/meids.h31
-rw-r--r--drivers/staging/meilhaus/meinternal.h363
-rw-r--r--drivers/staging/meilhaus/meioctl.h515
-rw-r--r--drivers/staging/meilhaus/memain.c2022
-rw-r--r--drivers/staging/meilhaus/memain.h460
-rw-r--r--drivers/staging/meilhaus/meplx_reg.h53
-rw-r--r--drivers/staging/meilhaus/meslist.c173
-rw-r--r--drivers/staging/meilhaus/meslist.h108
-rw-r--r--drivers/staging/meilhaus/meslock.c136
-rw-r--r--drivers/staging/meilhaus/meslock.h73
-rw-r--r--drivers/staging/meilhaus/mesubdevice.c317
-rw-r--r--drivers/staging/meilhaus/mesubdevice.h197
-rw-r--r--drivers/staging/meilhaus/metempl_device.c137
-rw-r--r--drivers/staging/meilhaus/metempl_device.h92
-rw-r--r--drivers/staging/meilhaus/metempl_sub.c149
-rw-r--r--drivers/staging/meilhaus/metempl_sub.h64
-rw-r--r--drivers/staging/meilhaus/metempl_sub_reg.h35
-rw-r--r--drivers/staging/meilhaus/metypes.h95
-rw-r--r--drivers/staging/mimio/Kconfig10
-rw-r--r--drivers/staging/mimio/Makefile1
-rw-r--r--drivers/staging/mimio/mimio.c914
-rw-r--r--drivers/staging/mt29f_spinand/Kconfig16
-rw-r--r--drivers/staging/mt29f_spinand/Makefile1
-rw-r--r--drivers/staging/mt29f_spinand/TODO13
-rw-r--r--drivers/staging/mt29f_spinand/mt29f_spinand.c950
-rw-r--r--drivers/staging/mt29f_spinand/mt29f_spinand.h107
-rw-r--r--drivers/staging/netlogic/Kconfig7
-rw-r--r--drivers/staging/netlogic/Makefile1
-rw-r--r--drivers/staging/netlogic/TODO12
-rw-r--r--drivers/staging/netlogic/platform_net.c223
-rw-r--r--drivers/staging/netlogic/platform_net.h46
-rw-r--r--drivers/staging/netlogic/xlr_net.c1129
-rw-r--r--drivers/staging/netlogic/xlr_net.h1099
-rw-r--r--drivers/staging/nokia_h4p/Kconfig9
-rw-r--r--drivers/staging/nokia_h4p/Makefile6
-rw-r--r--drivers/staging/nokia_h4p/TODO132
-rw-r--r--drivers/staging/nokia_h4p/hci_h4p.h222
-rw-r--r--drivers/staging/nokia_h4p/nokia_core.c1206
-rw-r--r--drivers/staging/nokia_h4p/nokia_fw-bcm.c149
-rw-r--r--drivers/staging/nokia_h4p/nokia_fw-csr.c149
-rw-r--r--drivers/staging/nokia_h4p/nokia_fw-ti1273.c110
-rw-r--r--drivers/staging/nokia_h4p/nokia_fw.c208
-rw-r--r--drivers/staging/nokia_h4p/nokia_uart.c199
-rw-r--r--drivers/staging/nvec/Kconfig35
-rw-r--r--drivers/staging/nvec/Makefile5
-rw-r--r--drivers/staging/nvec/README14
-rw-r--r--drivers/staging/nvec/TODO8
-rw-r--r--drivers/staging/nvec/nvec-keytable.h307
-rw-r--r--drivers/staging/nvec/nvec.c990
-rw-r--r--drivers/staging/nvec/nvec.h183
-rw-r--r--drivers/staging/nvec/nvec_kbd.c193
-rw-r--r--drivers/staging/nvec/nvec_paz00.c98
-rw-r--r--drivers/staging/nvec/nvec_power.c443
-rw-r--r--drivers/staging/nvec/nvec_ps2.c188
-rw-r--r--drivers/staging/octeon-usb/Kconfig10
-rw-r--r--drivers/staging/octeon-usb/Makefile1
-rw-r--r--drivers/staging/octeon-usb/TODO11
-rw-r--r--drivers/staging/octeon-usb/octeon-hcd.c3960
-rw-r--r--drivers/staging/octeon-usb/octeon-hcd.h1819
-rw-r--r--drivers/staging/octeon/Kconfig13
-rw-r--r--drivers/staging/octeon/Makefile23
-rw-r--r--drivers/staging/octeon/ethernet-defines.h102
-rw-r--r--drivers/staging/octeon/ethernet-mdio.c182
-rw-r--r--drivers/staging/octeon/ethernet-mdio.h44
-rw-r--r--drivers/staging/octeon/ethernet-mem.c173
-rw-r--r--drivers/staging/octeon/ethernet-mem.h29
-rw-r--r--drivers/staging/octeon/ethernet-rgmii.c433
-rw-r--r--drivers/staging/octeon/ethernet-rx.c558
-rw-r--r--drivers/staging/octeon/ethernet-rx.h52
-rw-r--r--drivers/staging/octeon/ethernet-sgmii.c127
-rw-r--r--drivers/staging/octeon/ethernet-spi.c292
-rw-r--r--drivers/staging/octeon/ethernet-tx.c749
-rw-r--r--drivers/staging/octeon/ethernet-tx.h34
-rw-r--r--drivers/staging/octeon/ethernet-util.h72
-rw-r--r--drivers/staging/octeon/ethernet-xaui.c125
-rw-r--r--drivers/staging/octeon/ethernet.c884
-rw-r--r--drivers/staging/octeon/octeon-ethernet.h101
-rw-r--r--drivers/staging/olpc_dcon/Kconfig35
-rw-r--r--drivers/staging/olpc_dcon/Makefile6
-rw-r--r--drivers/staging/olpc_dcon/TODO9
-rw-r--r--drivers/staging/olpc_dcon/olpc_dcon.c820
-rw-r--r--drivers/staging/olpc_dcon/olpc_dcon.h111
-rw-r--r--drivers/staging/olpc_dcon/olpc_dcon_xo_1.c205
-rw-r--r--drivers/staging/olpc_dcon/olpc_dcon_xo_1_5.c161
-rw-r--r--drivers/staging/otus/80211core/amsdu.c134
-rw-r--r--drivers/staging/otus/80211core/cagg.c3611
-rw-r--r--drivers/staging/otus/80211core/cagg.h435
-rw-r--r--drivers/staging/otus/80211core/ccmd.c1861
-rw-r--r--drivers/staging/otus/80211core/cfunc.c1227
-rw-r--r--drivers/staging/otus/80211core/cfunc.h449
-rw-r--r--drivers/staging/otus/80211core/chb.c200
-rw-r--r--drivers/staging/otus/80211core/cic.c496
-rw-r--r--drivers/staging/otus/80211core/cinit.c1911
-rw-r--r--drivers/staging/otus/80211core/cmm.c2141
-rw-r--r--drivers/staging/otus/80211core/cmmap.c2402
-rw-r--r--drivers/staging/otus/80211core/cmmsta.c5782
-rw-r--r--drivers/staging/otus/80211core/coid.c2695
-rw-r--r--drivers/staging/otus/80211core/cprecomp.h32
-rw-r--r--drivers/staging/otus/80211core/cpsmgr.c731
-rw-r--r--drivers/staging/otus/80211core/cscanmgr.c535
-rw-r--r--drivers/staging/otus/80211core/ctkip.c598
-rw-r--r--drivers/staging/otus/80211core/ctxrx.c4096
-rw-r--r--drivers/staging/otus/80211core/cwep.c299
-rw-r--r--drivers/staging/otus/80211core/cwm.c131
-rw-r--r--drivers/staging/otus/80211core/cwm.h45
-rw-r--r--drivers/staging/otus/80211core/freqctrl.c259
-rw-r--r--drivers/staging/otus/80211core/ledmgr.c557
-rw-r--r--drivers/staging/otus/80211core/performance.c431
-rw-r--r--drivers/staging/otus/80211core/performance.h97
-rw-r--r--drivers/staging/otus/80211core/pub_usb.h102
-rw-r--r--drivers/staging/otus/80211core/pub_zfi.h821
-rw-r--r--drivers/staging/otus/80211core/pub_zfw.h93
-rw-r--r--drivers/staging/otus/80211core/queue.c303
-rw-r--r--drivers/staging/otus/80211core/queue.h37
-rw-r--r--drivers/staging/otus/80211core/ratectrl.c874
-rw-r--r--drivers/staging/otus/80211core/ratectrl.h37
-rw-r--r--drivers/staging/otus/80211core/struct.h1315
-rw-r--r--drivers/staging/otus/80211core/wlan.h595
-rw-r--r--drivers/staging/otus/Kconfig32
-rw-r--r--drivers/staging/otus/Makefile67
-rw-r--r--drivers/staging/otus/TODO9
-rw-r--r--drivers/staging/otus/apdbg.c457
-rw-r--r--drivers/staging/otus/athr_common.h141
-rw-r--r--drivers/staging/otus/hal/hpDKfwu.c832
-rw-r--r--drivers/staging/otus/hal/hpani.c732
-rw-r--r--drivers/staging/otus/hal/hpani.h420
-rw-r--r--drivers/staging/otus/hal/hpfw2.c1018
-rw-r--r--drivers/staging/otus/hal/hpfwbu.c5269
-rw-r--r--drivers/staging/otus/hal/hpfwspiu.c655
-rw-r--r--drivers/staging/otus/hal/hpfwu.c1017
-rw-r--r--drivers/staging/otus/hal/hpfwu.c.drv_ba_resend742
-rw-r--r--drivers/staging/otus/hal/hpfwu_2k.c1016
-rw-r--r--drivers/staging/otus/hal/hpfwu_BA.c874
-rw-r--r--drivers/staging/otus/hal/hpfwu_FB50_mdk.c721
-rw-r--r--drivers/staging/otus/hal/hpfwu_OTUS_RC.c715
-rw-r--r--drivers/staging/otus/hal/hpfwu_txstream.c1017
-rw-r--r--drivers/staging/otus/hal/hpfwuinit.c240
-rw-r--r--drivers/staging/otus/hal/hpmain.c4643
-rw-r--r--drivers/staging/otus/hal/hpreg.c2481
-rw-r--r--drivers/staging/otus/hal/hpreg.h524
-rw-r--r--drivers/staging/otus/hal/hprw.c1557
-rw-r--r--drivers/staging/otus/hal/hpusb.c1584
-rw-r--r--drivers/staging/otus/hal/hpusb.h437
-rw-r--r--drivers/staging/otus/hal/otus.ini414
-rw-r--r--drivers/staging/otus/ioctl.c2913
-rw-r--r--drivers/staging/otus/oal_dt.h60
-rw-r--r--drivers/staging/otus/oal_marc.h135
-rw-r--r--drivers/staging/otus/usbdrv.c1148
-rw-r--r--drivers/staging/otus/usbdrv.h252
-rw-r--r--drivers/staging/otus/wrap_buf.c114
-rw-r--r--drivers/staging/otus/wrap_dbg.c101
-rw-r--r--drivers/staging/otus/wrap_ev.c283
-rw-r--r--drivers/staging/otus/wrap_mem.c101
-rw-r--r--drivers/staging/otus/wrap_mis.c109
-rw-r--r--drivers/staging/otus/wrap_pkt.c173
-rw-r--r--drivers/staging/otus/wrap_sec.c127
-rw-r--r--drivers/staging/otus/wrap_usb.c191
-rw-r--r--drivers/staging/otus/wwrap.c1134
-rw-r--r--drivers/staging/otus/zdcompat.h62
-rw-r--r--drivers/staging/otus/zdusb.c239
-rw-r--r--drivers/staging/otus/zdusb.h43
-rw-r--r--drivers/staging/ozwpan/Kconfig9
-rw-r--r--drivers/staging/ozwpan/Makefile16
-rw-r--r--drivers/staging/ozwpan/README25
-rw-r--r--drivers/staging/ozwpan/TODO14
-rw-r--r--drivers/staging/ozwpan/ozappif.h36
-rw-r--r--drivers/staging/ozwpan/ozcdev.c550
-rw-r--r--drivers/staging/ozwpan/ozcdev.h17
-rw-r--r--drivers/staging/ozwpan/ozdbg.h54
-rw-r--r--drivers/staging/ozwpan/ozeltbuf.c338
-rw-r--r--drivers/staging/ozwpan/ozeltbuf.h70
-rw-r--r--drivers/staging/ozwpan/ozhcd.c2383
-rw-r--r--drivers/staging/ozwpan/ozhcd.h15
-rw-r--r--drivers/staging/ozwpan/ozmain.c59
-rw-r--r--drivers/staging/ozwpan/ozpd.c1016
-rw-r--r--drivers/staging/ozwpan/ozpd.h133
-rw-r--r--drivers/staging/ozwpan/ozproto.c800
-rw-r--r--drivers/staging/ozwpan/ozproto.h69
-rw-r--r--drivers/staging/ozwpan/ozprotocol.h377
-rw-r--r--drivers/staging/ozwpan/ozurbparanoia.c54
-rw-r--r--drivers/staging/ozwpan/ozurbparanoia.h19
-rw-r--r--drivers/staging/ozwpan/ozusbif.h43
-rw-r--r--drivers/staging/ozwpan/ozusbsvc.c261
-rw-r--r--drivers/staging/ozwpan/ozusbsvc.h32
-rw-r--r--drivers/staging/ozwpan/ozusbsvc1.c449
-rw-r--r--drivers/staging/panel/Kconfig4
-rw-r--r--drivers/staging/panel/lcd-panel-cgram.txt2
-rw-r--r--drivers/staging/panel/panel.c1449
-rw-r--r--drivers/staging/phison/Kconfig5
-rw-r--r--drivers/staging/phison/Makefile1
-rw-r--r--drivers/staging/phison/phison.c94
-rw-r--r--drivers/staging/poch/Kconfig6
-rw-r--r--drivers/staging/poch/Makefile1
-rw-r--r--drivers/staging/poch/README14
-rw-r--r--drivers/staging/poch/poch.c1463
-rw-r--r--drivers/staging/poch/poch.h29
-rw-r--r--drivers/staging/quickstart/Kconfig10
-rw-r--r--drivers/staging/quickstart/Makefile1
-rw-r--r--drivers/staging/quickstart/quickstart.c458
-rw-r--r--drivers/staging/rspiusb/Kconfig6
-rw-r--r--drivers/staging/rspiusb/Makefile1
-rw-r--r--drivers/staging/rspiusb/TODO22
-rw-r--r--drivers/staging/rspiusb/rspiusb.c887
-rw-r--r--drivers/staging/rspiusb/rspiusb.h25
-rw-r--r--drivers/staging/rt2860/2860_main_dev.c1377
-rw-r--r--drivers/staging/rt2860/Kconfig5
-rw-r--r--drivers/staging/rt2860/Makefile43
-rw-r--r--drivers/staging/rt2860/TODO17
-rw-r--r--drivers/staging/rt2860/aironet.h210
-rw-r--r--drivers/staging/rt2860/ap.h557
-rw-r--r--drivers/staging/rt2860/chlist.h1296
-rw-r--r--drivers/staging/rt2860/common/2860_rtmp_init.c922
-rw-r--r--drivers/staging/rt2860/common/action.c1031
-rw-r--r--drivers/staging/rt2860/common/action.h68
-rw-r--r--drivers/staging/rt2860/common/ba_action.c1802
-rw-r--r--drivers/staging/rt2860/common/cmm_data.c3466
-rw-r--r--drivers/staging/rt2860/common/cmm_data_2860.c1240
-rw-r--r--drivers/staging/rt2860/common/cmm_info.c3417
-rw-r--r--drivers/staging/rt2860/common/cmm_sanity.c1633
-rw-r--r--drivers/staging/rt2860/common/cmm_sync.c702
-rw-r--r--drivers/staging/rt2860/common/cmm_wpa.c1606
-rw-r--r--drivers/staging/rt2860/common/dfs.c453
-rw-r--r--drivers/staging/rt2860/common/eeprom.c244
-rw-r--r--drivers/staging/rt2860/common/firmware.h558
-rw-r--r--drivers/staging/rt2860/common/md5.c1427
-rw-r--r--drivers/staging/rt2860/common/mlme.c8667
-rw-r--r--drivers/staging/rt2860/common/netif_block.c144
-rw-r--r--drivers/staging/rt2860/common/netif_block.h58
-rw-r--r--drivers/staging/rt2860/common/rtmp_init.c3744
-rw-r--r--drivers/staging/rt2860/common/rtmp_tkip.c1607
-rw-r--r--drivers/staging/rt2860/common/rtmp_wep.c499
-rw-r--r--drivers/staging/rt2860/common/spectrum.c1877
-rw-r--r--drivers/staging/rt2860/config.mk245
-rw-r--r--drivers/staging/rt2860/dfs.h100
-rw-r--r--drivers/staging/rt2860/leap.h215
-rw-r--r--drivers/staging/rt2860/link_list.h134
-rw-r--r--drivers/staging/rt2860/md4.h42
-rw-r--r--drivers/staging/rt2860/md5.h107
-rw-r--r--drivers/staging/rt2860/mlme.h1447
-rw-r--r--drivers/staging/rt2860/oid.h995
-rw-r--r--drivers/staging/rt2860/rt2860.h349
-rw-r--r--drivers/staging/rt2860/rt28xx.h2714
-rw-r--r--drivers/staging/rt2860/rt_ate.c6025
-rw-r--r--drivers/staging/rt2860/rt_ate.h353
-rw-r--r--drivers/staging/rt2860/rt_config.h101
-rw-r--r--drivers/staging/rt2860/rt_linux.c1054
-rw-r--r--drivers/staging/rt2860/rt_linux.h926
-rw-r--r--drivers/staging/rt2860/rt_main_dev.c1686
-rw-r--r--drivers/staging/rt2860/rt_profile.c1981
-rw-r--r--drivers/staging/rt2860/rtmp.h7177
-rw-r--r--drivers/staging/rt2860/rtmp_ckipmic.h113
-rw-r--r--drivers/staging/rt2860/rtmp_def.h1588
-rw-r--r--drivers/staging/rt2860/rtmp_type.h94
-rw-r--r--drivers/staging/rt2860/spectrum.h322
-rw-r--r--drivers/staging/rt2860/spectrum_def.h95
-rw-r--r--drivers/staging/rt2860/sta/aironet.c1312
-rw-r--r--drivers/staging/rt2860/sta/assoc.c1826
-rw-r--r--drivers/staging/rt2860/sta/auth.c474
-rw-r--r--drivers/staging/rt2860/sta/auth_rsp.c167
-rw-r--r--drivers/staging/rt2860/sta/connect.c2751
-rw-r--r--drivers/staging/rt2860/sta/dls.c2201
-rw-r--r--drivers/staging/rt2860/sta/rtmp_data.c2614
-rw-r--r--drivers/staging/rt2860/sta/sanity.c420
-rw-r--r--drivers/staging/rt2860/sta/sync.c1959
-rw-r--r--drivers/staging/rt2860/sta/wpa.c2086
-rw-r--r--drivers/staging/rt2860/sta_ioctl.c6944
-rw-r--r--drivers/staging/rt2860/wpa.h356
-rw-r--r--drivers/staging/rt2870/2870_main_dev.c1612
-rw-r--r--drivers/staging/rt2870/Kconfig6
-rw-r--r--drivers/staging/rt2870/Makefile47
-rw-r--r--drivers/staging/rt2870/TODO10
-rw-r--r--drivers/staging/rt2870/aironet.h210
-rw-r--r--drivers/staging/rt2870/ap.h562
-rw-r--r--drivers/staging/rt2870/chlist.h1296
-rw-r--r--drivers/staging/rt2870/common/2870_rtmp_init.c1778
-rw-r--r--drivers/staging/rt2870/common/action.c1046
-rw-r--r--drivers/staging/rt2870/common/action.h68
-rw-r--r--drivers/staging/rt2870/common/ba_action.c1798
-rw-r--r--drivers/staging/rt2870/common/cmm_data.c2734
-rw-r--r--drivers/staging/rt2870/common/cmm_data_2870.c963
-rw-r--r--drivers/staging/rt2870/common/cmm_info.c3712
-rw-r--r--drivers/staging/rt2870/common/cmm_sanity.c1663
-rw-r--r--drivers/staging/rt2870/common/cmm_sync.c711
-rw-r--r--drivers/staging/rt2870/common/cmm_wpa.c1654
-rw-r--r--drivers/staging/rt2870/common/dfs.c453
-rw-r--r--drivers/staging/rt2870/common/eeprom.c254
-rw-r--r--drivers/staging/rt2870/common/firmware.h558
-rw-r--r--drivers/staging/rt2870/common/md5.c1427
-rw-r--r--drivers/staging/rt2870/common/mlme.c8609
-rw-r--r--drivers/staging/rt2870/common/netif_block.c144
-rw-r--r--drivers/staging/rt2870/common/rtmp_init.c4132
-rw-r--r--drivers/staging/rt2870/common/rtmp_tkip.c1613
-rw-r--r--drivers/staging/rt2870/common/rtmp_wep.c508
-rw-r--r--drivers/staging/rt2870/common/rtusb_bulk.c1981
-rw-r--r--drivers/staging/rt2870/common/rtusb_data.c229
-rw-r--r--drivers/staging/rt2870/common/rtusb_io.c2006
-rw-r--r--drivers/staging/rt2870/common/spectrum.c1876
-rw-r--r--drivers/staging/rt2870/dfs.h100
-rw-r--r--drivers/staging/rt2870/leap.h215
-rw-r--r--drivers/staging/rt2870/link_list.h134
-rw-r--r--drivers/staging/rt2870/md4.h42
-rw-r--r--drivers/staging/rt2870/md5.h107
-rw-r--r--drivers/staging/rt2870/mlme.h1471
-rw-r--r--drivers/staging/rt2870/netif_block.h58
-rw-r--r--drivers/staging/rt2870/oid.h1091
-rw-r--r--drivers/staging/rt2870/rt2870.h761
-rw-r--r--drivers/staging/rt2870/rt28xx.h2689
-rw-r--r--drivers/staging/rt2870/rt_ate.c6452
-rw-r--r--drivers/staging/rt2870/rt_ate.h315
-rw-r--r--drivers/staging/rt2870/rt_config.h104
-rw-r--r--drivers/staging/rt2870/rt_linux.c1095
-rw-r--r--drivers/staging/rt2870/rt_linux.h908
-rw-r--r--drivers/staging/rt2870/rt_main_dev.c1863
-rw-r--r--drivers/staging/rt2870/rt_profile.c2020
-rw-r--r--drivers/staging/rt2870/rtmp.h7586
-rw-r--r--drivers/staging/rt2870/rtmp_ckipmic.h113
-rw-r--r--drivers/staging/rt2870/rtmp_def.h1622
-rw-r--r--drivers/staging/rt2870/rtmp_type.h94
-rw-r--r--drivers/staging/rt2870/spectrum.h322
-rw-r--r--drivers/staging/rt2870/spectrum_def.h95
-rw-r--r--drivers/staging/rt2870/sta/aironet.c1312
-rw-r--r--drivers/staging/rt2870/sta/assoc.c2039
-rw-r--r--drivers/staging/rt2870/sta/auth.c474
-rw-r--r--drivers/staging/rt2870/sta/auth_rsp.c166
-rw-r--r--drivers/staging/rt2870/sta/connect.c2822
-rw-r--r--drivers/staging/rt2870/sta/dls.c2210
-rw-r--r--drivers/staging/rt2870/sta/rtmp_data.c2619
-rw-r--r--drivers/staging/rt2870/sta/sanity.c420
-rw-r--r--drivers/staging/rt2870/sta/sync.c1753
-rw-r--r--drivers/staging/rt2870/sta/wpa.c2107
-rw-r--r--drivers/staging/rt2870/sta_ioctl.c7068
-rw-r--r--drivers/staging/rt2870/sta_ioctl.c.patch18
-rw-r--r--drivers/staging/rt2870/tmp607037
-rw-r--r--drivers/staging/rt2870/tmp617037
-rw-r--r--drivers/staging/rt2870/wpa.h357
-rw-r--r--drivers/staging/rtl8187se/Kconfig5
-rw-r--r--drivers/staging/rtl8187se/Makefile55
-rw-r--r--drivers/staging/rtl8187se/dot11d.h101
-rw-r--r--drivers/staging/rtl8187se/ieee80211.h1755
-rw-r--r--drivers/staging/rtl8187se/ieee80211/dot11d.c246
-rw-r--r--drivers/staging/rtl8187se/ieee80211/dot11d.h102
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211.h1755
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.h86
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_ccmp.c533
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_tkip.c1001
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211_crypt_wep.c394
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211_module.c301
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211_rx.c1971
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211_softmac.c4029
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211_softmac_wx.c602
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211_tx.c828
-rw-r--r--drivers/staging/rtl8187se/ieee80211/ieee80211_wx.c884
-rw-r--r--drivers/staging/rtl8187se/ieee80211/internal.h115
-rw-r--r--drivers/staging/rtl8187se/ieee80211/rtl_crypto.h399
-rw-r--r--drivers/staging/rtl8187se/ieee80211_crypt.h86
-rw-r--r--drivers/staging/rtl8187se/r8180.h761
-rw-r--r--drivers/staging/rtl8187se/r8180_93cx6.c146
-rw-r--r--drivers/staging/rtl8187se/r8180_93cx6.h59
-rw-r--r--drivers/staging/rtl8187se/r8180_core.c6828
-rw-r--r--drivers/staging/rtl8187se/r8180_dm.c1725
-rw-r--r--drivers/staging/rtl8187se/r8180_dm.h41
-rw-r--r--drivers/staging/rtl8187se/r8180_gct.c296
-rw-r--r--drivers/staging/rtl8187se/r8180_gct.h25
-rw-r--r--drivers/staging/rtl8187se/r8180_hw.h956
-rw-r--r--drivers/staging/rtl8187se/r8180_max2820.c240
-rw-r--r--drivers/staging/rtl8187se/r8180_max2820.h21
-rw-r--r--drivers/staging/rtl8187se/r8180_pm.c90
-rw-r--r--drivers/staging/rtl8187se/r8180_pm.h28
-rw-r--r--drivers/staging/rtl8187se/r8180_rtl8225.c933
-rw-r--r--drivers/staging/rtl8187se/r8180_rtl8225.h44
-rw-r--r--drivers/staging/rtl8187se/r8180_rtl8225z2.c1587
-rw-r--r--drivers/staging/rtl8187se/r8180_rtl8255.c1838
-rw-r--r--drivers/staging/rtl8187se/r8180_rtl8255.h19
-rw-r--r--drivers/staging/rtl8187se/r8180_sa2400.c233
-rw-r--r--drivers/staging/rtl8187se/r8180_sa2400.h26
-rw-r--r--drivers/staging/rtl8187se/r8180_wx.c1644
-rw-r--r--drivers/staging/rtl8187se/r8180_wx.h21
-rw-r--r--drivers/staging/rtl8187se/r8185b_init.c3342
-rw-r--r--drivers/staging/rtl8188eu/Kconfig28
-rw-r--r--drivers/staging/rtl8188eu/Makefile66
-rw-r--r--drivers/staging/rtl8188eu/TODO19
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_ap.c1976
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_br_ext.c1191
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_cmd.c2196
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_debug.c947
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_efuse.c870
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_ieee80211.c1626
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_io.c301
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_ioctl_set.c1137
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_iol.c209
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_led.c481
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_mlme.c2277
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_mlme_ext.c8478
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_mp.c995
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_mp_ioctl.c1430
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_p2p.c2041
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_pwrctrl.c620
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_recv.c2214
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_rf.c89
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_security.c1706
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_sreset.c79
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_sta_mgt.c565
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_wlan_util.c1663
-rw-r--r--drivers/staging/rtl8188eu/core/rtw_xmit.c2359
-rw-r--r--drivers/staging/rtl8188eu/hal/Hal8188EPwrSeq.c86
-rw-r--r--drivers/staging/rtl8188eu/hal/Hal8188ERateAdaptive.c761
-rw-r--r--drivers/staging/rtl8188eu/hal/HalHWImg8188E_BB.c721
-rw-r--r--drivers/staging/rtl8188eu/hal/HalHWImg8188E_MAC.c231
-rw-r--r--drivers/staging/rtl8188eu/hal/HalHWImg8188E_RF.c269
-rw-r--r--drivers/staging/rtl8188eu/hal/HalPhyRf.c49
-rw-r--r--drivers/staging/rtl8188eu/hal/HalPhyRf_8188e.c1486
-rw-r--r--drivers/staging/rtl8188eu/hal/HalPwrSeqCmd.c132
-rw-r--r--drivers/staging/rtl8188eu/hal/hal_com.c381
-rw-r--r--drivers/staging/rtl8188eu/hal/hal_intf.c444
-rw-r--r--drivers/staging/rtl8188eu/hal/odm.c1386
-rw-r--r--drivers/staging/rtl8188eu/hal/odm_HWConfig.c469
-rw-r--r--drivers/staging/rtl8188eu/hal/odm_RTL8188E.c378
-rw-r--r--drivers/staging/rtl8188eu/hal/odm_RegConfig8188E.c138
-rw-r--r--drivers/staging/rtl8188eu/hal/odm_debug.c32
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188e_cmd.c767
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188e_dm.c247
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188e_hal_init.c2392
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188e_mp.c854
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188e_phycfg.c936
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188e_rf6052.c527
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188e_rxdesc.c205
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188e_sreset.c80
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188e_xmit.c91
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188eu_led.c92
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188eu_recv.c115
-rw-r--r--drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c704
-rw-r--r--drivers/staging/rtl8188eu/hal/usb_halinit.c2270
-rw-r--r--drivers/staging/rtl8188eu/hal/usb_ops_linux.c684
-rw-r--r--drivers/staging/rtl8188eu/include/Hal8188EPhyCfg.h275
-rw-r--r--drivers/staging/rtl8188eu/include/Hal8188EPhyReg.h1094
-rw-r--r--drivers/staging/rtl8188eu/include/Hal8188EPwrSeq.h176
-rw-r--r--drivers/staging/rtl8188eu/include/Hal8188ERateAdaptive.h75
-rw-r--r--drivers/staging/rtl8188eu/include/Hal8188EReg.h46
-rw-r--r--drivers/staging/rtl8188eu/include/HalHWImg8188E_BB.h44
-rw-r--r--drivers/staging/rtl8188eu/include/HalHWImg8188E_FW.h34
-rw-r--r--drivers/staging/rtl8188eu/include/HalHWImg8188E_MAC.h30
-rw-r--r--drivers/staging/rtl8188eu/include/HalHWImg8188E_RF.h30
-rw-r--r--drivers/staging/rtl8188eu/include/HalPhyRf.h30
-rw-r--r--drivers/staging/rtl8188eu/include/HalPhyRf_8188e.h61
-rw-r--r--drivers/staging/rtl8188eu/include/HalPwrSeqCmd.h128
-rw-r--r--drivers/staging/rtl8188eu/include/HalVerDef.h167
-rw-r--r--drivers/staging/rtl8188eu/include/basic_types.h184
-rw-r--r--drivers/staging/rtl8188eu/include/cmd_osdep.h32
-rw-r--r--drivers/staging/rtl8188eu/include/drv_types.h337
-rw-r--r--drivers/staging/rtl8188eu/include/hal_com.h173
-rw-r--r--drivers/staging/rtl8188eu/include/hal_intf.h389
-rw-r--r--drivers/staging/rtl8188eu/include/ieee80211.h1274
-rw-r--r--drivers/staging/rtl8188eu/include/ieee80211_ext.h290
-rw-r--r--drivers/staging/rtl8188eu/include/mlme_osdep.h35
-rw-r--r--drivers/staging/rtl8188eu/include/mp_custom_oid.h352
-rw-r--r--drivers/staging/rtl8188eu/include/odm.h1118
-rw-r--r--drivers/staging/rtl8188eu/include/odm_HWConfig.h132
-rw-r--r--drivers/staging/rtl8188eu/include/odm_RTL8188E.h54
-rw-r--r--drivers/staging/rtl8188eu/include/odm_RegConfig8188E.h43
-rw-r--r--drivers/staging/rtl8188eu/include/odm_RegDefine11AC.h54
-rw-r--r--drivers/staging/rtl8188eu/include/odm_RegDefine11N.h171
-rw-r--r--drivers/staging/rtl8188eu/include/odm_debug.h134
-rw-r--r--drivers/staging/rtl8188eu/include/odm_precomp.h91
-rw-r--r--drivers/staging/rtl8188eu/include/odm_reg.h119
-rw-r--r--drivers/staging/rtl8188eu/include/odm_types.h37
-rw-r--r--drivers/staging/rtl8188eu/include/osdep_intf.h83
-rw-r--r--drivers/staging/rtl8188eu/include/osdep_service.h368
-rw-r--r--drivers/staging/rtl8188eu/include/recv_osdep.h54
-rw-r--r--drivers/staging/rtl8188eu/include/rtl8188e_cmd.h122
-rw-r--r--drivers/staging/rtl8188eu/include/rtl8188e_dm.h61
-rw-r--r--drivers/staging/rtl8188eu/include/rtl8188e_hal.h475
-rw-r--r--drivers/staging/rtl8188eu/include/rtl8188e_led.h35
-rw-r--r--drivers/staging/rtl8188eu/include/rtl8188e_recv.h69
-rw-r--r--drivers/staging/rtl8188eu/include/rtl8188e_rf.h36
-rw-r--r--drivers/staging/rtl8188eu/include/rtl8188e_spec.h1439
-rw-r--r--drivers/staging/rtl8188eu/include/rtl8188e_sreset.h31
-rw-r--r--drivers/staging/rtl8188eu/include/rtl8188e_xmit.h178
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_android.h64
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_ap.h65
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_br_ext.h66
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_cmd.h989
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_debug.h266
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_eeprom.h130
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_efuse.h150
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_event.h115
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_ht.h44
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_io.h343
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_ioctl.h122
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_ioctl_rtl.h79
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_ioctl_set.h50
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_iol.h84
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_led.h124
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_mlme.h613
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_mlme_ext.h879
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_mp.h495
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_mp_ioctl.h340
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_mp_phy_regdef.h1084
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_p2p.h135
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_pwrctrl.h271
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_qos.h30
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_recv.h365
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_rf.h146
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_security.h383
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_sreset.h50
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_version.h1
-rw-r--r--drivers/staging/rtl8188eu/include/rtw_xmit.h379
-rw-r--r--drivers/staging/rtl8188eu/include/sta_info.h384
-rw-r--r--drivers/staging/rtl8188eu/include/usb_hal.h26
-rw-r--r--drivers/staging/rtl8188eu/include/usb_ops.h114
-rw-r--r--drivers/staging/rtl8188eu/include/usb_ops_linux.h55
-rw-r--r--drivers/staging/rtl8188eu/include/usb_osintf.h45
-rw-r--r--drivers/staging/rtl8188eu/include/usb_vendor_req.h52
-rw-r--r--drivers/staging/rtl8188eu/include/wifi.h1127
-rw-r--r--drivers/staging/rtl8188eu/include/wlan_bssdef.h347
-rw-r--r--drivers/staging/rtl8188eu/include/xmit_osdep.h61
-rw-r--r--drivers/staging/rtl8188eu/os_dep/ioctl_linux.c8211
-rw-r--r--drivers/staging/rtl8188eu/os_dep/mlme_linux.c239
-rw-r--r--drivers/staging/rtl8188eu/os_dep/os_intfs.c1250
-rw-r--r--drivers/staging/rtl8188eu/os_dep/osdep_service.c444
-rw-r--r--drivers/staging/rtl8188eu/os_dep/recv_linux.c219
-rw-r--r--drivers/staging/rtl8188eu/os_dep/rtw_android.c290
-rw-r--r--drivers/staging/rtl8188eu/os_dep/usb_intf.c756
-rw-r--r--drivers/staging/rtl8188eu/os_dep/usb_ops_linux.c276
-rw-r--r--drivers/staging/rtl8188eu/os_dep/xmit_linux.c267
-rw-r--r--drivers/staging/rtl8192e/Kconfig47
-rw-r--r--drivers/staging/rtl8192e/Makefile21
-rw-r--r--drivers/staging/rtl8192e/TODO2
-rw-r--r--drivers/staging/rtl8192e/dot11d.c215
-rw-r--r--drivers/staging/rtl8192e/dot11d.h108
-rw-r--r--drivers/staging/rtl8192e/license339
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/Kconfig9
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/Makefile20
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8190P_def.h410
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.c306
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8190P_rtl8256.h31
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.c384
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_cmdpkt.h159
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c2401
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_dev.h62
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c320
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h72
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_hw.h453
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c565
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.h51
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c1634
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_phy.h120
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r8192E_phyreg.h852
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/r819xE_phyreg.h915
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_cam.c303
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_cam.h46
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_core.c3123
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_core.h1082
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_crypto.h382
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_dm.c2994
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_dm.h324
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c139
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.h29
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_ethtool.c53
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_pci.c95
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_pci.h51
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_pm.c134
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_pm.h31
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_ps.c310
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_ps.h47
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_wx.c1340
-rw-r--r--drivers/staging/rtl8192e/rtl8192e/rtl_wx.h30
-rw-r--r--drivers/staging/rtl8192e/rtl819x_BA.h77
-rw-r--r--drivers/staging/rtl8192e/rtl819x_BAProc.c565
-rw-r--r--drivers/staging/rtl8192e/rtl819x_HT.h475
-rw-r--r--drivers/staging/rtl8192e/rtl819x_HTProc.c1076
-rw-r--r--drivers/staging/rtl8192e/rtl819x_Qos.h407
-rw-r--r--drivers/staging/rtl8192e/rtl819x_TS.h73
-rw-r--r--drivers/staging/rtl8192e/rtl819x_TSProc.c549
-rw-r--r--drivers/staging/rtl8192e/rtllib.h3053
-rw-r--r--drivers/staging/rtl8192e/rtllib_crypt.c251
-rw-r--r--drivers/staging/rtl8192e/rtllib_crypt.h35
-rw-r--r--drivers/staging/rtl8192e/rtllib_crypt_ccmp.c460
-rw-r--r--drivers/staging/rtl8192e/rtllib_crypt_tkip.c769
-rw-r--r--drivers/staging/rtl8192e/rtllib_crypt_wep.c287
-rw-r--r--drivers/staging/rtl8192e/rtllib_debug.h88
-rw-r--r--drivers/staging/rtl8192e/rtllib_endianfree.h122
-rw-r--r--drivers/staging/rtl8192e/rtllib_module.c272
-rw-r--r--drivers/staging/rtl8192e/rtllib_rx.c2729
-rw-r--r--drivers/staging/rtl8192e/rtllib_softmac.c3739
-rw-r--r--drivers/staging/rtl8192e/rtllib_softmac_wx.c661
-rw-r--r--drivers/staging/rtl8192e/rtllib_tx.c968
-rw-r--r--drivers/staging/rtl8192e/rtllib_wx.c879
-rw-r--r--drivers/staging/rtl8192ee/Kconfig15
-rw-r--r--drivers/staging/rtl8192ee/Makefile40
-rw-r--r--drivers/staging/rtl8192ee/TODO12
-rw-r--r--drivers/staging/rtl8192ee/base.c1852
-rw-r--r--drivers/staging/rtl8192ee/base.h163
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbt_precomp.h50
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtc8192e2ant.c4110
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtc8192e2ant.h161
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtc8723b1ant.c3146
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtc8723b1ant.h160
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtc8723b2ant.c3929
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtc8723b2ant.h145
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtc8821a1ant.c2780
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtc8821a1ant.h158
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtc8821a2ant.c3438
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtc8821a2ant.h179
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtcoutsrc.c1297
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/halbtcoutsrc.h537
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/rtl_btc.c194
-rw-r--r--drivers/staging/rtl8192ee/btcoexist/rtl_btc.h62
-rw-r--r--drivers/staging/rtl8192ee/cam.c337
-rw-r--r--drivers/staging/rtl8192ee/cam.h52
-rw-r--r--drivers/staging/rtl8192ee/compat.h70
-rw-r--r--drivers/staging/rtl8192ee/core.c1600
-rw-r--r--drivers/staging/rtl8192ee/core.h39
-rw-r--r--drivers/staging/rtl8192ee/debug.c978
-rw-r--r--drivers/staging/rtl8192ee/debug.h221
-rw-r--r--drivers/staging/rtl8192ee/efuse.c1233
-rw-r--r--drivers/staging/rtl8192ee/efuse.h127
-rw-r--r--drivers/staging/rtl8192ee/pci.c2397
-rw-r--r--drivers/staging/rtl8192ee/pci.h342
-rw-r--r--drivers/staging/rtl8192ee/ps.c983
-rw-r--r--drivers/staging/rtl8192ee/ps.h52
-rw-r--r--drivers/staging/rtl8192ee/rc.c288
-rw-r--r--drivers/staging/rtl8192ee/rc.h47
-rw-r--r--drivers/staging/rtl8192ee/regd.c448
-rw-r--r--drivers/staging/rtl8192ee/regd.h63
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/def.h106
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/dm.c1258
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/dm.h343
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/fw.c945
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/fw.h213
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/hw.c2544
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/hw.h67
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/led.c134
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/led.h37
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/phy.c3282
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/phy.h154
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/pwrseq.c108
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/pwrseq.h355
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/pwrseqcmd.c139
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/pwrseqcmd.h69
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/reg.h2240
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/rf.c150
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/rf.h39
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/sw.c428
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/sw.h39
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/table.c882
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/table.h48
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/trx.c1286
-rw-r--r--drivers/staging/rtl8192ee/rtl8192ee/trx.h877
-rw-r--r--drivers/staging/rtl8192ee/stats.c290
-rw-r--r--drivers/staging/rtl8192ee/stats.h43
-rw-r--r--drivers/staging/rtl8192ee/wifi.h2644
-rw-r--r--drivers/staging/rtl8192u/Kconfig8
-rw-r--r--drivers/staging/rtl8192u/Makefile32
-rw-r--r--drivers/staging/rtl8192u/authors1
-rw-r--r--drivers/staging/rtl8192u/changes4
-rw-r--r--drivers/staging/rtl8192u/copying340
-rw-r--r--drivers/staging/rtl8192u/ieee80211/Makefile27
-rw-r--r--drivers/staging/rtl8192u/ieee80211/dot11d.c175
-rw-r--r--drivers/staging/rtl8192u/ieee80211/dot11d.h100
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211.h2614
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_crypt.c (renamed from drivers/staging/rtl8187se/ieee80211/ieee80211_crypt.c)38
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_crypt.h86
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_ccmp.c475
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c778
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_wep.c295
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_module.c309
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c2643
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c3219
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c605
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_tx.c916
-rw-r--r--drivers/staging/rtl8192u/ieee80211/ieee80211_wx.c852
-rw-r--r--drivers/staging/rtl8192u/ieee80211/rtl819x_BA.h67
-rw-r--r--drivers/staging/rtl8192u/ieee80211/rtl819x_BAProc.c740
-rw-r--r--drivers/staging/rtl8192u/ieee80211/rtl819x_HT.h480
-rw-r--r--drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c1418
-rw-r--r--drivers/staging/rtl8192u/ieee80211/rtl819x_Qos.h565
-rw-r--r--drivers/staging/rtl8192u/ieee80211/rtl819x_TS.h55
-rw-r--r--drivers/staging/rtl8192u/ieee80211/rtl819x_TSProc.c623
-rw-r--r--drivers/staging/rtl8192u/r8180_93cx6.c154
-rw-r--r--drivers/staging/rtl8192u/r8180_93cx6.h40
-rw-r--r--drivers/staging/rtl8192u/r8190_rtl8256.c311
-rw-r--r--drivers/staging/rtl8192u/r8190_rtl8256.h23
-rw-r--r--drivers/staging/rtl8192u/r8192U.h1198
-rw-r--r--drivers/staging/rtl8192u/r8192U_core.c5210
-rw-r--r--drivers/staging/rtl8192u/r8192U_dm.c3570
-rw-r--r--drivers/staging/rtl8192u/r8192U_dm.h239
-rw-r--r--drivers/staging/rtl8192u/r8192U_hw.h412
-rw-r--r--drivers/staging/rtl8192u/r8192U_wx.c1013
-rw-r--r--drivers/staging/rtl8192u/r8192U_wx.h23
-rw-r--r--drivers/staging/rtl8192u/r819xU_cmdpkt.c571
-rw-r--r--drivers/staging/rtl8192u/r819xU_cmdpkt.h191
-rw-r--r--drivers/staging/rtl8192u/r819xU_firmware.c345
-rw-r--r--drivers/staging/rtl8192u/r819xU_firmware.h26
-rw-r--r--drivers/staging/rtl8192u/r819xU_firmware_img.c548
-rw-r--r--drivers/staging/rtl8192u/r819xU_firmware_img.h28
-rw-r--r--drivers/staging/rtl8192u/r819xU_phy.c1811
-rw-r--r--drivers/staging/rtl8192u/r819xU_phy.h92
-rw-r--r--drivers/staging/rtl8192u/r819xU_phyreg.h871
-rw-r--r--drivers/staging/rtl8712/Kconfig17
-rw-r--r--drivers/staging/rtl8712/Makefile34
-rw-r--r--drivers/staging/rtl8712/TODO13
-rw-r--r--drivers/staging/rtl8712/basic_types.h48
-rw-r--r--drivers/staging/rtl8712/drv_types.h194
-rw-r--r--drivers/staging/rtl8712/ethernet.h33
-rw-r--r--drivers/staging/rtl8712/hal_init.c404
-rw-r--r--drivers/staging/rtl8712/ieee80211.c421
-rw-r--r--drivers/staging/rtl8712/ieee80211.h796
-rw-r--r--drivers/staging/rtl8712/mlme_linux.c167
-rw-r--r--drivers/staging/rtl8712/mlme_osdep.h43
-rw-r--r--drivers/staging/rtl8712/mp_custom_oid.h299
-rw-r--r--drivers/staging/rtl8712/os_intfs.c479
-rw-r--r--drivers/staging/rtl8712/osdep_intf.h44
-rw-r--r--drivers/staging/rtl8712/osdep_service.h208
-rw-r--r--drivers/staging/rtl8712/recv_linux.c168
-rw-r--r--drivers/staging/rtl8712/recv_osdep.h52
-rw-r--r--drivers/staging/rtl8712/rtl8712_bitdef.h40
-rw-r--r--drivers/staging/rtl8712/rtl8712_cmd.c478
-rw-r--r--drivers/staging/rtl8712/rtl8712_cmd.h244
-rw-r--r--drivers/staging/rtl8712/rtl8712_cmdctrl_bitdef.h108
-rw-r--r--drivers/staging/rtl8712/rtl8712_cmdctrl_regdef.h34
-rw-r--r--drivers/staging/rtl8712/rtl8712_debugctrl_bitdef.h55
-rw-r--r--drivers/staging/rtl8712/rtl8712_debugctrl_regdef.h47
-rw-r--r--drivers/staging/rtl8712/rtl8712_edcasetting_bitdef.h77
-rw-r--r--drivers/staging/rtl8712/rtl8712_edcasetting_regdef.h37
-rw-r--r--drivers/staging/rtl8712/rtl8712_efuse.c575
-rw-r--r--drivers/staging/rtl8712/rtl8712_efuse.h43
-rw-r--r--drivers/staging/rtl8712/rtl8712_event.h99
-rw-r--r--drivers/staging/rtl8712/rtl8712_fifoctrl_bitdef.h145
-rw-r--r--drivers/staging/rtl8712/rtl8712_fifoctrl_regdef.h76
-rw-r--r--drivers/staging/rtl8712/rtl8712_gp_bitdef.h79
-rw-r--r--drivers/staging/rtl8712/rtl8712_gp_regdef.h42
-rw-r--r--drivers/staging/rtl8712/rtl8712_hal.h150
-rw-r--r--drivers/staging/rtl8712/rtl8712_interrupt_bitdef.h58
-rw-r--r--drivers/staging/rtl8712/rtl8712_io.c151
-rw-r--r--drivers/staging/rtl8712/rtl8712_led.c1811
-rw-r--r--drivers/staging/rtl8712/rtl8712_macsetting_bitdef.h47
-rw-r--r--drivers/staging/rtl8712/rtl8712_macsetting_regdef.h35
-rw-r--r--drivers/staging/rtl8712/rtl8712_powersave_bitdef.h52
-rw-r--r--drivers/staging/rtl8712/rtl8712_powersave_regdef.h39
-rw-r--r--drivers/staging/rtl8712/rtl8712_ratectrl_bitdef.h49
-rw-r--r--drivers/staging/rtl8712/rtl8712_ratectrl_regdef.h56
-rw-r--r--drivers/staging/rtl8712/rtl8712_recv.c1130
-rw-r--r--drivers/staging/rtl8712/rtl8712_recv.h157
-rw-r--r--drivers/staging/rtl8712/rtl8712_regdef.h44
-rw-r--r--drivers/staging/rtl8712/rtl8712_security_bitdef.h48
-rw-r--r--drivers/staging/rtl8712/rtl8712_spec.h135
-rw-r--r--drivers/staging/rtl8712/rtl8712_syscfg_bitdef.h170
-rw-r--r--drivers/staging/rtl8712/rtl8712_syscfg_regdef.h56
-rw-r--r--drivers/staging/rtl8712/rtl8712_timectrl_bitdef.h63
-rw-r--r--drivers/staging/rtl8712/rtl8712_timectrl_regdef.h39
-rw-r--r--drivers/staging/rtl8712/rtl8712_wmac_bitdef.h62
-rw-r--r--drivers/staging/rtl8712/rtl8712_wmac_regdef.h49
-rw-r--r--drivers/staging/rtl8712/rtl8712_xmit.c759
-rw-r--r--drivers/staging/rtl8712/rtl8712_xmit.h123
-rw-r--r--drivers/staging/rtl8712/rtl871x_cmd.c1048
-rw-r--r--drivers/staging/rtl8712/rtl871x_cmd.h790
-rw-r--r--drivers/staging/rtl8712/rtl871x_debug.h167
-rw-r--r--drivers/staging/rtl8712/rtl871x_eeprom.c233
-rw-r--r--drivers/staging/rtl8712/rtl871x_eeprom.h101
-rw-r--r--drivers/staging/rtl8712/rtl871x_event.h120
-rw-r--r--drivers/staging/rtl8712/rtl871x_ht.h44
-rw-r--r--drivers/staging/rtl8712/rtl871x_io.c161
-rw-r--r--drivers/staging/rtl8712/rtl871x_io.h257
-rw-r--r--drivers/staging/rtl8712/rtl871x_ioctl.h97
-rw-r--r--drivers/staging/rtl8712/rtl871x_ioctl_linux.c2372
-rw-r--r--drivers/staging/rtl8712/rtl871x_ioctl_rtl.c536
-rw-r--r--drivers/staging/rtl8712/rtl871x_ioctl_rtl.h121
-rw-r--r--drivers/staging/rtl8712/rtl871x_ioctl_set.c376
-rw-r--r--drivers/staging/rtl8712/rtl871x_ioctl_set.h57
-rw-r--r--drivers/staging/rtl8712/rtl871x_led.h124
-rw-r--r--drivers/staging/rtl8712/rtl871x_mlme.c1819
-rw-r--r--drivers/staging/rtl8712/rtl871x_mlme.h232
-rw-r--r--drivers/staging/rtl8712/rtl871x_mp.c747
-rw-r--r--drivers/staging/rtl8712/rtl871x_mp.h286
-rw-r--r--drivers/staging/rtl8712/rtl871x_mp_ioctl.c1457
-rw-r--r--drivers/staging/rtl8712/rtl871x_mp_ioctl.h480
-rw-r--r--drivers/staging/rtl8712/rtl871x_mp_phy_regdef.h1025
-rw-r--r--drivers/staging/rtl8712/rtl871x_pwrctrl.c247
-rw-r--r--drivers/staging/rtl8712/rtl871x_pwrctrl.h131
-rw-r--r--drivers/staging/rtl8712/rtl871x_recv.c696
-rw-r--r--drivers/staging/rtl8712/rtl871x_recv.h219
-rw-r--r--drivers/staging/rtl8712/rtl871x_rf.h68
-rw-r--r--drivers/staging/rtl8712/rtl871x_security.c1407
-rw-r--r--drivers/staging/rtl8712/rtl871x_security.h222
-rw-r--r--drivers/staging/rtl8712/rtl871x_sta_mgt.c296
-rw-r--r--drivers/staging/rtl8712/rtl871x_wlan_sme.h47
-rw-r--r--drivers/staging/rtl8712/rtl871x_xmit.c1062
-rw-r--r--drivers/staging/rtl8712/rtl871x_xmit.h302
-rw-r--r--drivers/staging/rtl8712/sta_info.h146
-rw-r--r--drivers/staging/rtl8712/usb_halinit.c317
-rw-r--r--drivers/staging/rtl8712/usb_intf.c656
-rw-r--r--drivers/staging/rtl8712/usb_ops.c200
-rw-r--r--drivers/staging/rtl8712/usb_ops.h50
-rw-r--r--drivers/staging/rtl8712/usb_ops_linux.c525
-rw-r--r--drivers/staging/rtl8712/usb_osintf.h47
-rw-r--r--drivers/staging/rtl8712/wifi.h617
-rw-r--r--drivers/staging/rtl8712/wlan_bssdef.h267
-rw-r--r--drivers/staging/rtl8712/xmit_linux.c200
-rw-r--r--drivers/staging/rtl8712/xmit_osdep.h64
-rw-r--r--drivers/staging/rtl8723au/Kconfig30
-rw-r--r--drivers/staging/rtl8723au/Makefile56
-rw-r--r--drivers/staging/rtl8723au/TODO13
-rw-r--r--drivers/staging/rtl8723au/core/rtw_ap.c2028
-rw-r--r--drivers/staging/rtl8723au/core/rtw_cmd.c1578
-rw-r--r--drivers/staging/rtl8723au/core/rtw_efuse.c779
-rw-r--r--drivers/staging/rtl8723au/core/rtw_ieee80211.c1068
-rw-r--r--drivers/staging/rtl8723au/core/rtw_ioctl_set.c425
-rw-r--r--drivers/staging/rtl8723au/core/rtw_led.c1893
-rw-r--r--drivers/staging/rtl8723au/core/rtw_mlme.c2434
-rw-r--r--drivers/staging/rtl8723au/core/rtw_mlme_ext.c6591
-rw-r--r--drivers/staging/rtl8723au/core/rtw_pwrctrl.c649
-rw-r--r--drivers/staging/rtl8723au/core/rtw_recv.c2414
-rw-r--r--drivers/staging/rtl8723au/core/rtw_security.c1649
-rw-r--r--drivers/staging/rtl8723au/core/rtw_sreset.c262
-rw-r--r--drivers/staging/rtl8723au/core/rtw_sta_mgt.c442
-rw-r--r--drivers/staging/rtl8723au/core/rtw_wlan_util.c1705
-rw-r--r--drivers/staging/rtl8723au/core/rtw_xmit.c2437
-rw-r--r--drivers/staging/rtl8723au/hal/Hal8723PwrSeq.c80
-rw-r--r--drivers/staging/rtl8723au/hal/Hal8723UHWImg_CE.c136
-rw-r--r--drivers/staging/rtl8723au/hal/HalDMOutSrc8723A_CE.c1088
-rw-r--r--drivers/staging/rtl8723au/hal/HalHWImg8723A_BB.c726
-rw-r--r--drivers/staging/rtl8723au/hal/HalHWImg8723A_MAC.c188
-rw-r--r--drivers/staging/rtl8723au/hal/HalHWImg8723A_RF.c259
-rw-r--r--drivers/staging/rtl8723au/hal/HalPwrSeqCmd.c165
-rw-r--r--drivers/staging/rtl8723au/hal/hal_com.c927
-rw-r--r--drivers/staging/rtl8723au/hal/hal_intf.c42
-rw-r--r--drivers/staging/rtl8723au/hal/odm.c2009
-rw-r--r--drivers/staging/rtl8723au/hal/odm_HWConfig.c472
-rw-r--r--drivers/staging/rtl8723au/hal/odm_RegConfig8723A.c162
-rw-r--r--drivers/staging/rtl8723au/hal/odm_debug.c24
-rw-r--r--drivers/staging/rtl8723au/hal/odm_interface.c139
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_bt-coexist.c11381
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_cmd.c786
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_dm.c270
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_hal_init.c2571
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_phycfg.c1145
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_rf6052.c511
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_rxdesc.c69
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_sreset.c74
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723a_xmit.c52
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723au_led.c124
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723au_recv.c267
-rw-r--r--drivers/staging/rtl8723au/hal/rtl8723au_xmit.c529
-rw-r--r--drivers/staging/rtl8723au/hal/usb_halinit.c1649
-rw-r--r--drivers/staging/rtl8723au/hal/usb_ops_linux.c840
-rw-r--r--drivers/staging/rtl8723au/include/Hal8723APhyCfg.h230
-rw-r--r--drivers/staging/rtl8723au/include/Hal8723APhyReg.h1078
-rw-r--r--drivers/staging/rtl8723au/include/Hal8723PwrSeq.h150
-rw-r--r--drivers/staging/rtl8723au/include/Hal8723UHWImg_CE.h29
-rw-r--r--drivers/staging/rtl8723au/include/HalDMOutSrc8723A.h64
-rw-r--r--drivers/staging/rtl8723au/include/HalHWImg8723A_BB.h44
-rw-r--r--drivers/staging/rtl8723au/include/HalHWImg8723A_FW.h28
-rw-r--r--drivers/staging/rtl8723au/include/HalHWImg8723A_MAC.h26
-rw-r--r--drivers/staging/rtl8723au/include/HalHWImg8723A_RF.h25
-rw-r--r--drivers/staging/rtl8723au/include/HalPwrSeqCmd.h130
-rw-r--r--drivers/staging/rtl8723au/include/HalVerDef.h136
-rw-r--r--drivers/staging/rtl8723au/include/drv_types.h279
-rw-r--r--drivers/staging/rtl8723au/include/hal_com.h214
-rw-r--r--drivers/staging/rtl8723au/include/hal_intf.h123
-rw-r--r--drivers/staging/rtl8723au/include/ieee80211.h455
-rw-r--r--drivers/staging/rtl8723au/include/ioctl_cfg80211.h69
-rw-r--r--drivers/staging/rtl8723au/include/mlme_osdep.h24
-rw-r--r--drivers/staging/rtl8723au/include/odm.h1082
-rw-r--r--drivers/staging/rtl8723au/include/odm_HWConfig.h172
-rw-r--r--drivers/staging/rtl8723au/include/odm_RegConfig8723A.h34
-rw-r--r--drivers/staging/rtl8723au/include/odm_RegDefine11AC.h49
-rw-r--r--drivers/staging/rtl8723au/include/odm_RegDefine11N.h165
-rw-r--r--drivers/staging/rtl8723au/include/odm_debug.h139
-rw-r--r--drivers/staging/rtl8723au/include/odm_interface.h74
-rw-r--r--drivers/staging/rtl8723au/include/odm_precomp.h50
-rw-r--r--drivers/staging/rtl8723au/include/odm_reg.h111
-rw-r--r--drivers/staging/rtl8723au/include/osdep_intf.h48
-rw-r--r--drivers/staging/rtl8723au/include/osdep_service.h88
-rw-r--r--drivers/staging/rtl8723au/include/recv_osdep.h36
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_bt-coexist.h1614
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_bt_intf.h69
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_cmd.h158
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_dm.h142
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_hal.h557
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_led.h30
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_pg.h98
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_recv.h69
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_rf.h58
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_spec.h2158
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_sreset.h25
-rw-r--r--drivers/staging/rtl8723au/include/rtl8723a_xmit.h227
-rw-r--r--drivers/staging/rtl8723au/include/rtw_ap.h53
-rw-r--r--drivers/staging/rtl8723au/include/rtw_cmd.h821
-rw-r--r--drivers/staging/rtl8723au/include/rtw_debug.h192
-rw-r--r--drivers/staging/rtl8723au/include/rtw_eeprom.h135
-rw-r--r--drivers/staging/rtl8723au/include/rtw_efuse.h108
-rw-r--r--drivers/staging/rtl8723au/include/rtw_event.h74
-rw-r--r--drivers/staging/rtl8723au/include/rtw_ht.h43
-rw-r--r--drivers/staging/rtl8723au/include/rtw_io.h237
-rw-r--r--drivers/staging/rtl8723au/include/rtw_ioctl_set.h32
-rw-r--r--drivers/staging/rtl8723au/include/rtw_led.h181
-rw-r--r--drivers/staging/rtl8723au/include/rtw_mlme.h374
-rw-r--r--drivers/staging/rtl8723au/include/rtw_mlme_ext.h702
-rw-r--r--drivers/staging/rtl8723au/include/rtw_pwrctrl.h261
-rw-r--r--drivers/staging/rtl8723au/include/rtw_recv.h310
-rw-r--r--drivers/staging/rtl8723au/include/rtw_rf.h113
-rw-r--r--drivers/staging/rtl8723au/include/rtw_security.h334
-rw-r--r--drivers/staging/rtl8723au/include/rtw_sreset.h56
-rw-r--r--drivers/staging/rtl8723au/include/rtw_version.h1
-rw-r--r--drivers/staging/rtl8723au/include/rtw_xmit.h399
-rw-r--r--drivers/staging/rtl8723au/include/sta_info.h373
-rw-r--r--drivers/staging/rtl8723au/include/usb_ops.h68
-rw-r--r--drivers/staging/rtl8723au/include/usb_ops_linux.h41
-rw-r--r--drivers/staging/rtl8723au/include/wifi.h155
-rw-r--r--drivers/staging/rtl8723au/include/wlan_bssdef.h140
-rw-r--r--drivers/staging/rtl8723au/include/xmit_osdep.h38
-rw-r--r--drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c3454
-rw-r--r--drivers/staging/rtl8723au/os_dep/mlme_linux.c82
-rw-r--r--drivers/staging/rtl8723au/os_dep/os_intfs.c883
-rw-r--r--drivers/staging/rtl8723au/os_dep/recv_linux.c165
-rw-r--r--drivers/staging/rtl8723au/os_dep/usb_intf.c803
-rw-r--r--drivers/staging/rtl8723au/os_dep/usb_ops_linux.c264
-rw-r--r--drivers/staging/rtl8723au/os_dep/xmit_linux.c154
-rw-r--r--drivers/staging/rtl8821ae/Kconfig11
-rw-r--r--drivers/staging/rtl8821ae/Makefile35
-rw-r--r--drivers/staging/rtl8821ae/TODO10
-rw-r--r--drivers/staging/rtl8821ae/base.c1831
-rw-r--r--drivers/staging/rtl8821ae/base.h159
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/HalBtc8812a1Ant.c3976
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/HalBtc8812a1Ant.h205
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/habtc8723a1ant.c1614
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/habtc8723a1ant.h176
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbt_precomp.h99
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtc8192e1ant.c3891
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtc8192e1ant.h226
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtc8192e2ant.c4118
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtc8192e2ant.h160
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtc8723a2ant.c3780
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtc8723a2ant.h179
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtc8723b1ant.c3892
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtc8723b1ant.h175
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtc8723b2ant.c4200
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtc8723b2ant.h145
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtcoutsrc.c1130
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/halbtcoutsrc.h549
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/rtl_btc.c236
-rw-r--r--drivers/staging/rtl8821ae/btcoexist/rtl_btc.h66
-rw-r--r--drivers/staging/rtl8821ae/cam.c352
-rw-r--r--drivers/staging/rtl8821ae/cam.h56
-rw-r--r--drivers/staging/rtl8821ae/compat.h68
-rw-r--r--drivers/staging/rtl8821ae/core.c1314
-rw-r--r--drivers/staging/rtl8821ae/core.h43
-rw-r--r--drivers/staging/rtl8821ae/debug.c983
-rw-r--r--drivers/staging/rtl8821ae/debug.h227
-rw-r--r--drivers/staging/rtl8821ae/efuse.c1283
-rw-r--r--drivers/staging/rtl8821ae/efuse.h130
-rw-r--r--drivers/staging/rtl8821ae/pci.c2429
-rw-r--r--drivers/staging/rtl8821ae/pci.h348
-rw-r--r--drivers/staging/rtl8821ae/ps.c999
-rw-r--r--drivers/staging/rtl8821ae/ps.h55
-rw-r--r--drivers/staging/rtl8821ae/rc.c290
-rw-r--r--drivers/staging/rtl8821ae/rc.h47
-rw-r--r--drivers/staging/rtl8821ae/regd.c451
-rw-r--r--drivers/staging/rtl8821ae/regd.h67
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/btc.h87
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/def.h442
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/dm.c3045
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/dm.h426
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/fw.c1349
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/fw.h321
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/hal_bt_coexist.c519
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/hal_bt_coexist.h169
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/hal_btc.c2069
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/hal_btc.h160
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/hw.c3347
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/hw.h72
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/led.c239
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/led.h40
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/phy.c5525
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/phy.h258
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/pwrseq.c199
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/pwrseq.h413
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/pwrseqcmd.c140
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/pwrseqcmd.h71
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/reg.h2427
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/rf.c464
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/rf.h46
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/sw.c478
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/sw.h39
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/table.c4002
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/table.h62
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/trx.c1005
-rw-r--r--drivers/staging/rtl8821ae/rtl8821ae/trx.h630
-rw-r--r--drivers/staging/rtl8821ae/stats.c281
-rw-r--r--drivers/staging/rtl8821ae/stats.h46
-rw-r--r--drivers/staging/rtl8821ae/wifi.h2534
-rw-r--r--drivers/staging/rts5208/Kconfig15
-rw-r--r--drivers/staging/rts5208/Makefile6
-rw-r--r--drivers/staging/rts5208/TODO7
-rw-r--r--drivers/staging/rts5208/debug.h43
-rw-r--r--drivers/staging/rts5208/general.c35
-rw-r--r--drivers/staging/rts5208/general.h31
-rw-r--r--drivers/staging/rts5208/ms.c4208
-rw-r--r--drivers/staging/rts5208/ms.h227
-rw-r--r--drivers/staging/rts5208/rtsx.c1073
-rw-r--r--drivers/staging/rts5208/rtsx.h185
-rw-r--r--drivers/staging/rts5208/rtsx_card.c1149
-rw-r--r--drivers/staging/rts5208/rtsx_card.h1098
-rw-r--r--drivers/staging/rts5208/rtsx_chip.c1979
-rw-r--r--drivers/staging/rts5208/rtsx_chip.h1002
-rw-r--r--drivers/staging/rts5208/rtsx_scsi.c3370
-rw-r--r--drivers/staging/rts5208/rtsx_scsi.h143
-rw-r--r--drivers/staging/rts5208/rtsx_sys.h50
-rw-r--r--drivers/staging/rts5208/rtsx_transport.c769
-rw-r--r--drivers/staging/rts5208/rtsx_transport.h66
-rw-r--r--drivers/staging/rts5208/sd.c4525
-rw-r--r--drivers/staging/rts5208/sd.h301
-rw-r--r--drivers/staging/rts5208/spi.c877
-rw-r--r--drivers/staging/rts5208/spi.h65
-rw-r--r--drivers/staging/rts5208/trace.h93
-rw-r--r--drivers/staging/rts5208/xd.c2088
-rw-r--r--drivers/staging/rts5208/xd.h188
-rw-r--r--drivers/staging/sep/Kconfig11
-rw-r--r--drivers/staging/sep/Makefile3
-rw-r--r--drivers/staging/sep/TODO3
-rw-r--r--drivers/staging/sep/sep_crypto.c3962
-rw-r--r--drivers/staging/sep/sep_crypto.h359
-rw-r--r--drivers/staging/sep/sep_dev.h162
-rw-r--r--drivers/staging/sep/sep_driver_api.h402
-rw-r--r--drivers/staging/sep/sep_driver_config.h298
-rw-r--r--drivers/staging/sep/sep_driver_hw_defs.h56
-rw-r--r--drivers/staging/sep/sep_main.c4452
-rw-r--r--drivers/staging/sep/sep_trace_events.h193
-rw-r--r--drivers/staging/serqt_usb2/Kconfig9
-rw-r--r--drivers/staging/serqt_usb2/Makefile1
-rw-r--r--drivers/staging/serqt_usb2/serqt_usb2.c1528
-rw-r--r--drivers/staging/silicom/Kconfig45
-rw-r--r--drivers/staging/silicom/Makefile6
-rw-r--r--drivers/staging/silicom/README14
-rw-r--r--drivers/staging/silicom/TODO8
-rw-r--r--drivers/staging/silicom/bits.h56
-rw-r--r--drivers/staging/silicom/bp_ioctl.h140
-rw-r--r--drivers/staging/silicom/bp_mod.h711
-rw-r--r--drivers/staging/silicom/bpctl_mod.c7530
-rw-r--r--drivers/staging/silicom/bypass.h202
-rw-r--r--drivers/staging/silicom/bypasslib/Makefile6
-rw-r--r--drivers/staging/silicom/bypasslib/bp_ioctl.h198
-rw-r--r--drivers/staging/silicom/bypasslib/bplibk.h36
-rw-r--r--drivers/staging/silicom/bypasslib/bypass.c536
-rw-r--r--drivers/staging/silicom/bypasslib/libbp_sd.h532
-rw-r--r--drivers/staging/silicom/libbp_sd.h550
-rw-r--r--drivers/staging/skein/Kconfig32
-rw-r--r--drivers/staging/skein/Makefile9
-rw-r--r--drivers/staging/skein/TODO8
-rw-r--r--drivers/staging/skein/skein.c883
-rw-r--r--drivers/staging/skein/skein.h346
-rw-r--r--drivers/staging/skein/skein_api.c239
-rw-r--r--drivers/staging/skein/skein_api.h230
-rw-r--r--drivers/staging/skein/skein_block.c777
-rw-r--r--drivers/staging/skein/skein_block.h22
-rw-r--r--drivers/staging/skein/skein_iv.h186
-rw-r--r--drivers/staging/skein/threefish_api.c77
-rw-r--r--drivers/staging/skein/threefish_api.h170
-rw-r--r--drivers/staging/skein/threefish_block.c8258
-rw-r--r--drivers/staging/slicoss/Kconfig2
-rw-r--r--drivers/staging/slicoss/README12
-rw-r--r--drivers/staging/slicoss/TODO37
-rw-r--r--drivers/staging/slicoss/gbdownload.h8215
-rw-r--r--drivers/staging/slicoss/gbrcvucode.h238
-rw-r--r--drivers/staging/slicoss/oasisdbgdownload.h6850
-rw-r--r--drivers/staging/slicoss/oasisdownload.h6848
-rw-r--r--drivers/staging/slicoss/oasisrcvucode.h205
-rw-r--r--drivers/staging/slicoss/slic.h609
-rw-r--r--drivers/staging/slicoss/slic_os.h84
-rw-r--r--drivers/staging/slicoss/slicbuild.h96
-rw-r--r--drivers/staging/slicoss/slicdbg.h100
-rw-r--r--drivers/staging/slicoss/slicdump.h278
-rw-r--r--drivers/staging/slicoss/slichw.h1042
-rw-r--r--drivers/staging/slicoss/slicinc.h185
-rw-r--r--drivers/staging/slicoss/slicoss.c6500
-rw-r--r--drivers/staging/speakup/DefaultKeyAssignments46
-rw-r--r--drivers/staging/speakup/Kconfig199
-rw-r--r--drivers/staging/speakup/Makefile30
-rw-r--r--drivers/staging/speakup/TODO47
-rw-r--r--drivers/staging/speakup/buffers.c106
-rw-r--r--drivers/staging/speakup/devsynth.c95
-rw-r--r--drivers/staging/speakup/fakekey.c99
-rw-r--r--drivers/staging/speakup/i18n.c629
-rw-r--r--drivers/staging/speakup/i18n.h228
-rw-r--r--drivers/staging/speakup/keyhelp.c219
-rw-r--r--drivers/staging/speakup/kobjects.c1038
-rw-r--r--drivers/staging/speakup/main.c2366
-rw-r--r--drivers/staging/speakup/selection.c185
-rw-r--r--drivers/staging/speakup/serialio.c218
-rw-r--r--drivers/staging/speakup/serialio.h39
-rw-r--r--drivers/staging/speakup/speakup.h121
-rw-r--r--drivers/staging/speakup/speakup_acnt.h16
-rw-r--r--drivers/staging/speakup/speakup_acntpc.c335
-rw-r--r--drivers/staging/speakup/speakup_acntsa.c163
-rw-r--r--drivers/staging/speakup/speakup_apollo.c227
-rw-r--r--drivers/staging/speakup/speakup_audptr.c195
-rw-r--r--drivers/staging/speakup/speakup_bns.c147
-rw-r--r--drivers/staging/speakup/speakup_decext.c253
-rw-r--r--drivers/staging/speakup/speakup_decpc.c504
-rw-r--r--drivers/staging/speakup/speakup_dectlk.c324
-rw-r--r--drivers/staging/speakup/speakup_dtlk.c402
-rw-r--r--drivers/staging/speakup/speakup_dtlk.h54
-rw-r--r--drivers/staging/speakup/speakup_dummy.c148
-rw-r--r--drivers/staging/speakup/speakup_keypc.c335
-rw-r--r--drivers/staging/speakup/speakup_ltlk.c194
-rw-r--r--drivers/staging/speakup/speakup_soft.c367
-rw-r--r--drivers/staging/speakup/speakup_spkout.c165
-rw-r--r--drivers/staging/speakup/speakup_txprt.c147
-rw-r--r--drivers/staging/speakup/speakupmap.h65
-rw-r--r--drivers/staging/speakup/speakupmap.map93
-rw-r--r--drivers/staging/speakup/spk_priv.h80
-rw-r--r--drivers/staging/speakup/spk_priv_keyinfo.h110
-rw-r--r--drivers/staging/speakup/spk_types.h193
-rw-r--r--drivers/staging/speakup/spkguide.txt1575
-rw-r--r--drivers/staging/speakup/synth.c478
-rw-r--r--drivers/staging/speakup/thread.c58
-rw-r--r--drivers/staging/speakup/varhandlers.c327
-rw-r--r--drivers/staging/ste_rmi4/Kconfig9
-rw-r--r--drivers/staging/ste_rmi4/Makefile4
-rw-r--r--drivers/staging/ste_rmi4/TODO7
-rw-r--r--drivers/staging/ste_rmi4/synaptics_i2c_rmi4.c1143
-rw-r--r--drivers/staging/ste_rmi4/synaptics_i2c_rmi4.h46
-rw-r--r--drivers/staging/sxg/Kconfig11
-rw-r--r--drivers/staging/sxg/Makefile1
-rw-r--r--drivers/staging/sxg/README12
-rw-r--r--drivers/staging/sxg/saharadbgdownload.h4854
-rw-r--r--drivers/staging/sxg/sxg.c3625
-rw-r--r--drivers/staging/sxg/sxg.h768
-rw-r--r--drivers/staging/sxg/sxg_os.h147
-rw-r--r--drivers/staging/sxg/sxgdbg.h189
-rw-r--r--drivers/staging/sxg/sxghif.h858
-rw-r--r--drivers/staging/sxg/sxghw.h734
-rw-r--r--drivers/staging/sxg/sxgphycode.h349
-rw-r--r--drivers/staging/tidspbridge/Documentation/CONTRIBUTORS45
-rw-r--r--drivers/staging/tidspbridge/Documentation/README70
-rw-r--r--drivers/staging/tidspbridge/Documentation/error-codes157
-rw-r--r--drivers/staging/tidspbridge/Kconfig69
-rw-r--r--drivers/staging/tidspbridge/Makefile32
-rw-r--r--drivers/staging/tidspbridge/TODO18
-rw-r--r--drivers/staging/tidspbridge/core/_cmm.h45
-rw-r--r--drivers/staging/tidspbridge/core/_deh.h35
-rw-r--r--drivers/staging/tidspbridge/core/_msg_sm.h142
-rw-r--r--drivers/staging/tidspbridge/core/_tiomap.h382
-rw-r--r--drivers/staging/tidspbridge/core/_tiomap_pwr.h85
-rw-r--r--drivers/staging/tidspbridge/core/chnl_sm.c907
-rw-r--r--drivers/staging/tidspbridge/core/dsp-clock.c391
-rw-r--r--drivers/staging/tidspbridge/core/io_sm.c2245
-rw-r--r--drivers/staging/tidspbridge/core/msg_sm.c564
-rw-r--r--drivers/staging/tidspbridge/core/sync.c121
-rw-r--r--drivers/staging/tidspbridge/core/tiomap3430.c1813
-rw-r--r--drivers/staging/tidspbridge/core/tiomap3430_pwr.c556
-rw-r--r--drivers/staging/tidspbridge/core/tiomap_io.c438
-rw-r--r--drivers/staging/tidspbridge/core/tiomap_io.h104
-rw-r--r--drivers/staging/tidspbridge/core/ue_deh.c272
-rw-r--r--drivers/staging/tidspbridge/core/wdt.c143
-rw-r--r--drivers/staging/tidspbridge/dynload/cload.c1952
-rw-r--r--drivers/staging/tidspbridge/dynload/dload_internal.h344
-rw-r--r--drivers/staging/tidspbridge/dynload/doff.h354
-rw-r--r--drivers/staging/tidspbridge/dynload/getsection.c407
-rw-r--r--drivers/staging/tidspbridge/dynload/header.h49
-rw-r--r--drivers/staging/tidspbridge/dynload/module_list.h159
-rw-r--r--drivers/staging/tidspbridge/dynload/params.h226
-rw-r--r--drivers/staging/tidspbridge/dynload/reloc.c484
-rw-r--r--drivers/staging/tidspbridge/dynload/reloc_table.h102
-rw-r--r--drivers/staging/tidspbridge/dynload/reloc_table_c6000.c257
-rw-r--r--drivers/staging/tidspbridge/dynload/tramp.c1143
-rw-r--r--drivers/staging/tidspbridge/dynload/tramp_table_c6000.c164
-rw-r--r--drivers/staging/tidspbridge/gen/gh.c141
-rw-r--r--drivers/staging/tidspbridge/hw/EasiGlobal.h41
-rw-r--r--drivers/staging/tidspbridge/hw/MMUAccInt.h76
-rw-r--r--drivers/staging/tidspbridge/hw/MMURegAcM.h225
-rw-r--r--drivers/staging/tidspbridge/hw/hw_defs.h58
-rw-r--r--drivers/staging/tidspbridge/hw/hw_mmu.c487
-rw-r--r--drivers/staging/tidspbridge/hw/hw_mmu.h160
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/_chnl_sm.h177
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/brddefs.h37
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/cfgdefs.h61
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/chnl.h80
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/chnldefs.h63
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/chnlpriv.h85
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/clk.h101
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/cmm.h337
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/cmmdefs.h104
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/cod.h329
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dbdcd.h358
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dbdcddef.h78
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dbdefs.h488
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dbll.h56
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dblldefs.h431
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dev.h620
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/devdefs.h26
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/disp.h186
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dmm.h71
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/drv.h468
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dspapi-ioctl.h467
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dspapi.h167
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dspchnl.h72
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dspdefs.h1048
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dspdeh.h43
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dspdrv.h60
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dspio.h41
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dspioctl.h68
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dspmsg.h56
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/dynamic_loader.h490
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/getsection.h108
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/gh.h32
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/host_os.h57
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/io.h80
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/io_sm.h160
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/mbx_sh.h144
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/memdefs.h30
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/mgr.h205
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/mgrpriv.h45
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/msg.h59
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/msgdefs.h29
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/nldr.h55
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/nldrdefs.h259
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/node.h524
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/nodedefs.h28
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/nodepriv.h181
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/ntfy.h217
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/proc.h591
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/procpriv.h25
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/pwr.h113
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/resourcecleanup.h41
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/rmm.h156
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/rms_sh.h86
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/rmstypes.h24
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/strm.h306
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/strmdefs.h44
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/sync.h119
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/uuidutil.h24
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/wdt.h79
-rw-r--r--drivers/staging/tidspbridge/pmgr/chnl.c115
-rw-r--r--drivers/staging/tidspbridge/pmgr/chnlobj.h46
-rw-r--r--drivers/staging/tidspbridge/pmgr/cmm.c915
-rw-r--r--drivers/staging/tidspbridge/pmgr/cod.c537
-rw-r--r--drivers/staging/tidspbridge/pmgr/dbll.c1421
-rw-r--r--drivers/staging/tidspbridge/pmgr/dev.c969
-rw-r--r--drivers/staging/tidspbridge/pmgr/dmm.c487
-rw-r--r--drivers/staging/tidspbridge/pmgr/dspapi.c1843
-rw-r--r--drivers/staging/tidspbridge/pmgr/io.c93
-rw-r--r--drivers/staging/tidspbridge/pmgr/ioobj.h38
-rw-r--r--drivers/staging/tidspbridge/pmgr/msg.c91
-rw-r--r--drivers/staging/tidspbridge/pmgr/msgobj.h38
-rw-r--r--drivers/staging/tidspbridge/rmgr/dbdcd.c1483
-rw-r--r--drivers/staging/tidspbridge/rmgr/disp.c655
-rw-r--r--drivers/staging/tidspbridge/rmgr/drv.c816
-rw-r--r--drivers/staging/tidspbridge/rmgr/drv_interface.c648
-rw-r--r--drivers/staging/tidspbridge/rmgr/dspdrv.c139
-rw-r--r--drivers/staging/tidspbridge/rmgr/mgr.c352
-rw-r--r--drivers/staging/tidspbridge/rmgr/nldr.c1860
-rw-r--r--drivers/staging/tidspbridge/rmgr/node.c3029
-rw-r--r--drivers/staging/tidspbridge/rmgr/proc.c1833
-rw-r--r--drivers/staging/tidspbridge/rmgr/pwr.c176
-rw-r--r--drivers/staging/tidspbridge/rmgr/rmm.c456
-rw-r--r--drivers/staging/tidspbridge/rmgr/strm.c733
-rw-r--r--drivers/staging/unisys/Documentation/overview.txt174
-rw-r--r--drivers/staging/unisys/Documentation/proc-entries.txt93
-rw-r--r--drivers/staging/unisys/Kconfig20
-rw-r--r--drivers/staging/unisys/MAINTAINERS6
-rw-r--r--drivers/staging/unisys/Makefile10
-rw-r--r--drivers/staging/unisys/TODO21
-rw-r--r--drivers/staging/unisys/channels/Kconfig10
-rw-r--r--drivers/staging/unisys/channels/Makefile13
-rw-r--r--drivers/staging/unisys/channels/channel.c219
-rw-r--r--drivers/staging/unisys/channels/chanstub.c73
-rw-r--r--drivers/staging/unisys/channels/chanstub.h23
-rw-r--r--drivers/staging/unisys/common-spar/include/channels/channel.h652
-rw-r--r--drivers/staging/unisys/common-spar/include/channels/channel_guid.h64
-rw-r--r--drivers/staging/unisys/common-spar/include/channels/controlframework.h77
-rw-r--r--drivers/staging/unisys/common-spar/include/channels/controlvmchannel.h620
-rw-r--r--drivers/staging/unisys/common-spar/include/channels/diagchannel.h427
-rw-r--r--drivers/staging/unisys/common-spar/include/channels/iochannel.h935
-rw-r--r--drivers/staging/unisys/common-spar/include/channels/vbuschannel.h135
-rw-r--r--drivers/staging/unisys/common-spar/include/controlvmcompletionstatus.h92
-rw-r--r--drivers/staging/unisys/common-spar/include/diagnostics/appos_subsystems.h310
-rw-r--r--drivers/staging/unisys/common-spar/include/iovmcall_gnuc.h53
-rw-r--r--drivers/staging/unisys/common-spar/include/vbusdeviceinfo.h209
-rw-r--r--drivers/staging/unisys/common-spar/include/version.h46
-rw-r--r--drivers/staging/unisys/common-spar/include/vmcallinterface.h167
-rw-r--r--drivers/staging/unisys/include/commontypes.h155
-rw-r--r--drivers/staging/unisys/include/guestlinuxdebug.h182
-rw-r--r--drivers/staging/unisys/include/periodic_work.h40
-rw-r--r--drivers/staging/unisys/include/procobjecttree.h48
-rw-r--r--drivers/staging/unisys/include/sparstop.h30
-rw-r--r--drivers/staging/unisys/include/timskmod.h324
-rw-r--r--drivers/staging/unisys/include/timskmodutils.h77
-rw-r--r--drivers/staging/unisys/include/uisqueue.h441
-rw-r--r--drivers/staging/unisys/include/uisthread.h46
-rw-r--r--drivers/staging/unisys/include/uisutils.h356
-rw-r--r--drivers/staging/unisys/include/uniklog.h193
-rw-r--r--drivers/staging/unisys/include/vbushelper.h47
-rw-r--r--drivers/staging/unisys/uislib/Kconfig10
-rw-r--r--drivers/staging/unisys/uislib/Makefile17
-rw-r--r--drivers/staging/unisys/uislib/uislib.c1636
-rw-r--r--drivers/staging/unisys/uislib/uisqueue.c160
-rw-r--r--drivers/staging/unisys/uislib/uisthread.c85
-rw-r--r--drivers/staging/unisys/uislib/uisutils.c341
-rw-r--r--drivers/staging/unisys/virthba/Kconfig10
-rw-r--r--drivers/staging/unisys/virthba/Makefile16
-rw-r--r--drivers/staging/unisys/virthba/virthba.c1834
-rw-r--r--drivers/staging/unisys/virthba/virthba.h31
-rw-r--r--drivers/staging/unisys/virtpci/Kconfig10
-rw-r--r--drivers/staging/unisys/virtpci/Makefile13
-rw-r--r--drivers/staging/unisys/virtpci/virtpci.c1770
-rw-r--r--drivers/staging/unisys/virtpci/virtpci.h105
-rw-r--r--drivers/staging/unisys/visorchannel/Kconfig10
-rw-r--r--drivers/staging/unisys/visorchannel/Makefile14
-rw-r--r--drivers/staging/unisys/visorchannel/globals.h29
-rw-r--r--drivers/staging/unisys/visorchannel/visorchannel.h78
-rw-r--r--drivers/staging/unisys/visorchannel/visorchannel_funcs.c673
-rw-r--r--drivers/staging/unisys/visorchannel/visorchannel_main.c52
-rw-r--r--drivers/staging/unisys/visorchipset/Kconfig10
-rw-r--r--drivers/staging/unisys/visorchipset/Makefile18
-rw-r--r--drivers/staging/unisys/visorchipset/controlvm.h27
-rw-r--r--drivers/staging/unisys/visorchipset/controlvm_direct.c62
-rw-r--r--drivers/staging/unisys/visorchipset/file.c226
-rw-r--r--drivers/staging/unisys/visorchipset/file.h26
-rw-r--r--drivers/staging/unisys/visorchipset/globals.h45
-rw-r--r--drivers/staging/unisys/visorchipset/parser.c475
-rw-r--r--drivers/staging/unisys/visorchipset/parser.h47
-rw-r--r--drivers/staging/unisys/visorchipset/testing.h42
-rw-r--r--drivers/staging/unisys/visorchipset/visorchipset.h309
-rw-r--r--drivers/staging/unisys/visorchipset/visorchipset_main.c2955
-rw-r--r--drivers/staging/unisys/visorchipset/visorchipset_umode.h37
-rw-r--r--drivers/staging/unisys/visorutil/Kconfig10
-rw-r--r--drivers/staging/unisys/visorutil/Makefile11
-rw-r--r--drivers/staging/unisys/visorutil/charqueue.c143
-rw-r--r--drivers/staging/unisys/visorutil/charqueue.h37
-rw-r--r--drivers/staging/unisys/visorutil/easyproc.c377
-rw-r--r--drivers/staging/unisys/visorutil/easyproc.h92
-rw-r--r--drivers/staging/unisys/visorutil/memregion.h43
-rw-r--r--drivers/staging/unisys/visorutil/memregion_direct.c223
-rw-r--r--drivers/staging/unisys/visorutil/periodic_work.c237
-rw-r--r--drivers/staging/unisys/visorutil/procobjecttree.c354
-rw-r--r--drivers/staging/unisys/visorutil/visorkmodutils.c126
-rw-r--r--drivers/staging/usbip/Kconfig55
-rw-r--r--drivers/staging/usbip/Makefile16
-rw-r--r--drivers/staging/usbip/README1
-rw-r--r--drivers/staging/usbip/stub.h60
-rw-r--r--drivers/staging/usbip/stub_dev.c382
-rw-r--r--drivers/staging/usbip/stub_main.c274
-rw-r--r--drivers/staging/usbip/stub_rx.c387
-rw-r--r--drivers/staging/usbip/stub_tx.c172
-rw-r--r--drivers/staging/usbip/uapi/usbip.h26
-rw-r--r--drivers/staging/usbip/usbip_common.c687
-rw-r--r--drivers/staging/usbip/usbip_common.h449
-rw-r--r--drivers/staging/usbip/usbip_event.c87
-rw-r--r--drivers/staging/usbip/usbip_protocol.txt358
-rw-r--r--drivers/staging/usbip/userspace/.gitignore28
-rw-r--r--drivers/staging/usbip/userspace/AUTHORS3
-rw-r--r--drivers/staging/usbip/userspace/COPYING340
-rw-r--r--drivers/staging/usbip/userspace/INSTALL237
-rw-r--r--drivers/staging/usbip/userspace/Makefile.am6
-rw-r--r--drivers/staging/usbip/userspace/README202
-rwxr-xr-xdrivers/staging/usbip/userspace/autogen.sh9
-rwxr-xr-xdrivers/staging/usbip/userspace/cleanup.sh12
-rw-r--r--drivers/staging/usbip/userspace/configure.ac111
-rw-r--r--drivers/staging/usbip/userspace/doc/usbip.895
-rw-r--r--drivers/staging/usbip/userspace/doc/usbipd.891
-rw-r--r--drivers/staging/usbip/userspace/libsrc/Makefile.am8
-rw-r--r--drivers/staging/usbip/userspace/libsrc/list.h136
-rw-r--r--drivers/staging/usbip/userspace/libsrc/names.c504
-rw-r--r--drivers/staging/usbip/userspace/libsrc/names.h41
-rw-r--r--drivers/staging/usbip/userspace/libsrc/sysfs_utils.c31
-rw-r--r--drivers/staging/usbip/userspace/libsrc/sysfs_utils.h8
-rw-r--r--drivers/staging/usbip/userspace/libsrc/usbip_common.c285
-rw-r--r--drivers/staging/usbip/userspace/libsrc/usbip_common.h137
-rw-r--r--drivers/staging/usbip/userspace/libsrc/usbip_host_driver.c279
-rw-r--r--drivers/staging/usbip/userspace/libsrc/usbip_host_driver.h49
-rw-r--r--drivers/staging/usbip/userspace/libsrc/vhci_driver.c411
-rw-r--r--drivers/staging/usbip/userspace/libsrc/vhci_driver.h59
-rw-r--r--drivers/staging/usbip/userspace/src/Makefile.am11
-rw-r--r--drivers/staging/usbip/userspace/src/usbip.c201
-rw-r--r--drivers/staging/usbip/userspace/src/usbip.h40
-rw-r--r--drivers/staging/usbip/userspace/src/usbip_attach.c241
-rw-r--r--drivers/staging/usbip/userspace/src/usbip_bind.c214
-rw-r--r--drivers/staging/usbip/userspace/src/usbip_detach.c110
-rw-r--r--drivers/staging/usbip/userspace/src/usbip_list.c283
-rw-r--r--drivers/staging/usbip/userspace/src/usbip_network.c303
-rw-r--r--drivers/staging/usbip/userspace/src/usbip_network.h185
-rw-r--r--drivers/staging/usbip/userspace/src/usbip_port.c57
-rw-r--r--drivers/staging/usbip/userspace/src/usbip_unbind.c141
-rw-r--r--drivers/staging/usbip/userspace/src/usbipd.c679
-rw-r--r--drivers/staging/usbip/userspace/src/utils.c52
-rw-r--r--drivers/staging/usbip/userspace/src/utils.h25
-rw-r--r--drivers/staging/usbip/vhci.h63
-rw-r--r--drivers/staging/usbip/vhci_hcd.c729
-rw-r--r--drivers/staging/usbip/vhci_rx.c189
-rw-r--r--drivers/staging/usbip/vhci_sysfs.c80
-rw-r--r--drivers/staging/usbip/vhci_tx.c85
-rw-r--r--drivers/staging/vme/Makefile1
-rw-r--r--drivers/staging/vme/devices/Kconfig22
-rw-r--r--drivers/staging/vme/devices/Makefile8
-rw-r--r--drivers/staging/vme/devices/vme_pio2.h249
-rw-r--r--drivers/staging/vme/devices/vme_pio2_cntr.c71
-rw-r--r--drivers/staging/vme/devices/vme_pio2_core.c512
-rw-r--r--drivers/staging/vme/devices/vme_pio2_gpio.c229
-rw-r--r--drivers/staging/vme/devices/vme_user.c904
-rw-r--r--drivers/staging/vme/devices/vme_user.h58
-rw-r--r--drivers/staging/vt6655/80211hdr.h324
-rw-r--r--drivers/staging/vt6655/80211mgr.c1065
-rw-r--r--drivers/staging/vt6655/80211mgr.h768
-rw-r--r--drivers/staging/vt6655/IEEE11h.c316
-rw-r--r--drivers/staging/vt6655/IEEE11h.h52
-rw-r--r--drivers/staging/vt6655/Kconfig8
-rw-r--r--drivers/staging/vt6655/Makefile39
-rw-r--r--drivers/staging/vt6655/TODO21
-rw-r--r--drivers/staging/vt6655/aes_ccmp.c376
-rw-r--r--drivers/staging/vt6655/aes_ccmp.h46
-rw-r--r--drivers/staging/vt6655/baseband.c2878
-rw-r--r--drivers/staging/vt6655/baseband.h139
-rw-r--r--drivers/staging/vt6655/bssdb.c1557
-rw-r--r--drivers/staging/vt6655/bssdb.h348
-rw-r--r--drivers/staging/vt6655/card.c2095
-rw-r--r--drivers/staging/vt6655/card.h190
-rw-r--r--drivers/staging/vt6655/channel.c807
-rw-r--r--drivers/staging/vt6655/channel.h56
-rw-r--r--drivers/staging/vt6655/country.h162
-rw-r--r--drivers/staging/vt6655/datarate.c408
-rw-r--r--drivers/staging/vt6655/datarate.h88
-rw-r--r--drivers/staging/vt6655/desc.h601
-rw-r--r--drivers/staging/vt6655/device.h836
-rw-r--r--drivers/staging/vt6655/device_cfg.h95
-rw-r--r--drivers/staging/vt6655/device_main.c3253
-rw-r--r--drivers/staging/vt6655/dpc.c1333
-rw-r--r--drivers/staging/vt6655/dpc.h52
-rw-r--r--drivers/staging/vt6655/hostap.c774
-rw-r--r--drivers/staging/vt6655/hostap.h66
-rw-r--r--drivers/staging/vt6655/iocmd.h429
-rw-r--r--drivers/staging/vt6655/ioctl.c660
-rw-r--r--drivers/staging/vt6655/ioctl.h44
-rw-r--r--drivers/staging/vt6655/iowpa.h140
-rw-r--r--drivers/staging/vt6655/iwctl.c1915
-rw-r--r--drivers/staging/vt6655/iwctl.h216
-rw-r--r--drivers/staging/vt6655/key.c787
-rw-r--r--drivers/staging/vt6655/key.h179
-rw-r--r--drivers/staging/vt6655/mac.c1689
-rw-r--r--drivers/staging/vt6655/mac.h1050
-rw-r--r--drivers/staging/vt6655/mib.c538
-rw-r--r--drivers/staging/vt6655/mib.h356
-rw-r--r--drivers/staging/vt6655/michael.c148
-rw-r--r--drivers/staging/vt6655/michael.h58
-rw-r--r--drivers/staging/vt6655/power.c367
-rw-r--r--drivers/staging/vt6655/power.h78
-rw-r--r--drivers/staging/vt6655/rc4.c87
-rw-r--r--drivers/staging/vt6655/rc4.h47
-rw-r--r--drivers/staging/vt6655/rf.c1106
-rw-r--r--drivers/staging/vt6655/rf.h101
-rw-r--r--drivers/staging/vt6655/rxtx.c2845
-rw-r--r--drivers/staging/vt6655/rxtx.h72
-rw-r--r--drivers/staging/vt6655/srom.c405
-rw-r--r--drivers/staging/vt6655/srom.h155
-rw-r--r--drivers/staging/vt6655/tcrc.c191
-rw-r--r--drivers/staging/vt6655/tcrc.h50
-rw-r--r--drivers/staging/vt6655/test9
-rw-r--r--drivers/staging/vt6655/tether.c105
-rw-r--r--drivers/staging/vt6655/tether.h192
-rw-r--r--drivers/staging/vt6655/tkip.c268
-rw-r--r--drivers/staging/vt6655/tkip.h57
-rw-r--r--drivers/staging/vt6655/tmacro.h60
-rw-r--r--drivers/staging/vt6655/ttype.h69
-rw-r--r--drivers/staging/vt6655/upc.h157
-rw-r--r--drivers/staging/vt6655/vntconfiguration.dat1
-rw-r--r--drivers/staging/vt6655/vntwifi.c705
-rw-r--r--drivers/staging/vt6655/vntwifi.h273
-rw-r--r--drivers/staging/vt6655/wcmd.c1021
-rw-r--r--drivers/staging/vt6655/wcmd.h135
-rw-r--r--drivers/staging/vt6655/wctl.c231
-rw-r--r--drivers/staging/vt6655/wctl.h105
-rw-r--r--drivers/staging/vt6655/wmgr.c4650
-rw-r--r--drivers/staging/vt6655/wmgr.h424
-rw-r--r--drivers/staging/vt6655/wpa.c300
-rw-r--r--drivers/staging/vt6655/wpa.h83
-rw-r--r--drivers/staging/vt6655/wpa2.c357
-rw-r--r--drivers/staging/vt6655/wpa2.h77
-rw-r--r--drivers/staging/vt6655/wpactl.c892
-rw-r--r--drivers/staging/vt6655/wpactl.h64
-rw-r--r--drivers/staging/vt6655/wroute.c191
-rw-r--r--drivers/staging/vt6655/wroute.h44
-rw-r--r--drivers/staging/vt6656/80211hdr.h324
-rw-r--r--drivers/staging/vt6656/80211mgr.c861
-rw-r--r--drivers/staging/vt6656/80211mgr.h808
-rw-r--r--drivers/staging/vt6656/Kconfig9
-rw-r--r--drivers/staging/vt6656/Makefile33
-rw-r--r--drivers/staging/vt6656/TODO19
-rw-r--r--drivers/staging/vt6656/baseband.c1389
-rw-r--r--drivers/staging/vt6656/baseband.h105
-rw-r--r--drivers/staging/vt6656/bssdb.c1466
-rw-r--r--drivers/staging/vt6656/bssdb.h276
-rw-r--r--drivers/staging/vt6656/card.c877
-rw-r--r--drivers/staging/vt6656/card.h68
-rw-r--r--drivers/staging/vt6656/channel.c473
-rw-r--r--drivers/staging/vt6656/channel.h44
-rw-r--r--drivers/staging/vt6656/country.h162
-rw-r--r--drivers/staging/vt6656/datarate.c364
-rw-r--r--drivers/staging/vt6656/datarate.h76
-rw-r--r--drivers/staging/vt6656/desc.h107
-rw-r--r--drivers/staging/vt6656/device.h735
-rw-r--r--drivers/staging/vt6656/dpc.c971
-rw-r--r--drivers/staging/vt6656/dpc.h44
-rw-r--r--drivers/staging/vt6656/firmware.c144
-rw-r--r--drivers/staging/vt6656/firmware.h39
-rw-r--r--drivers/staging/vt6656/int.c187
-rw-r--r--drivers/staging/vt6656/int.h61
-rw-r--r--drivers/staging/vt6656/iocmd.h38
-rw-r--r--drivers/staging/vt6656/iowpa.h75
-rw-r--r--drivers/staging/vt6656/iwctl.c1802
-rw-r--r--drivers/staging/vt6656/iwctl.h138
-rw-r--r--drivers/staging/vt6656/key.c731
-rw-r--r--drivers/staging/vt6656/key.h112
-rw-r--r--drivers/staging/vt6656/mac.c255
-rw-r--r--drivers/staging/vt6656/mac.h433
-rw-r--r--drivers/staging/vt6656/main_usb.c1373
-rw-r--r--drivers/staging/vt6656/michael.c167
-rw-r--r--drivers/staging/vt6656/michael.h52
-rw-r--r--drivers/staging/vt6656/power.c338
-rw-r--r--drivers/staging/vt6656/power.h47
-rw-r--r--drivers/staging/vt6656/rc4.c87
-rw-r--r--drivers/staging/vt6656/rc4.h46
-rw-r--r--drivers/staging/vt6656/rf.c1116
-rw-r--r--drivers/staging/vt6656/rf.h66
-rw-r--r--drivers/staging/vt6656/rxtx.c2074
-rw-r--r--drivers/staging/vt6656/rxtx.h254
-rw-r--r--drivers/staging/vt6656/tether.c60
-rw-r--r--drivers/staging/vt6656/tether.h101
-rw-r--r--drivers/staging/vt6656/tkip.c246
-rw-r--r--drivers/staging/vt6656/tkip.h45
-rw-r--r--drivers/staging/vt6656/tmacro.h52
-rw-r--r--drivers/staging/vt6656/usbpipe.c440
-rw-r--r--drivers/staging/vt6656/usbpipe.h46
-rw-r--r--drivers/staging/vt6656/vntconfiguration.dat6
-rw-r--r--drivers/staging/vt6656/wcmd.c1094
-rw-r--r--drivers/staging/vt6656/wcmd.h112
-rw-r--r--drivers/staging/vt6656/wctl.c244
-rw-r--r--drivers/staging/vt6656/wctl.h94
-rw-r--r--drivers/staging/vt6656/wmgr.c4362
-rw-r--r--drivers/staging/vt6656/wmgr.h397
-rw-r--r--drivers/staging/vt6656/wpa.c314
-rw-r--r--drivers/staging/vt6656/wpa.h72
-rw-r--r--drivers/staging/vt6656/wpa2.c235
-rw-r--r--drivers/staging/vt6656/wpa2.h53
-rw-r--r--drivers/staging/vt6656/wpactl.c247
-rw-r--r--drivers/staging/vt6656/wpactl.h47
-rw-r--r--drivers/staging/winbond/Kconfig4
-rw-r--r--drivers/staging/winbond/Makefile4
-rw-r--r--drivers/staging/winbond/README11
-rw-r--r--drivers/staging/winbond/TODO12
-rw-r--r--drivers/staging/winbond/bss_f.h63
-rw-r--r--drivers/staging/winbond/bssdscpt.h164
-rw-r--r--drivers/staging/winbond/common.h27
-rw-r--r--drivers/staging/winbond/core.h59
-rw-r--r--drivers/staging/winbond/ds_tkip.h37
-rw-r--r--drivers/staging/winbond/gl_80211.h126
-rw-r--r--drivers/staging/winbond/ioctls.h678
-rw-r--r--drivers/staging/winbond/localpara.h527
-rw-r--r--drivers/staging/winbond/mac_structures.h616
-rw-r--r--drivers/staging/winbond/mds.c675
-rw-r--r--drivers/staging/winbond/mds_f.h29
-rw-r--r--drivers/staging/winbond/mds_s.h257
-rw-r--r--drivers/staging/winbond/mlme_mib.h84
-rw-r--r--drivers/staging/winbond/mlme_s.h204
-rw-r--r--drivers/staging/winbond/mlmetxrx.c93
-rw-r--r--drivers/staging/winbond/mlmetxrx_f.h45
-rw-r--r--drivers/staging/winbond/mto.c347
-rw-r--r--drivers/staging/winbond/mto.h348
-rw-r--r--drivers/staging/winbond/mto_f.h13
-rw-r--r--drivers/staging/winbond/os_common.h2
-rw-r--r--drivers/staging/winbond/phy_calibration.c1408
-rw-r--r--drivers/staging/winbond/phy_calibration.h182
-rw-r--r--drivers/staging/winbond/reg.c3958
-rw-r--r--drivers/staging/winbond/scan_s.h121
-rw-r--r--drivers/staging/winbond/sme_api.h221
-rw-r--r--drivers/staging/winbond/sme_s.h236
-rw-r--r--drivers/staging/winbond/sysdef.h40
-rw-r--r--drivers/staging/winbond/wb35_ver.h30
-rw-r--r--drivers/staging/winbond/wb35reg.c973
-rw-r--r--drivers/staging/winbond/wb35reg_f.h108
-rw-r--r--drivers/staging/winbond/wb35reg_s.h300
-rw-r--r--drivers/staging/winbond/wb35rx.c299
-rw-r--r--drivers/staging/winbond/wb35rx_f.h14
-rw-r--r--drivers/staging/winbond/wb35rx_s.h68
-rw-r--r--drivers/staging/winbond/wb35tx.c219
-rw-r--r--drivers/staging/winbond/wb35tx_f.h19
-rw-r--r--drivers/staging/winbond/wb35tx_s.h58
-rw-r--r--drivers/staging/winbond/wbhal.c568
-rw-r--r--drivers/staging/winbond/wbhal.h513
-rw-r--r--drivers/staging/winbond/wbhal_f.h91
-rw-r--r--drivers/staging/winbond/wbhal_s.h612
-rw-r--r--drivers/staging/winbond/wblinux_f.h16
-rw-r--r--drivers/staging/winbond/wbusb.c853
-rw-r--r--drivers/staging/winbond/wbusb_s.h37
-rw-r--r--drivers/staging/wlags49_h2/Kconfig11
-rw-r--r--drivers/staging/wlags49_h2/Makefile53
-rw-r--r--drivers/staging/wlags49_h2/README.ubuntu180
-rw-r--r--drivers/staging/wlags49_h2/README.wlags49641
-rw-r--r--drivers/staging/wlags49_h2/TODO33
-rw-r--r--drivers/staging/wlags49_h2/WARNING.txt3
-rw-r--r--drivers/staging/wlags49_h2/ap_h2.c3337
-rw-r--r--drivers/staging/wlags49_h2/ap_h25.c4094
-rw-r--r--drivers/staging/wlags49_h2/debug.h199
-rw-r--r--drivers/staging/wlags49_h2/dhf.c380
-rw-r--r--drivers/staging/wlags49_h2/dhf.h225
-rw-r--r--drivers/staging/wlags49_h2/dhfcfg.h158
-rw-r--r--drivers/staging/wlags49_h2/hcf.c4748
-rw-r--r--drivers/staging/wlags49_h2/hcf.h394
-rw-r--r--drivers/staging/wlags49_h2/hcfcfg.h785
-rw-r--r--drivers/staging/wlags49_h2/hcfdef.h752
-rw-r--r--drivers/staging/wlags49_h2/man/wlags49.4734
-rw-r--r--drivers/staging/wlags49_h2/mdd.h1155
-rw-r--r--drivers/staging/wlags49_h2/mmd.c250
-rw-r--r--drivers/staging/wlags49_h2/mmd.h77
-rw-r--r--drivers/staging/wlags49_h2/sta_h2.c4480
-rw-r--r--drivers/staging/wlags49_h2/sta_h25.c5255
-rw-r--r--drivers/staging/wlags49_h2/wl_cs.c440
-rw-r--r--drivers/staging/wlags49_h2/wl_cs.h89
-rw-r--r--drivers/staging/wlags49_h2/wl_enc.c217
-rw-r--r--drivers/staging/wlags49_h2/wl_enc.h118
-rw-r--r--drivers/staging/wlags49_h2/wl_if.h221
-rw-r--r--drivers/staging/wlags49_h2/wl_internal.h1040
-rw-r--r--drivers/staging/wlags49_h2/wl_main.c3702
-rw-r--r--drivers/staging/wlags49_h2/wl_main.h138
-rw-r--r--drivers/staging/wlags49_h2/wl_netdev.c1951
-rw-r--r--drivers/staging/wlags49_h2/wl_netdev.h154
-rw-r--r--drivers/staging/wlags49_h2/wl_priv.c1928
-rw-r--r--drivers/staging/wlags49_h2/wl_priv.h127
-rw-r--r--drivers/staging/wlags49_h2/wl_profile.c995
-rw-r--r--drivers/staging/wlags49_h2/wl_profile.h87
-rw-r--r--drivers/staging/wlags49_h2/wl_util.c1367
-rw-r--r--drivers/staging/wlags49_h2/wl_util.h96
-rw-r--r--drivers/staging/wlags49_h2/wl_version.h146
-rw-r--r--drivers/staging/wlags49_h2/wl_wext.c3794
-rw-r--r--drivers/staging/wlags49_h2/wl_wext.h88
-rw-r--r--drivers/staging/wlags49_h25/Kconfig11
-rw-r--r--drivers/staging/wlags49_h25/Makefile52
-rw-r--r--drivers/staging/wlags49_h25/README.txt30
-rw-r--r--drivers/staging/wlags49_h25/TODO33
-rw-r--r--drivers/staging/wlags49_h25/ap_h25.c2
-rw-r--r--drivers/staging/wlags49_h25/debug.h2
-rw-r--r--drivers/staging/wlags49_h25/dhf.c2
-rw-r--r--drivers/staging/wlags49_h25/dhf.h2
-rw-r--r--drivers/staging/wlags49_h25/dhfcfg.h2
-rw-r--r--drivers/staging/wlags49_h25/hcf.c2
-rw-r--r--drivers/staging/wlags49_h25/hcf.h2
-rw-r--r--drivers/staging/wlags49_h25/hcfcfg.h2
-rw-r--r--drivers/staging/wlags49_h25/hcfdef.h2
-rw-r--r--drivers/staging/wlags49_h25/mdd.h2
-rw-r--r--drivers/staging/wlags49_h25/mmd.c2
-rw-r--r--drivers/staging/wlags49_h25/mmd.h2
-rw-r--r--drivers/staging/wlags49_h25/sta_h25.c2
-rw-r--r--drivers/staging/wlags49_h25/wl_cs.c2
-rw-r--r--drivers/staging/wlags49_h25/wl_cs.h2
-rw-r--r--drivers/staging/wlags49_h25/wl_enc.c2
-rw-r--r--drivers/staging/wlags49_h25/wl_enc.h2
-rw-r--r--drivers/staging/wlags49_h25/wl_if.h2
-rw-r--r--drivers/staging/wlags49_h25/wl_internal.h2
-rw-r--r--drivers/staging/wlags49_h25/wl_main.c2
-rw-r--r--drivers/staging/wlags49_h25/wl_main.h2
-rw-r--r--drivers/staging/wlags49_h25/wl_netdev.c2
-rw-r--r--drivers/staging/wlags49_h25/wl_netdev.h2
-rw-r--r--drivers/staging/wlags49_h25/wl_priv.c2
-rw-r--r--drivers/staging/wlags49_h25/wl_priv.h2
-rw-r--r--drivers/staging/wlags49_h25/wl_profile.c2
-rw-r--r--drivers/staging/wlags49_h25/wl_profile.h2
-rw-r--r--drivers/staging/wlags49_h25/wl_util.c2
-rw-r--r--drivers/staging/wlags49_h25/wl_util.h2
-rw-r--r--drivers/staging/wlags49_h25/wl_version.h2
-rw-r--r--drivers/staging/wlags49_h25/wl_wext.c2
-rw-r--r--drivers/staging/wlags49_h25/wl_wext.h2
-rw-r--r--drivers/staging/wlan-ng/Kconfig4
-rw-r--r--drivers/staging/wlan-ng/Makefile3
-rw-r--r--drivers/staging/wlan-ng/README5
-rw-r--r--drivers/staging/wlan-ng/cfg80211.c793
-rw-r--r--drivers/staging/wlan-ng/hfa384x.h2911
-rw-r--r--drivers/staging/wlan-ng/hfa384x_usb.c2425
-rw-r--r--drivers/staging/wlan-ng/p80211conv.c436
-rw-r--r--drivers/staging/wlan-ng/p80211conv.h145
-rw-r--r--drivers/staging/wlan-ng/p80211hdr.h166
-rw-r--r--drivers/staging/wlan-ng/p80211ioctl.h46
-rw-r--r--drivers/staging/wlan-ng/p80211meta.h127
-rw-r--r--drivers/staging/wlan-ng/p80211metadef.h522
-rw-r--r--drivers/staging/wlan-ng/p80211metamib.h105
-rw-r--r--drivers/staging/wlan-ng/p80211metamsg.h105
-rw-r--r--drivers/staging/wlan-ng/p80211metastruct.h426
-rw-r--r--drivers/staging/wlan-ng/p80211mgmt.h479
-rw-r--r--drivers/staging/wlan-ng/p80211msg.h55
-rw-r--r--drivers/staging/wlan-ng/p80211netdev.c576
-rw-r--r--drivers/staging/wlan-ng/p80211netdev.h211
-rw-r--r--drivers/staging/wlan-ng/p80211req.c162
-rw-r--r--drivers/staging/wlan-ng/p80211req.h17
-rw-r--r--drivers/staging/wlan-ng/p80211types.h526
-rw-r--r--drivers/staging/wlan-ng/p80211wep.c222
-rw-r--r--drivers/staging/wlan-ng/p80211wext.c1827
-rw-r--r--drivers/staging/wlan-ng/prism2fw.c1221
-rw-r--r--drivers/staging/wlan-ng/prism2mgmt.c940
-rw-r--r--drivers/staging/wlan-ng/prism2mgmt.h78
-rw-r--r--drivers/staging/wlan-ng/prism2mib.c927
-rw-r--r--drivers/staging/wlan-ng/prism2sta.c1674
-rw-r--r--drivers/staging/wlan-ng/prism2usb.c309
-rw-r--r--drivers/staging/wlan-ng/wlan_compat.h193
-rw-r--r--drivers/staging/xgifb/Kconfig11
-rw-r--r--drivers/staging/xgifb/Makefile4
-rw-r--r--drivers/staging/xgifb/TODO13
-rw-r--r--drivers/staging/xgifb/XGI_main.h377
-rw-r--r--drivers/staging/xgifb/XGI_main_26.c2129
-rw-r--r--drivers/staging/xgifb/XGIfb.h108
-rw-r--r--drivers/staging/xgifb/vb_def.h258
-rw-r--r--drivers/staging/xgifb/vb_init.c1375
-rw-r--r--drivers/staging/xgifb/vb_init.h6
-rw-r--r--drivers/staging/xgifb/vb_setmode.c5555
-rw-r--r--drivers/staging/xgifb/vb_setmode.h23
-rw-r--r--drivers/staging/xgifb/vb_struct.h166
-rw-r--r--drivers/staging/xgifb/vb_table.h2491
-rw-r--r--drivers/staging/xgifb/vb_util.c45
-rw-r--r--drivers/staging/xgifb/vb_util.h9
-rw-r--r--drivers/staging/xgifb/vgatypes.h49
-rw-r--r--drivers/staging/xillybus/Kconfig33
-rw-r--r--drivers/staging/xillybus/Makefile7
-rw-r--r--drivers/staging/xillybus/README403
-rw-r--r--drivers/staging/xillybus/TODO5
-rw-r--r--drivers/staging/xillybus/xillybus.h181
-rw-r--r--drivers/staging/xillybus/xillybus_core.c2338
-rw-r--r--drivers/staging/xillybus/xillybus_of.c194
-rw-r--r--drivers/staging/xillybus/xillybus_pcie.c230
-rw-r--r--drivers/target/Kconfig39
-rw-r--r--drivers/target/Makefile30
-rw-r--r--drivers/target/iscsi/Kconfig9
-rw-r--r--drivers/target/iscsi/Makefile21
-rw-r--r--drivers/target/iscsi/iscsi_target.c4786
-rw-r--r--drivers/target/iscsi/iscsi_target.h50
-rw-r--r--drivers/target/iscsi/iscsi_target_auth.c502
-rw-r--r--drivers/target/iscsi/iscsi_target_auth.h32
-rw-r--r--drivers/target/iscsi/iscsi_target_configfs.c2074
-rw-r--r--drivers/target/iscsi/iscsi_target_configfs.h7
-rw-r--r--drivers/target/iscsi/iscsi_target_core.h884
-rw-r--r--drivers/target/iscsi/iscsi_target_datain_values.c526
-rw-r--r--drivers/target/iscsi/iscsi_target_datain_values.h12
-rw-r--r--drivers/target/iscsi/iscsi_target_device.c66
-rw-r--r--drivers/target/iscsi/iscsi_target_device.h7
-rw-r--r--drivers/target/iscsi/iscsi_target_erl0.c1013
-rw-r--r--drivers/target/iscsi/iscsi_target_erl0.h15
-rw-r--r--drivers/target/iscsi/iscsi_target_erl1.c1294
-rw-r--r--drivers/target/iscsi/iscsi_target_erl1.h26
-rw-r--r--drivers/target/iscsi/iscsi_target_erl2.c436
-rw-r--r--drivers/target/iscsi/iscsi_target_erl2.h18
-rw-r--r--drivers/target/iscsi/iscsi_target_login.c1457
-rw-r--r--drivers/target/iscsi/iscsi_target_login.h21
-rw-r--r--drivers/target/iscsi/iscsi_target_nego.c1254
-rw-r--r--drivers/target/iscsi/iscsi_target_nego.h20
-rw-r--r--drivers/target/iscsi/iscsi_target_nodeattrib.c261
-rw-r--r--drivers/target/iscsi/iscsi_target_nodeattrib.h15
-rw-r--r--drivers/target/iscsi/iscsi_target_parameters.c1982
-rw-r--r--drivers/target/iscsi/iscsi_target_parameters.h290
-rw-r--r--drivers/target/iscsi/iscsi_target_seq_pdu_list.c700
-rw-r--r--drivers/target/iscsi/iscsi_target_seq_pdu_list.h86
-rw-r--r--drivers/target/iscsi/iscsi_target_stat.c949
-rw-r--r--drivers/target/iscsi/iscsi_target_stat.h64
-rw-r--r--drivers/target/iscsi/iscsi_target_tmr.c849
-rw-r--r--drivers/target/iscsi/iscsi_target_tmr.h14
-rw-r--r--drivers/target/iscsi/iscsi_target_tpg.c881
-rw-r--r--drivers/target/iscsi/iscsi_target_tpg.h43
-rw-r--r--drivers/target/iscsi/iscsi_target_tq.c513
-rw-r--r--drivers/target/iscsi/iscsi_target_tq.h84
-rw-r--r--drivers/target/iscsi/iscsi_target_transport.c55
-rw-r--r--drivers/target/iscsi/iscsi_target_util.c1510
-rw-r--r--drivers/target/iscsi/iscsi_target_util.h62
-rw-r--r--drivers/target/loopback/Kconfig5
-rw-r--r--drivers/target/loopback/Makefile1
-rw-r--r--drivers/target/loopback/tcm_loop.c1611
-rw-r--r--drivers/target/loopback/tcm_loop.h67
-rw-r--r--drivers/target/sbp/Kconfig11
-rw-r--r--drivers/target/sbp/Makefile1
-rw-r--r--drivers/target/sbp/sbp_target.c2614
-rw-r--r--drivers/target/sbp/sbp_target.h251
-rw-r--r--drivers/target/target_core_alua.c2416
-rw-r--r--drivers/target/target_core_alua.h161
-rw-r--r--drivers/target/target_core_configfs.c3314
-rw-r--r--drivers/target/target_core_device.c1739
-rw-r--r--drivers/target/target_core_fabric_configfs.c1241
-rw-r--r--drivers/target/target_core_fabric_lib.c451
-rw-r--r--drivers/target/target_core_file.c966
-rw-r--r--drivers/target/target_core_file.h54
-rw-r--r--drivers/target/target_core_hba.c168
-rw-r--r--drivers/target/target_core_iblock.c899
-rw-r--r--drivers/target/target_core_iblock.h25
-rw-r--r--drivers/target/target_core_internal.h115
-rw-r--r--drivers/target/target_core_pr.c4059
-rw-r--r--drivers/target/target_core_pr.h73
-rw-r--r--drivers/target/target_core_pscsi.c1193
-rw-r--r--drivers/target/target_core_pscsi.h61
-rw-r--r--drivers/target/target_core_rd.c669
-rw-r--r--drivers/target/target_core_rd.h51
-rw-r--r--drivers/target/target_core_sbc.c1336
-rw-r--r--drivers/target/target_core_spc.c1445
-rw-r--r--drivers/target/target_core_stat.c1635
-rw-r--r--drivers/target/target_core_tmr.c395
-rw-r--r--drivers/target/target_core_tpg.c884
-rw-r--r--drivers/target/target_core_transport.c2968
-rw-r--r--drivers/target/target_core_ua.c324
-rw-r--r--drivers/target/target_core_ua.h36
-rw-r--r--drivers/target/target_core_xcopy.c1081
-rw-r--r--drivers/target/target_core_xcopy.h62
-rw-r--r--drivers/target/tcm_fc/Kconfig5
-rw-r--r--drivers/target/tcm_fc/Makefile6
-rw-r--r--drivers/target/tcm_fc/tcm_fc.h183
-rw-r--r--drivers/target/tcm_fc/tfc_cmd.c585
-rw-r--r--drivers/target/tcm_fc/tfc_conf.c642
-rw-r--r--drivers/target/tcm_fc/tfc_io.c379
-rw-r--r--drivers/target/tcm_fc/tfc_sess.c504
-rw-r--r--drivers/tc/tc.c19
-rw-r--r--drivers/telephony/Kconfig47
-rw-r--r--drivers/telephony/Makefile7
-rw-r--r--drivers/telephony/ixj-ver.h4
-rw-r--r--drivers/telephony/ixj.c10556
-rw-r--r--drivers/telephony/ixj.h1322
-rw-r--r--drivers/telephony/ixj_pcmcia.c215
-rw-r--r--drivers/telephony/phonedev.c167
-rw-r--r--drivers/thermal/Kconfig231
-rw-r--r--drivers/thermal/Makefile29
-rw-r--r--drivers/thermal/armada_thermal.c341
-rw-r--r--drivers/thermal/cpu_cooling.c564
-rw-r--r--drivers/thermal/db8500_cpufreq_cooling.c107
-rw-r--r--drivers/thermal/db8500_thermal.c534
-rw-r--r--drivers/thermal/dove_thermal.c196
-rw-r--r--drivers/thermal/fair_share.c122
-rw-r--r--drivers/thermal/imx_thermal.c574
-rw-r--r--drivers/thermal/int3403_thermal.c243
-rw-r--r--drivers/thermal/intel_powerclamp.c827
-rw-r--r--drivers/thermal/intel_soc_dts_thermal.c479
-rw-r--r--drivers/thermal/kirkwood_thermal.c126
-rw-r--r--drivers/thermal/of-thermal.c850
-rw-r--r--drivers/thermal/rcar_thermal.c512
-rw-r--r--drivers/thermal/samsung/Kconfig18
-rw-r--r--drivers/thermal/samsung/Makefile7
-rw-r--r--drivers/thermal/samsung/exynos_thermal_common.c430
-rw-r--r--drivers/thermal/samsung/exynos_thermal_common.h107
-rw-r--r--drivers/thermal/samsung/exynos_tmu.c817
-rw-r--r--drivers/thermal/samsung/exynos_tmu.h319
-rw-r--r--drivers/thermal/samsung/exynos_tmu_data.c459
-rw-r--r--drivers/thermal/samsung/exynos_tmu_data.h193
-rw-r--r--drivers/thermal/spear_thermal.c199
-rw-r--r--drivers/thermal/step_wise.c212
-rw-r--r--drivers/thermal/thermal_core.c1854
-rw-r--r--drivers/thermal/thermal_core.h89
-rw-r--r--drivers/thermal/thermal_hwmon.c272
-rw-r--r--drivers/thermal/thermal_hwmon.h49
-rw-r--r--drivers/thermal/thermal_sys.c899
-rw-r--r--drivers/thermal/ti-soc-thermal/Kconfig60
-rw-r--r--drivers/thermal/ti-soc-thermal/Makefile6
-rw-r--r--drivers/thermal/ti-soc-thermal/TODO12
-rw-r--r--drivers/thermal/ti-soc-thermal/dra752-bandgap.h280
-rw-r--r--drivers/thermal/ti-soc-thermal/dra752-thermal-data.c481
-rw-r--r--drivers/thermal/ti-soc-thermal/omap4-thermal-data.c267
-rw-r--r--drivers/thermal/ti-soc-thermal/omap4xxx-bandgap.h175
-rw-r--r--drivers/thermal/ti-soc-thermal/omap5-thermal-data.c359
-rw-r--r--drivers/thermal/ti-soc-thermal/omap5xxx-bandgap.h200
-rw-r--r--drivers/thermal/ti-soc-thermal/ti-bandgap.c1558
-rw-r--r--drivers/thermal/ti-soc-thermal/ti-bandgap.h408
-rw-r--r--drivers/thermal/ti-soc-thermal/ti-thermal-common.c433
-rw-r--r--drivers/thermal/ti-soc-thermal/ti-thermal.h123
-rw-r--r--drivers/thermal/user_space.c57
-rw-r--r--drivers/thermal/x86_pkg_temp_thermal.c651
-rw-r--r--drivers/tty/Kconfig422
-rw-r--r--drivers/tty/Makefile33
-rw-r--r--drivers/tty/amiserial.c1879
-rw-r--r--drivers/tty/bfin_jtag_comm.c368
-rw-r--r--drivers/tty/cyclades.c4168
-rw-r--r--drivers/tty/ehv_bytechan.c874
-rw-r--r--drivers/tty/goldfish.c339
-rw-r--r--drivers/tty/hvc/Kconfig124
-rw-r--r--drivers/tty/hvc/Makefile14
-rw-r--r--drivers/tty/hvc/hvc_beat.c (renamed from drivers/char/hvc_beat.c)6
-rw-r--r--drivers/tty/hvc/hvc_bfin_jtag.c105
-rw-r--r--drivers/tty/hvc/hvc_console.c (renamed from drivers/char/hvc_console.c)313
-rw-r--r--drivers/tty/hvc/hvc_console.h (renamed from drivers/char/hvc_console.h)32
-rw-r--r--drivers/tty/hvc/hvc_dcc.c89
-rw-r--r--drivers/tty/hvc/hvc_irq.c (renamed from drivers/char/hvc_irq.c)2
-rw-r--r--drivers/tty/hvc/hvc_iucv.c1461
-rw-r--r--drivers/tty/hvc/hvc_opal.c439
-rw-r--r--drivers/tty/hvc/hvc_rtas.c (renamed from drivers/char/hvc_rtas.c)16
-rw-r--r--drivers/tty/hvc/hvc_tile.c205
-rw-r--r--drivers/tty/hvc/hvc_udbg.c (renamed from drivers/char/hvc_udbg.c)21
-rw-r--r--drivers/tty/hvc/hvc_vio.c499
-rw-r--r--drivers/tty/hvc/hvc_xen.c658
-rw-r--r--drivers/tty/hvc/hvcs.c (renamed from drivers/char/hvcs.c)318
-rw-r--r--drivers/tty/hvc/hvsi.c (renamed from drivers/char/hvsi.c)283
-rw-r--r--drivers/tty/hvc/hvsi_lib.c424
-rw-r--r--drivers/tty/ipwireless/Makefile8
-rw-r--r--drivers/tty/ipwireless/hardware.c (renamed from drivers/char/pcmcia/ipwireless/hardware.c)17
-rw-r--r--drivers/tty/ipwireless/hardware.h (renamed from drivers/char/pcmcia/ipwireless/hardware.h)0
-rw-r--r--drivers/tty/ipwireless/main.c347
-rw-r--r--drivers/tty/ipwireless/main.h68
-rw-r--r--drivers/tty/ipwireless/network.c (renamed from drivers/char/pcmcia/ipwireless/network.c)20
-rw-r--r--drivers/tty/ipwireless/network.h (renamed from drivers/char/pcmcia/ipwireless/network.h)0
-rw-r--r--drivers/tty/ipwireless/setup_protocol.h (renamed from drivers/char/pcmcia/ipwireless/setup_protocol.h)2
-rw-r--r--drivers/tty/ipwireless/tty.c (renamed from drivers/char/pcmcia/ipwireless/tty.c)166
-rw-r--r--drivers/tty/ipwireless/tty.h (renamed from drivers/char/pcmcia/ipwireless/tty.h)5
-rw-r--r--drivers/tty/isicom.c (renamed from drivers/char/isicom.c)334
-rw-r--r--drivers/tty/metag_da.c677
-rw-r--r--drivers/tty/moxa.c (renamed from drivers/char/moxa.c)430
-rw-r--r--drivers/tty/moxa.h (renamed from drivers/char/moxa.h)0
-rw-r--r--drivers/tty/mxser.c (renamed from drivers/char/mxser.c)605
-rw-r--r--drivers/tty/mxser.h (renamed from drivers/char/mxser.h)2
-rw-r--r--drivers/tty/n_gsm.c3260
-rw-r--r--drivers/tty/n_hdlc.c (renamed from drivers/char/n_hdlc.c)151
-rw-r--r--drivers/tty/n_r3964.c (renamed from drivers/char/n_r3964.c)41
-rw-r--r--drivers/tty/n_tracerouter.c243
-rw-r--r--drivers/tty/n_tracesink.c238
-rw-r--r--drivers/tty/n_tracesink.h36
-rw-r--r--drivers/tty/n_tty.c2522
-rw-r--r--drivers/tty/nozomi.c (renamed from drivers/char/nozomi.c)356
-rw-r--r--drivers/tty/pty.c813
-rw-r--r--drivers/tty/rocket.c (renamed from drivers/char/rocket.c)502
-rw-r--r--drivers/tty/rocket.h (renamed from drivers/char/rocket.h)0
-rw-r--r--drivers/tty/rocket_int.h (renamed from drivers/char/rocket_int.h)0
-rw-r--r--drivers/tty/serial/21285.c (renamed from drivers/serial/21285.c)28
-rw-r--r--drivers/tty/serial/68328serial.c1322
-rw-r--r--drivers/tty/serial/8250/8250.h188
-rw-r--r--drivers/tty/serial/8250/8250_accent.c (renamed from drivers/serial/8250_accent.c)2
-rw-r--r--drivers/tty/serial/8250/8250_acorn.c (renamed from drivers/serial/8250_acorn.c)28
-rw-r--r--drivers/tty/serial/8250/8250_boca.c (renamed from drivers/serial/8250_boca.c)2
-rw-r--r--drivers/tty/serial/8250/8250_core.c3472
-rw-r--r--drivers/tty/serial/8250/8250_dma.c244
-rw-r--r--drivers/tty/serial/8250/8250_dw.c547
-rw-r--r--drivers/tty/serial/8250/8250_early.c193
-rw-r--r--drivers/tty/serial/8250/8250_em.c174
-rw-r--r--drivers/tty/serial/8250/8250_exar_st16c554.c (renamed from drivers/serial/8250_exar_st16c554.c)2
-rw-r--r--drivers/tty/serial/8250/8250_fourport.c (renamed from drivers/serial/8250_fourport.c)2
-rw-r--r--drivers/tty/serial/8250/8250_fsl.c63
-rw-r--r--drivers/tty/serial/8250/8250_gsc.c (renamed from drivers/serial/8250_gsc.c)38
-rw-r--r--drivers/tty/serial/8250/8250_hp300.c (renamed from drivers/serial/8250_hp300.c)57
-rw-r--r--drivers/tty/serial/8250/8250_hub6.c (renamed from drivers/serial/8250_hub6.c)2
-rw-r--r--drivers/tty/serial/8250/8250_pci.c5350
-rw-r--r--drivers/tty/serial/8250/8250_pnp.c (renamed from drivers/serial/8250_pnp.c)94
-rw-r--r--drivers/tty/serial/8250/Kconfig300
-rw-r--r--drivers/tty/serial/8250/Makefile22
-rw-r--r--drivers/tty/serial/8250/serial_cs.c856
-rw-r--r--drivers/tty/serial/Kconfig1560
-rw-r--r--drivers/tty/serial/Makefile97
-rw-r--r--drivers/tty/serial/altera_jtaguart.c517
-rw-r--r--drivers/tty/serial/altera_uart.c666
-rw-r--r--drivers/tty/serial/amba-pl010.c (renamed from drivers/serial/amba-pl010.c)61
-rw-r--r--drivers/tty/serial/amba-pl011.c2296
-rw-r--r--drivers/tty/serial/apbuart.c698
-rw-r--r--drivers/tty/serial/apbuart.h64
-rw-r--r--drivers/tty/serial/ar933x_uart.c782
-rw-r--r--drivers/tty/serial/arc_uart.c783
-rw-r--r--drivers/tty/serial/atmel_serial.c2653
-rw-r--r--drivers/tty/serial/bcm63xx_uart.c909
-rw-r--r--drivers/tty/serial/bfin_sport_uart.c937
-rw-r--r--drivers/tty/serial/bfin_sport_uart.h87
-rw-r--r--drivers/tty/serial/bfin_uart.c1559
-rw-r--r--drivers/tty/serial/clps711x.c591
-rw-r--r--drivers/tty/serial/cpm_uart/Makefile (renamed from drivers/serial/cpm_uart/Makefile)0
-rw-r--r--drivers/tty/serial/cpm_uart/cpm_uart.h (renamed from drivers/serial/cpm_uart/cpm_uart.h)8
-rw-r--r--drivers/tty/serial/cpm_uart/cpm_uart_core.c (renamed from drivers/serial/cpm_uart/cpm_uart_core.c)280
-rw-r--r--drivers/tty/serial/cpm_uart/cpm_uart_cpm1.c (renamed from drivers/serial/cpm_uart/cpm_uart_cpm1.c)5
-rw-r--r--drivers/tty/serial/cpm_uart/cpm_uart_cpm1.h (renamed from drivers/serial/cpm_uart/cpm_uart_cpm1.h)2
-rw-r--r--drivers/tty/serial/cpm_uart/cpm_uart_cpm2.c (renamed from drivers/serial/cpm_uart/cpm_uart_cpm2.c)10
-rw-r--r--drivers/tty/serial/cpm_uart/cpm_uart_cpm2.h (renamed from drivers/serial/cpm_uart/cpm_uart_cpm2.h)2
-rw-r--r--drivers/tty/serial/crisv10.c (renamed from drivers/serial/crisv10.c)706
-rw-r--r--drivers/tty/serial/crisv10.h (renamed from drivers/serial/crisv10.h)16
-rw-r--r--drivers/tty/serial/dz.c (renamed from drivers/serial/dz.c)12
-rw-r--r--drivers/tty/serial/dz.h (renamed from drivers/serial/dz.h)0
-rw-r--r--drivers/tty/serial/earlycon-arm-semihost.c61
-rw-r--r--drivers/tty/serial/earlycon.c172
-rw-r--r--drivers/tty/serial/efm32-uart.c850
-rw-r--r--drivers/tty/serial/fsl_lpuart.c1285
-rw-r--r--drivers/tty/serial/icom.c (renamed from drivers/serial/icom.c)251
-rw-r--r--drivers/tty/serial/icom.h (renamed from drivers/serial/icom.h)0
-rw-r--r--drivers/tty/serial/ifx6x60.c1454
-rw-r--r--drivers/tty/serial/ifx6x60.h131
-rw-r--r--drivers/tty/serial/imx.c2008
-rw-r--r--drivers/tty/serial/ioc3_serial.c (renamed from drivers/serial/ioc3_serial.c)79
-rw-r--r--drivers/tty/serial/ioc4_serial.c (renamed from drivers/serial/ioc4_serial.c)112
-rw-r--r--drivers/tty/serial/ip22zilog.c (renamed from drivers/serial/ip22zilog.c)46
-rw-r--r--drivers/tty/serial/ip22zilog.h (renamed from drivers/serial/ip22zilog.h)0
-rw-r--r--drivers/tty/serial/jsm/Makefile (renamed from drivers/serial/jsm/Makefile)0
-rw-r--r--drivers/tty/serial/jsm/jsm.h (renamed from drivers/serial/jsm/jsm.h)31
-rw-r--r--drivers/tty/serial/jsm/jsm_driver.c (renamed from drivers/serial/jsm/jsm_driver.c)86
-rw-r--r--drivers/tty/serial/jsm/jsm_neo.c (renamed from drivers/serial/jsm/jsm_neo.c)171
-rw-r--r--drivers/tty/serial/jsm/jsm_tty.c (renamed from drivers/serial/jsm/jsm_tty.c)265
-rw-r--r--drivers/tty/serial/kgdb_nmi.c391
-rw-r--r--drivers/tty/serial/kgdboc.c339
-rw-r--r--drivers/tty/serial/lantiq.c776
-rw-r--r--drivers/tty/serial/lpc32xx_hs.c810
-rw-r--r--drivers/tty/serial/m32r_sio.c (renamed from drivers/serial/m32r_sio.c)86
-rw-r--r--drivers/tty/serial/m32r_sio.h (renamed from drivers/serial/m32r_sio.h)1
-rw-r--r--drivers/tty/serial/m32r_sio_reg.h (renamed from drivers/serial/m32r_sio_reg.h)0
-rw-r--r--drivers/tty/serial/max3100.c919
-rw-r--r--drivers/tty/serial/max310x.c1372
-rw-r--r--drivers/tty/serial/mcf.c (renamed from drivers/serial/mcf.c)146
-rw-r--r--drivers/tty/serial/men_z135_uart.c867
-rw-r--r--drivers/tty/serial/mfd.c1508
-rw-r--r--drivers/tty/serial/mpc52xx_uart.c1976
-rw-r--r--drivers/tty/serial/mpsc.c (renamed from drivers/serial/mpsc.c)34
-rw-r--r--drivers/tty/serial/mrst_max3110.c917
-rw-r--r--drivers/tty/serial/mrst_max3110.h61
-rw-r--r--drivers/tty/serial/msm_serial.c1107
-rw-r--r--drivers/tty/serial/msm_serial.h182
-rw-r--r--drivers/tty/serial/msm_serial_hs.c1875
-rw-r--r--drivers/tty/serial/msm_smd_tty.c232
-rw-r--r--drivers/tty/serial/mux.c633
-rw-r--r--drivers/tty/serial/mxs-auart.c1166
-rw-r--r--drivers/tty/serial/netx-serial.c (renamed from drivers/serial/netx-serial.c)20
-rw-r--r--drivers/tty/serial/nwpserial.c (renamed from drivers/serial/nwpserial.c)23
-rw-r--r--drivers/tty/serial/of_serial.c287
-rw-r--r--drivers/tty/serial/omap-serial.c1920
-rw-r--r--drivers/tty/serial/pch_uart.c2011
-rw-r--r--drivers/tty/serial/pmac_zilog.c (renamed from drivers/serial/pmac_zilog.c)752
-rw-r--r--drivers/tty/serial/pmac_zilog.h (renamed from drivers/serial/pmac_zilog.h)31
-rw-r--r--drivers/tty/serial/pnx8xxx_uart.c (renamed from drivers/serial/pnx8xxx_uart.c)16
-rw-r--r--drivers/tty/serial/pxa.c (renamed from drivers/serial/pxa.c)237
-rw-r--r--drivers/tty/serial/rp2.c887
-rw-r--r--drivers/tty/serial/sa1100.c (renamed from drivers/serial/sa1100.c)28
-rw-r--r--drivers/tty/serial/samsung.c1862
-rw-r--r--drivers/tty/serial/samsung.h83
-rw-r--r--drivers/tty/serial/sb1250-duart.c (renamed from drivers/serial/sb1250-duart.c)22
-rw-r--r--drivers/tty/serial/sc16is7xx.c1277
-rw-r--r--drivers/tty/serial/sccnxp.c1031
-rw-r--r--drivers/tty/serial/serial-tegra.c1402
-rw-r--r--drivers/tty/serial/serial_core.c2841
-rw-r--r--drivers/tty/serial/serial_ks8695.c (renamed from drivers/serial/serial_ks8695.c)33
-rw-r--r--drivers/tty/serial/serial_mctrl_gpio.c143
-rw-r--r--drivers/tty/serial/serial_mctrl_gpio.h110
-rw-r--r--drivers/tty/serial/serial_txx9.c (renamed from drivers/serial/serial_txx9.c)174
-rw-r--r--drivers/tty/serial/sh-sci.c2645
-rw-r--r--drivers/tty/serial/sh-sci.h38
-rw-r--r--drivers/tty/serial/sirfsoc_uart.c1510
-rw-r--r--drivers/tty/serial/sirfsoc_uart.h452
-rw-r--r--drivers/tty/serial/sn_console.c (renamed from drivers/serial/sn_console.c)56
-rw-r--r--drivers/tty/serial/st-asc.c932
-rw-r--r--drivers/tty/serial/suncore.c (renamed from drivers/serial/suncore.c)50
-rw-r--r--drivers/tty/serial/sunhv.c (renamed from drivers/serial/sunhv.c)100
-rw-r--r--drivers/tty/serial/sunsab.c (renamed from drivers/serial/sunsab.c)108
-rw-r--r--drivers/tty/serial/sunsab.h (renamed from drivers/serial/sunsab.h)0
-rw-r--r--drivers/tty/serial/sunsu.c (renamed from drivers/serial/sunsu.c)163
-rw-r--r--drivers/tty/serial/sunzilog.c (renamed from drivers/serial/sunzilog.c)201
-rw-r--r--drivers/tty/serial/sunzilog.h (renamed from drivers/serial/sunzilog.h)0
-rw-r--r--drivers/tty/serial/tilegx.c708
-rw-r--r--drivers/tty/serial/timbuart.c521
-rw-r--r--drivers/tty/serial/timbuart.h58
-rw-r--r--drivers/tty/serial/uartlite.c718
-rw-r--r--drivers/tty/serial/ucc_uart.c (renamed from drivers/serial/ucc_uart.c)153
-rw-r--r--drivers/tty/serial/vr41xx_siu.c (renamed from drivers/serial/vr41xx_siu.c)39
-rw-r--r--drivers/tty/serial/vt8500_serial.c687
-rw-r--r--drivers/tty/serial/xilinx_uartps.c1475
-rw-r--r--drivers/tty/serial/zs.c (renamed from drivers/serial/zs.c)19
-rw-r--r--drivers/tty/serial/zs.h (renamed from drivers/serial/zs.h)0
-rw-r--r--drivers/tty/synclink.c (renamed from drivers/char/synclink.c)532
-rw-r--r--drivers/tty/synclink_gt.c (renamed from drivers/char/synclink_gt.c)863
-rw-r--r--drivers/tty/synclinkmp.c (renamed from drivers/char/synclinkmp.c)413
-rw-r--r--drivers/tty/sysrq.c1127
-rw-r--r--drivers/tty/tty_audit.c351
-rw-r--r--drivers/tty/tty_buffer.c553
-rw-r--r--drivers/tty/tty_io.c3604
-rw-r--r--drivers/tty/tty_ioctl.c1229
-rw-r--r--drivers/tty/tty_ldisc.c827
-rw-r--r--drivers/tty/tty_ldsem.c456
-rw-r--r--drivers/tty/tty_mutex.c73
-rw-r--r--drivers/tty/tty_port.c593
-rw-r--r--drivers/tty/vt/.gitignore (renamed from drivers/char/.gitignore)0
-rw-r--r--drivers/tty/vt/Makefile32
-rw-r--r--drivers/tty/vt/consolemap.c (renamed from drivers/char/consolemap.c)213
-rw-r--r--drivers/tty/vt/cp437.uni (renamed from drivers/char/cp437.uni)0
-rw-r--r--drivers/tty/vt/defkeymap.c_shipped (renamed from drivers/char/defkeymap.c_shipped)0
-rw-r--r--drivers/tty/vt/defkeymap.map (renamed from drivers/char/defkeymap.map)0
-rw-r--r--drivers/tty/vt/keyboard.c2165
-rw-r--r--drivers/tty/vt/selection.c370
-rw-r--r--drivers/tty/vt/vc_screen.c653
-rw-r--r--drivers/tty/vt/vt.c (renamed from drivers/char/vt.c)1008
-rw-r--r--drivers/tty/vt/vt_ioctl.c1481
-rw-r--r--drivers/uio/Kconfig110
-rw-r--r--drivers/uio/Makefile8
-rw-r--r--drivers/uio/uio.c318
-rw-r--r--drivers/uio/uio_aec.c163
-rw-r--r--drivers/uio/uio_cif.c25
-rw-r--r--drivers/uio/uio_dmem_genirq.c357
-rw-r--r--drivers/uio/uio_mf624.c246
-rw-r--r--drivers/uio/uio_netx.c179
-rw-r--r--drivers/uio/uio_pci_generic.c127
-rw-r--r--drivers/uio/uio_pdrv.c120
-rw-r--r--drivers/uio/uio_pdrv_genirq.c153
-rw-r--r--drivers/uio/uio_pruss.c242
-rw-r--r--drivers/uio/uio_sercos3.c22
-rw-r--r--drivers/uio/uio_smx.c140
-rw-r--r--drivers/usb/Kconfig93
-rw-r--r--drivers/usb/Makefile23
-rw-r--r--drivers/usb/atm/Kconfig2
-rw-r--r--drivers/usb/atm/Makefile5
-rw-r--r--drivers/usb/atm/cxacru.c327
-rw-r--r--drivers/usb/atm/speedtch.c82
-rw-r--r--drivers/usb/atm/ueagle-atm.c600
-rw-r--r--drivers/usb/atm/usbatm.c163
-rw-r--r--drivers/usb/atm/usbatm.h72
-rw-r--r--drivers/usb/atm/xusbatm.c18
-rw-r--r--drivers/usb/c67x00/Makefile6
-rw-r--r--drivers/usb/c67x00/c67x00-drv.c37
-rw-r--r--drivers/usb/c67x00/c67x00-hcd.c7
-rw-r--r--drivers/usb/c67x00/c67x00-hcd.h6
-rw-r--r--drivers/usb/c67x00/c67x00-ll-hpi.c16
-rw-r--r--drivers/usb/c67x00/c67x00-sched.c42
-rw-r--r--drivers/usb/chipidea/Kconfig33
-rw-r--r--drivers/usb/chipidea/Makefile23
-rw-r--r--drivers/usb/chipidea/bits.h127
-rw-r--r--drivers/usb/chipidea/ci.h354
-rw-r--r--drivers/usb/chipidea/ci_hdrc_imx.c218
-rw-r--r--drivers/usb/chipidea/ci_hdrc_imx.h25
-rw-r--r--drivers/usb/chipidea/ci_hdrc_msm.c121
-rw-r--r--drivers/usb/chipidea/ci_hdrc_pci.c154
-rw-r--r--drivers/usb/chipidea/ci_hdrc_zevio.c72
-rw-r--r--drivers/usb/chipidea/core.c754
-rw-r--r--drivers/usb/chipidea/debug.c441
-rw-r--r--drivers/usb/chipidea/debug.h30
-rw-r--r--drivers/usb/chipidea/host.c151
-rw-r--r--drivers/usb/chipidea/host.h23
-rw-r--r--drivers/usb/chipidea/otg.c146
-rw-r--r--drivers/usb/chipidea/otg.h26
-rw-r--r--drivers/usb/chipidea/otg_fsm.c842
-rw-r--r--drivers/usb/chipidea/otg_fsm.h129
-rw-r--r--drivers/usb/chipidea/udc.c1897
-rw-r--r--drivers/usb/chipidea/udc.h103
-rw-r--r--drivers/usb/chipidea/usbmisc_imx.c355
-rw-r--r--drivers/usb/class/Kconfig6
-rw-r--r--drivers/usb/class/cdc-acm.c1657
-rw-r--r--drivers/usb/class/cdc-acm.h48
-rw-r--r--drivers/usb/class/cdc-wdm.c661
-rw-r--r--drivers/usb/class/usblp.c507
-rw-r--r--drivers/usb/class/usbtmc.c484
-rw-r--r--drivers/usb/common/Makefile6
-rw-r--r--drivers/usb/common/usb-common.c144
-rw-r--r--drivers/usb/common/usb-otg-fsm.c367
-rw-r--r--drivers/usb/core/Kconfig112
-rw-r--r--drivers/usb/core/Makefile22
-rw-r--r--drivers/usb/core/buffer.c37
-rw-r--r--drivers/usb/core/config.c266
-rw-r--r--drivers/usb/core/devices.c204
-rw-r--r--drivers/usb/core/devio.c1382
-rw-r--r--drivers/usb/core/driver.c1547
-rw-r--r--drivers/usb/core/endpoint.c225
-rw-r--r--drivers/usb/core/file.c94
-rw-r--r--drivers/usb/core/generic.c18
-rw-r--r--drivers/usb/core/hcd-pci.c650
-rw-r--r--drivers/usb/core/hcd.c1638
-rw-r--r--drivers/usb/core/hcd.h498
-rw-r--r--drivers/usb/core/hub.c3871
-rw-r--r--drivers/usb/core/hub.h338
-rw-r--r--drivers/usb/core/inode.c775
-rw-r--r--drivers/usb/core/message.c666
-rw-r--r--drivers/usb/core/notify.c1
-rw-r--r--drivers/usb/core/port.c484
-rw-r--r--drivers/usb/core/quirks.c227
-rw-r--r--drivers/usb/core/sysfs.c679
-rw-r--r--drivers/usb/core/urb.c321
-rw-r--r--drivers/usb/core/usb-acpi.c228
-rw-r--r--drivers/usb/core/usb.c447
-rw-r--r--drivers/usb/core/usb.h121
-rw-r--r--drivers/usb/dwc2/Kconfig86
-rw-r--r--drivers/usb/dwc2/Makefile28
-rw-r--r--drivers/usb/dwc2/core.c2845
-rw-r--r--drivers/usb/dwc2/core.h950
-rw-r--r--drivers/usb/dwc2/core_intr.c511
-rw-r--r--drivers/usb/dwc2/gadget.c3673
-rw-r--r--drivers/usb/dwc2/hcd.c2981
-rw-r--r--drivers/usb/dwc2/hcd.h769
-rw-r--r--drivers/usb/dwc2/hcd_ddma.c1212
-rw-r--r--drivers/usb/dwc2/hcd_intr.c2123
-rw-r--r--drivers/usb/dwc2/hcd_queue.c835
-rw-r--r--drivers/usb/dwc2/hw.h811
-rw-r--r--drivers/usb/dwc2/pci.c178
-rw-r--r--drivers/usb/dwc2/platform.c196
-rw-r--r--drivers/usb/dwc3/Kconfig96
-rw-r--r--drivers/usb/dwc3/Makefile35
-rw-r--r--drivers/usb/dwc3/core.c965
-rw-r--r--drivers/usb/dwc3/core.h977
-rw-r--r--drivers/usb/dwc3/debug.h30
-rw-r--r--drivers/usb/dwc3/debugfs.c690
-rw-r--r--drivers/usb/dwc3/dwc3-exynos.c281
-rw-r--r--drivers/usb/dwc3/dwc3-keystone.c202
-rw-r--r--drivers/usb/dwc3/dwc3-omap.c674
-rw-r--r--drivers/usb/dwc3/dwc3-pci.c237
-rw-r--r--drivers/usb/dwc3/ep0.c1055
-rw-r--r--drivers/usb/dwc3/gadget.c2907
-rw-r--r--drivers/usb/dwc3/gadget.h162
-rw-r--r--drivers/usb/dwc3/host.c67
-rw-r--r--drivers/usb/dwc3/io.h46
-rw-r--r--drivers/usb/dwc3/platform_data.h27
-rw-r--r--drivers/usb/early/Makefile5
-rw-r--r--drivers/usb/early/ehci-dbgp.c1097
-rw-r--r--drivers/usb/gadget/Kconfig934
-rw-r--r--drivers/usb/gadget/Makefile92
-rw-r--r--drivers/usb/gadget/acm_ms.c284
-rw-r--r--drivers/usb/gadget/amd5536udc.c401
-rw-r--r--drivers/usb/gadget/amd5536udc.h15
-rw-r--r--drivers/usb/gadget/at91_udc.c492
-rw-r--r--drivers/usb/gadget/at91_udc.h18
-rw-r--r--drivers/usb/gadget/atmel_usba_udc.c575
-rw-r--r--drivers/usb/gadget/atmel_usba_udc.h12
-rw-r--r--drivers/usb/gadget/audio.c190
-rw-r--r--drivers/usb/gadget/bcm63xx_udc.c2436
-rw-r--r--drivers/usb/gadget/cdc2.c166
-rw-r--r--drivers/usb/gadget/ci13xxx_udc.c2830
-rw-r--r--drivers/usb/gadget/ci13xxx_udc.h195
-rw-r--r--drivers/usb/gadget/composite.c1573
-rw-r--r--drivers/usb/gadget/config.c74
-rw-r--r--drivers/usb/gadget/configfs.c1574
-rw-r--r--drivers/usb/gadget/configfs.h19
-rw-r--r--drivers/usb/gadget/dbgp.c434
-rw-r--r--drivers/usb/gadget/dummy_hcd.c2302
-rw-r--r--drivers/usb/gadget/epautoconf.c240
-rw-r--r--drivers/usb/gadget/ether.c306
-rw-r--r--drivers/usb/gadget/f_acm.c369
-rw-r--r--drivers/usb/gadget/f_ecm.c466
-rw-r--r--drivers/usb/gadget/f_eem.c662
-rw-r--r--drivers/usb/gadget/f_fs.c3023
-rw-r--r--drivers/usb/gadget/f_hid.c763
-rw-r--r--drivers/usb/gadget/f_loopback.c339
-rw-r--r--drivers/usb/gadget/f_mass_storage.c3668
-rw-r--r--drivers/usb/gadget/f_mass_storage.h166
-rw-r--r--drivers/usb/gadget/f_midi.c986
-rw-r--r--drivers/usb/gadget/f_ncm.c1438
-rw-r--r--drivers/usb/gadget/f_obex.c276
-rw-r--r--drivers/usb/gadget/f_phonet.c355
-rw-r--r--drivers/usb/gadget/f_rndis.c579
-rw-r--r--drivers/usb/gadget/f_serial.c259
-rw-r--r--drivers/usb/gadget/f_sourcesink.c1005
-rw-r--r--drivers/usb/gadget/f_subset.c338
-rw-r--r--drivers/usb/gadget/f_uac1.c768
-rw-r--r--drivers/usb/gadget/f_uac2.c1354
-rw-r--r--drivers/usb/gadget/f_uvc.c836
-rw-r--r--drivers/usb/gadget/f_uvc.h27
-rw-r--r--drivers/usb/gadget/file_storage.c4281
-rw-r--r--drivers/usb/gadget/fotg210-udc.c1216
-rw-r--r--drivers/usb/gadget/fotg210.h253
-rw-r--r--drivers/usb/gadget/fsl_mxc_udc.c123
-rw-r--r--drivers/usb/gadget/fsl_qe_udc.c487
-rw-r--r--drivers/usb/gadget/fsl_qe_udc.h28
-rw-r--r--drivers/usb/gadget/fsl_udc_core.c2683
-rw-r--r--drivers/usb/gadget/fsl_usb2_udc.c2463
-rw-r--r--drivers/usb/gadget/fsl_usb2_udc.h57
-rw-r--r--drivers/usb/gadget/functions.c116
-rw-r--r--drivers/usb/gadget/fusb300_udc.c1501
-rw-r--r--drivers/usb/gadget/fusb300_udc.h678
-rw-r--r--drivers/usb/gadget/g_ffs.c582
-rw-r--r--drivers/usb/gadget/g_zero.h62
-rw-r--r--drivers/usb/gadget/gadget_chips.h233
-rw-r--r--drivers/usb/gadget/gmidi.c1297
-rw-r--r--drivers/usb/gadget/goku_udc.c287
-rw-r--r--drivers/usb/gadget/goku_udc.h2
-rw-r--r--drivers/usb/gadget/gr_udc.c2236
-rw-r--r--drivers/usb/gadget/gr_udc.h220
-rw-r--r--drivers/usb/gadget/hid.c266
-rw-r--r--drivers/usb/gadget/imx_udc.c1516
-rw-r--r--drivers/usb/gadget/imx_udc.h344
-rw-r--r--drivers/usb/gadget/inode.c259
-rw-r--r--drivers/usb/gadget/lh7a40x_udc.c2149
-rw-r--r--drivers/usb/gadget/lh7a40x_udc.h259
-rw-r--r--drivers/usb/gadget/lpc32xx_udc.c3425
-rw-r--r--drivers/usb/gadget/m66592-udc.c462
-rw-r--r--drivers/usb/gadget/m66592-udc.h134
-rw-r--r--drivers/usb/gadget/mass_storage.c276
-rw-r--r--drivers/usb/gadget/multi.c521
-rw-r--r--drivers/usb/gadget/mv_u3d.h320
-rw-r--r--drivers/usb/gadget/mv_u3d_core.c2070
-rw-r--r--drivers/usb/gadget/mv_udc.h313
-rw-r--r--drivers/usb/gadget/mv_udc_core.c2423
-rw-r--r--drivers/usb/gadget/ncm.c221
-rw-r--r--drivers/usb/gadget/ndis.h170
-rw-r--r--drivers/usb/gadget/net2272.c2710
-rw-r--r--drivers/usb/gadget/net2272.h601
-rw-r--r--drivers/usb/gadget/net2280.c265
-rw-r--r--drivers/usb/gadget/net2280.h9
-rw-r--r--drivers/usb/gadget/nokia.c360
-rw-r--r--drivers/usb/gadget/omap_udc.c588
-rw-r--r--drivers/usb/gadget/omap_udc.h3
-rw-r--r--drivers/usb/gadget/pch_udc.c3248
-rw-r--r--drivers/usb/gadget/printer.c770
-rw-r--r--drivers/usb/gadget/pxa25x_udc.c313
-rw-r--r--drivers/usb/gadget/pxa25x_udc.h22
-rw-r--r--drivers/usb/gadget/pxa27x_udc.c619
-rw-r--r--drivers/usb/gadget/pxa27x_udc.h36
-rw-r--r--drivers/usb/gadget/r8a66597-udc.c2029
-rw-r--r--drivers/usb/gadget/r8a66597-udc.h290
-rw-r--r--drivers/usb/gadget/rndis.c829
-rw-r--r--drivers/usb/gadget/rndis.h55
-rw-r--r--drivers/usb/gadget/s3c-hsudc.c1369
-rw-r--r--drivers/usb/gadget/s3c2410_udc.c387
-rw-r--r--drivers/usb/gadget/s3c2410_udc.h14
-rw-r--r--drivers/usb/gadget/serial.c199
-rw-r--r--drivers/usb/gadget/storage_common.c504
-rw-r--r--drivers/usb/gadget/storage_common.h225
-rw-r--r--drivers/usb/gadget/tcm_usb_gadget.c2473
-rw-r--r--drivers/usb/gadget/tcm_usb_gadget.h145
-rw-r--r--drivers/usb/gadget/u_ecm.h36
-rw-r--r--drivers/usb/gadget/u_eem.h36
-rw-r--r--drivers/usb/gadget/u_ether.c482
-rw-r--r--drivers/usb/gadget/u_ether.h233
-rw-r--r--drivers/usb/gadget/u_ether_configfs.h164
-rw-r--r--drivers/usb/gadget/u_f.c32
-rw-r--r--drivers/usb/gadget/u_f.h52
-rw-r--r--drivers/usb/gadget/u_fs.h263
-rw-r--r--drivers/usb/gadget/u_gether.h36
-rw-r--r--drivers/usb/gadget/u_ncm.h36
-rw-r--r--drivers/usb/gadget/u_os_desc.h90
-rw-r--r--drivers/usb/gadget/u_phonet.h14
-rw-r--r--drivers/usb/gadget/u_rndis.h46
-rw-r--r--drivers/usb/gadget/u_serial.c463
-rw-r--r--drivers/usb/gadget/u_serial.h16
-rw-r--r--drivers/usb/gadget/u_uac1.c330
-rw-r--r--drivers/usb/gadget/u_uac1.h56
-rw-r--r--drivers/usb/gadget/udc-core.c585
-rw-r--r--drivers/usb/gadget/usbstring.c77
-rw-r--r--drivers/usb/gadget/uvc.h202
-rw-r--r--drivers/usb/gadget/uvc_queue.c407
-rw-r--r--drivers/usb/gadget/uvc_queue.h63
-rw-r--r--drivers/usb/gadget/uvc_v4l2.c365
-rw-r--r--drivers/usb/gadget/uvc_video.c394
-rw-r--r--drivers/usb/gadget/webcam.c412
-rw-r--r--drivers/usb/gadget/zero.c376
-rw-r--r--drivers/usb/host/Kconfig591
-rw-r--r--drivers/usb/host/Makefile59
-rw-r--r--drivers/usb/host/bcma-hcd.c333
-rw-r--r--drivers/usb/host/ehci-atmel.c223
-rw-r--r--drivers/usb/host/ehci-au1xxx.c322
-rw-r--r--drivers/usb/host/ehci-dbg.c337
-rw-r--r--drivers/usb/host/ehci-exynos.c390
-rw-r--r--drivers/usb/host/ehci-fsl.c545
-rw-r--r--drivers/usb/host/ehci-fsl.h29
-rw-r--r--drivers/usb/host/ehci-grlib.c193
-rw-r--r--drivers/usb/host/ehci-hcd.c1010
-rw-r--r--drivers/usb/host/ehci-hub.c806
-rw-r--r--drivers/usb/host/ehci-ixp4xx.c153
-rw-r--r--drivers/usb/host/ehci-mem.c77
-rw-r--r--drivers/usb/host/ehci-msm.c232
-rw-r--r--drivers/usb/host/ehci-mv.c334
-rw-r--r--drivers/usb/host/ehci-mxc.c232
-rw-r--r--drivers/usb/host/ehci-octeon.c188
-rw-r--r--drivers/usb/host/ehci-omap.c327
-rw-r--r--drivers/usb/host/ehci-orion.c254
-rw-r--r--drivers/usb/host/ehci-pci.c413
-rw-r--r--drivers/usb/host/ehci-platform.c410
-rw-r--r--drivers/usb/host/ehci-pmcmsp.c330
-rw-r--r--drivers/usb/host/ehci-ppc-of.c119
-rw-r--r--drivers/usb/host/ehci-ps3.c64
-rw-r--r--drivers/usb/host/ehci-q.c957
-rw-r--r--drivers/usb/host/ehci-sched.c1828
-rw-r--r--drivers/usb/host/ehci-sead3.c187
-rw-r--r--drivers/usb/host/ehci-sh.c206
-rw-r--r--drivers/usb/host/ehci-spear.c195
-rw-r--r--drivers/usb/host/ehci-sysfs.c187
-rw-r--r--drivers/usb/host/ehci-tegra.c569
-rw-r--r--drivers/usb/host/ehci-tilegx.c217
-rw-r--r--drivers/usb/host/ehci-timer.c433
-rw-r--r--drivers/usb/host/ehci-w90x900.c154
-rw-r--r--drivers/usb/host/ehci-xilinx-of.c241
-rw-r--r--drivers/usb/host/ehci.h391
-rw-r--r--drivers/usb/host/fhci-dbg.c139
-rw-r--r--drivers/usb/host/fhci-hcd.c837
-rw-r--r--drivers/usb/host/fhci-hub.c345
-rw-r--r--drivers/usb/host/fhci-mem.c114
-rw-r--r--drivers/usb/host/fhci-q.c285
-rw-r--r--drivers/usb/host/fhci-sched.c898
-rw-r--r--drivers/usb/host/fhci-tds.c626
-rw-r--r--drivers/usb/host/fhci.h594
-rw-r--r--drivers/usb/host/fotg210-hcd.c5981
-rw-r--r--drivers/usb/host/fotg210.h742
-rw-r--r--drivers/usb/host/fsl-mph-dr-of.c340
-rw-r--r--drivers/usb/host/fusbh200-hcd.c5894
-rw-r--r--drivers/usb/host/fusbh200.h731
-rw-r--r--drivers/usb/host/hwa-hc.c161
-rw-r--r--drivers/usb/host/imx21-dbg.c531
-rw-r--r--drivers/usb/host/imx21-hcd.c1947
-rw-r--r--drivers/usb/host/imx21-hcd.h444
-rw-r--r--drivers/usb/host/isp116x-hcd.c53
-rw-r--r--drivers/usb/host/isp116x.h23
-rw-r--r--drivers/usb/host/isp1362-hcd.c2838
-rw-r--r--drivers/usb/host/isp1362.h1014
-rw-r--r--drivers/usb/host/isp1760-hcd.c2544
-rw-r--r--drivers/usb/host/isp1760-hcd.h144
-rw-r--r--drivers/usb/host/isp1760-if.c262
-rw-r--r--drivers/usb/host/max3421-hcd.c1957
-rw-r--r--drivers/usb/host/octeon2-common.c200
-rw-r--r--drivers/usb/host/ohci-at91.c588
-rw-r--r--drivers/usb/host/ohci-au1xxx.c318
-rw-r--r--drivers/usb/host/ohci-da8xx.c442
-rw-r--r--drivers/usb/host/ohci-dbg.c139
-rw-r--r--drivers/usb/host/ohci-ep93xx.c214
-rw-r--r--drivers/usb/host/ohci-exynos.c363
-rw-r--r--drivers/usb/host/ohci-hcd.c502
-rw-r--r--drivers/usb/host/ohci-hub.c128
-rw-r--r--drivers/usb/host/ohci-jz4740.c253
-rw-r--r--drivers/usb/host/ohci-lh7a404.c253
-rw-r--r--drivers/usb/host/ohci-nxp.c351
-rw-r--r--drivers/usb/host/ohci-octeon.c202
-rw-r--r--drivers/usb/host/ohci-omap.c231
-rw-r--r--drivers/usb/host/ohci-omap3.c211
-rw-r--r--drivers/usb/host/ohci-pci.c312
-rw-r--r--drivers/usb/host/ohci-platform.c395
-rw-r--r--drivers/usb/host/ohci-pnx4008.c453
-rw-r--r--drivers/usb/host/ohci-pnx8550.c242
-rw-r--r--drivers/usb/host/ohci-ppc-of.c83
-rw-r--r--drivers/usb/host/ohci-ppc-soc.c215
-rw-r--r--drivers/usb/host/ohci-ps3.c19
-rw-r--r--drivers/usb/host/ohci-pxa27x.c457
-rw-r--r--drivers/usb/host/ohci-q.c95
-rw-r--r--drivers/usb/host/ohci-s3c2410.c244
-rw-r--r--drivers/usb/host/ohci-sa1111.c309
-rw-r--r--drivers/usb/host/ohci-sh.c143
-rw-r--r--drivers/usb/host/ohci-sm501.c33
-rw-r--r--drivers/usb/host/ohci-spear.c209
-rw-r--r--drivers/usb/host/ohci-ssb.c214
-rw-r--r--drivers/usb/host/ohci-tilegx.c206
-rw-r--r--drivers/usb/host/ohci-tmio.c37
-rw-r--r--drivers/usb/host/ohci.h80
-rw-r--r--drivers/usb/host/oxu210hp-hcd.c147
-rw-r--r--drivers/usb/host/oxu210hp.h8
-rw-r--r--drivers/usb/host/pci-quirks.c914
-rw-r--r--drivers/usb/host/pci-quirks.h19
-rw-r--r--drivers/usb/host/r8a66597-hcd.c564
-rw-r--r--drivers/usb/host/r8a66597.h519
-rw-r--r--drivers/usb/host/sl811-hcd.c244
-rw-r--r--drivers/usb/host/sl811.h21
-rw-r--r--drivers/usb/host/sl811_cs.c149
-rw-r--r--drivers/usb/host/ssb-hcd.c278
-rw-r--r--drivers/usb/host/u132-hcd.c55
-rw-r--r--drivers/usb/host/uhci-debug.c293
-rw-r--r--drivers/usb/host/uhci-grlib.c207
-rw-r--r--drivers/usb/host/uhci-hcd.c686
-rw-r--r--drivers/usb/host/uhci-hcd.h259
-rw-r--r--drivers/usb/host/uhci-hub.c102
-rw-r--r--drivers/usb/host/uhci-pci.c306
-rw-r--r--drivers/usb/host/uhci-platform.c165
-rw-r--r--drivers/usb/host/uhci-q.c277
-rw-r--r--drivers/usb/host/whci/Kbuild2
-rw-r--r--drivers/usb/host/whci/asl.c64
-rw-r--r--drivers/usb/host/whci/debug.c30
-rw-r--r--drivers/usb/host/whci/hcd.c48
-rw-r--r--drivers/usb/host/whci/hw.c15
-rw-r--r--drivers/usb/host/whci/init.c3
-rw-r--r--drivers/usb/host/whci/int.c1
-rw-r--r--drivers/usb/host/whci/pzl.c66
-rw-r--r--drivers/usb/host/whci/qset.c384
-rw-r--r--drivers/usb/host/whci/whcd.h11
-rw-r--r--drivers/usb/host/whci/whci-hc.h16
-rw-r--r--drivers/usb/host/whci/wusb.c1
-rw-r--r--drivers/usb/host/xhci-dbg.c596
-rw-r--r--drivers/usb/host/xhci-ext-caps.h156
-rw-r--r--drivers/usb/host/xhci-hub.c1252
-rw-r--r--drivers/usb/host/xhci-mem.c2550
-rw-r--r--drivers/usb/host/xhci-mvebu.c72
-rw-r--r--drivers/usb/host/xhci-mvebu.h21
-rw-r--r--drivers/usb/host/xhci-pci.c415
-rw-r--r--drivers/usb/host/xhci-plat.c297
-rw-r--r--drivers/usb/host/xhci-ring.c3996
-rw-r--r--drivers/usb/host/xhci-trace.c15
-rw-r--r--drivers/usb/host/xhci-trace.h151
-rw-r--r--drivers/usb/host/xhci.c4923
-rw-r--r--drivers/usb/host/xhci.h1891
-rw-r--r--drivers/usb/image/Kconfig4
-rw-r--r--drivers/usb/image/mdc800.c33
-rw-r--r--drivers/usb/image/microtek.c81
-rw-r--r--drivers/usb/misc/Kconfig111
-rw-r--r--drivers/usb/misc/Makefile53
-rw-r--r--drivers/usb/misc/adutux.c306
-rw-r--r--drivers/usb/misc/appledisplay.c53
-rw-r--r--drivers/usb/misc/berry_charge.c183
-rw-r--r--drivers/usb/misc/cypress_cy7c63.c32
-rw-r--r--drivers/usb/misc/cytherm.c30
-rw-r--r--drivers/usb/misc/ehset.c152
-rw-r--r--drivers/usb/misc/emi26.c78
-rw-r--r--drivers/usb/misc/emi62.c87
-rw-r--r--drivers/usb/misc/ezusb.c166
-rw-r--r--drivers/usb/misc/ftdi-elan.c4894
-rw-r--r--drivers/usb/misc/idmouse.c60
-rw-r--r--drivers/usb/misc/iowarrior.c114
-rw-r--r--drivers/usb/misc/isight_firmware.c24
-rw-r--r--drivers/usb/misc/ldusb.c143
-rw-r--r--drivers/usb/misc/legousbtower.c232
-rw-r--r--drivers/usb/misc/phidget.c43
-rw-r--r--drivers/usb/misc/phidget.h12
-rw-r--r--drivers/usb/misc/phidgetkit.c740
-rw-r--r--drivers/usb/misc/phidgetmotorcontrol.c465
-rw-r--r--drivers/usb/misc/phidgetservo.c375
-rw-r--r--drivers/usb/misc/rio500.c113
-rw-r--r--drivers/usb/misc/sisusbvga/Kconfig3
-rw-r--r--drivers/usb/misc/sisusbvga/Makefile3
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb.c100
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb.h2
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb_con.c27
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb_init.c3
-rw-r--r--drivers/usb/misc/trancevibrator.c27
-rw-r--r--drivers/usb/misc/usb3503.c408
-rw-r--r--drivers/usb/misc/usblcd.c194
-rw-r--r--drivers/usb/misc/usbled.c200
-rw-r--r--drivers/usb/misc/usbsevseg.c113
-rw-r--r--drivers/usb/misc/usbtest.c1362
-rw-r--r--drivers/usb/misc/uss720.c86
-rw-r--r--drivers/usb/misc/vstusb.c782
-rw-r--r--drivers/usb/misc/yurex.c546
-rw-r--r--drivers/usb/mon/Kconfig5
-rw-r--r--drivers/usb/mon/Makefile2
-rw-r--r--drivers/usb/mon/mon_bin.c358
-rw-r--r--drivers/usb/mon/mon_dma.c95
-rw-r--r--drivers/usb/mon/mon_main.c7
-rw-r--r--drivers/usb/mon/mon_stat.c4
-rw-r--r--drivers/usb/mon/mon_text.c55
-rw-r--r--drivers/usb/mon/usb_mon.h14
-rw-r--r--drivers/usb/musb/Kconfig234
-rw-r--r--drivers/usb/musb/Makefile83
-rw-r--r--drivers/usb/musb/am35x.c623
-rw-r--r--drivers/usb/musb/blackfin.c501
-rw-r--r--drivers/usb/musb/blackfin.h39
-rw-r--r--drivers/usb/musb/cppi_dma.c213
-rw-r--r--drivers/usb/musb/cppi_dma.h7
-rw-r--r--drivers/usb/musb/da8xx.c590
-rw-r--r--drivers/usb/musb/davinci.c386
-rw-r--r--drivers/usb/musb/davinci.h23
-rw-r--r--drivers/usb/musb/jz4740.c201
-rw-r--r--drivers/usb/musb/musb_am335x.c43
-rw-r--r--drivers/usb/musb/musb_core.c1774
-rw-r--r--drivers/usb/musb/musb_core.h359
-rw-r--r--drivers/usb/musb/musb_cppi41.c744
-rw-r--r--drivers/usb/musb/musb_debug.h24
-rw-r--r--drivers/usb/musb/musb_debugfs.c276
-rw-r--r--drivers/usb/musb/musb_dma.h38
-rw-r--r--drivers/usb/musb/musb_dsps.c830
-rw-r--r--drivers/usb/musb/musb_gadget.c1427
-rw-r--r--drivers/usb/musb/musb_gadget.h59
-rw-r--r--drivers/usb/musb/musb_gadget_ep0.c232
-rw-r--r--drivers/usb/musb/musb_host.c1588
-rw-r--r--drivers/usb/musb/musb_host.h70
-rw-r--r--drivers/usb/musb/musb_io.h23
-rw-r--r--drivers/usb/musb/musb_regs.h162
-rw-r--r--drivers/usb/musb/musb_virthub.c196
-rw-r--r--drivers/usb/musb/musbhsdma.c177
-rw-r--r--drivers/usb/musb/musbhsdma.h30
-rw-r--r--drivers/usb/musb/omap2430.c683
-rw-r--r--drivers/usb/musb/omap2430.h34
-rw-r--r--drivers/usb/musb/tusb6010.c387
-rw-r--r--drivers/usb/musb/tusb6010.h9
-rw-r--r--drivers/usb/musb/tusb6010_omap.c98
-rw-r--r--drivers/usb/musb/ux500.c399
-rw-r--r--drivers/usb/musb/ux500_dma.c412
-rw-r--r--drivers/usb/otg/Kconfig54
-rw-r--r--drivers/usb/otg/Makefile15
-rw-r--r--drivers/usb/otg/gpio_vbus.c335
-rw-r--r--drivers/usb/otg/isp1301_omap.c1683
-rw-r--r--drivers/usb/otg/otg.c65
-rw-r--r--drivers/usb/otg/twl4030-usb.c721
-rw-r--r--drivers/usb/phy/Kconfig232
-rw-r--r--drivers/usb/phy/Makefile31
-rw-r--r--drivers/usb/phy/am35x-phy-control.h21
-rw-r--r--drivers/usb/phy/of.c47
-rw-r--r--drivers/usb/phy/phy-ab8500-usb.c1526
-rw-r--r--drivers/usb/phy/phy-am335x-control.c184
-rw-r--r--drivers/usb/phy/phy-am335x.c153
-rw-r--r--drivers/usb/phy/phy-fsl-usb.c1228
-rw-r--r--drivers/usb/phy/phy-fsl-usb.h406
-rw-r--r--drivers/usb/phy/phy-generic.c309
-rw-r--r--drivers/usb/phy/phy-generic.h21
-rw-r--r--drivers/usb/phy/phy-gpio-vbus-usb.c417
-rw-r--r--drivers/usb/phy/phy-isp1301-omap.c1651
-rw-r--r--drivers/usb/phy/phy-isp1301.c163
-rw-r--r--drivers/usb/phy/phy-keystone.c136
-rw-r--r--drivers/usb/phy/phy-msm-usb.c1850
-rw-r--r--drivers/usb/phy/phy-mv-usb.c907
-rw-r--r--drivers/usb/phy/phy-mv-usb.h164
-rw-r--r--drivers/usb/phy/phy-mxs-usb.c504
-rw-r--r--drivers/usb/phy/phy-omap-otg.c169
-rw-r--r--drivers/usb/phy/phy-rcar-gen2-usb.c248
-rw-r--r--drivers/usb/phy/phy-rcar-usb.c251
-rw-r--r--drivers/usb/phy/phy-samsung-usb.c241
-rw-r--r--drivers/usb/phy/phy-samsung-usb.h349
-rw-r--r--drivers/usb/phy/phy-samsung-usb2.c541
-rw-r--r--drivers/usb/phy/phy-samsung-usb3.c350
-rw-r--r--drivers/usb/phy/phy-tahvo.c457
-rw-r--r--drivers/usb/phy/phy-tegra-usb.c1099
-rw-r--r--drivers/usb/phy/phy-twl6030-usb.c455
-rw-r--r--drivers/usb/phy/phy-ulpi-viewport.c82
-rw-r--r--drivers/usb/phy/phy-ulpi.c286
-rw-r--r--drivers/usb/phy/phy.c443
-rw-r--r--drivers/usb/renesas_usbhs/Kconfig15
-rw-r--r--drivers/usb/renesas_usbhs/Makefile15
-rw-r--r--drivers/usb/renesas_usbhs/common.c645
-rw-r--r--drivers/usb/renesas_usbhs/common.h325
-rw-r--r--drivers/usb/renesas_usbhs/fifo.c1187
-rw-r--r--drivers/usb/renesas_usbhs/fifo.h102
-rw-r--r--drivers/usb/renesas_usbhs/mod.c387
-rw-r--r--drivers/usb/renesas_usbhs/mod.h172
-rw-r--r--drivers/usb/renesas_usbhs/mod_gadget.c1025
-rw-r--r--drivers/usb/renesas_usbhs/mod_host.c1586
-rw-r--r--drivers/usb/renesas_usbhs/pipe.c826
-rw-r--r--drivers/usb/renesas_usbhs/pipe.h116
-rw-r--r--drivers/usb/serial/ChangeLog.history730
-rw-r--r--drivers/usb/serial/Kconfig222
-rw-r--r--drivers/usb/serial/Makefile25
-rw-r--r--drivers/usb/serial/aircable.c577
-rw-r--r--drivers/usb/serial/ark3116.c951
-rw-r--r--drivers/usb/serial/belkin_sa.c301
-rw-r--r--drivers/usb/serial/belkin_sa.h10
-rw-r--r--drivers/usb/serial/bus.c93
-rw-r--r--drivers/usb/serial/ch341.c490
-rw-r--r--drivers/usb/serial/console.c113
-rw-r--r--drivers/usb/serial/cp2101.c778
-rw-r--r--drivers/usb/serial/cp210x.c885
-rw-r--r--drivers/usb/serial/cyberjack.c258
-rw-r--r--drivers/usb/serial/cypress_m8.c965
-rw-r--r--drivers/usb/serial/cypress_m8.h77
-rw-r--r--drivers/usb/serial/digi_acceleport.c737
-rw-r--r--drivers/usb/serial/empeg.c471
-rw-r--r--drivers/usb/serial/ezusb.c61
-rw-r--r--drivers/usb/serial/f81232.c334
-rw-r--r--drivers/usb/serial/ftdi_sio.c2047
-rw-r--r--drivers/usb/serial/ftdi_sio.h998
-rw-r--r--drivers/usb/serial/ftdi_sio_ids.h1377
-rw-r--r--drivers/usb/serial/funsoft.c69
-rw-r--r--drivers/usb/serial/garmin_gps.c493
-rw-r--r--drivers/usb/serial/generic.c678
-rw-r--r--drivers/usb/serial/hp4x.c86
-rw-r--r--drivers/usb/serial/io_edgeport.c1057
-rw-r--r--drivers/usb/serial/io_edgeport.h18
-rw-r--r--drivers/usb/serial/io_ionsp.h95
-rw-r--r--drivers/usb/serial/io_tables.h54
-rw-r--r--drivers/usb/serial/io_ti.c1258
-rw-r--r--drivers/usb/serial/io_ti.h92
-rw-r--r--drivers/usb/serial/io_usbvend.h89
-rw-r--r--drivers/usb/serial/ipaq.c509
-rw-r--r--drivers/usb/serial/ipaq.h54
-rw-r--r--drivers/usb/serial/ipw.c335
-rw-r--r--drivers/usb/serial/ir-usb.c409
-rw-r--r--drivers/usb/serial/iuu_phoenix.c598
-rw-r--r--drivers/usb/serial/keyspan.c1118
-rw-r--r--drivers/usb/serial/keyspan.h78
-rw-r--r--drivers/usb/serial/keyspan_pda.c376
-rw-r--r--drivers/usb/serial/keyspan_usa26msg.h2
-rw-r--r--drivers/usb/serial/kl5kusb105.c698
-rw-r--r--drivers/usb/serial/kl5kusb105.h47
-rw-r--r--drivers/usb/serial/kobil_sct.c407
-rw-r--r--drivers/usb/serial/kobil_sct.h75
-rw-r--r--drivers/usb/serial/mct_u232.c432
-rw-r--r--drivers/usb/serial/mct_u232.h265
-rw-r--r--drivers/usb/serial/metro-usb.c399
-rw-r--r--drivers/usb/serial/mos7720.c1777
-rw-r--r--drivers/usb/serial/mos7840.c1812
-rw-r--r--drivers/usb/serial/moto_modem.c70
-rw-r--r--drivers/usb/serial/mxuport.c1393
-rw-r--r--drivers/usb/serial/navman.c78
-rw-r--r--drivers/usb/serial/omninet.c273
-rw-r--r--drivers/usb/serial/opticon.c595
-rw-r--r--drivers/usb/serial/option.c2493
-rw-r--r--drivers/usb/serial/oti6858.c715
-rw-r--r--drivers/usb/serial/pl2303.c1187
-rw-r--r--drivers/usb/serial/pl2303.h38
-rw-r--r--drivers/usb/serial/qcaux.c90
-rw-r--r--drivers/usb/serial/qcserial.c365
-rw-r--r--drivers/usb/serial/quatech2.c1036
-rw-r--r--drivers/usb/serial/safe_serial.c315
-rw-r--r--drivers/usb/serial/siemens_mpi.c77
-rw-r--r--drivers/usb/serial/sierra.c965
-rw-r--r--drivers/usb/serial/spcp8x5.c868
-rw-r--r--drivers/usb/serial/ssu100.c571
-rw-r--r--drivers/usb/serial/symbolserial.c209
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.c882
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.h14
-rw-r--r--drivers/usb/serial/usb-serial-simple.c110
-rw-r--r--drivers/usb/serial/usb-serial.c1230
-rw-r--r--drivers/usb/serial/usb-wwan.h64
-rw-r--r--drivers/usb/serial/usb_debug.c75
-rw-r--r--drivers/usb/serial/usb_wwan.c695
-rw-r--r--drivers/usb/serial/visor.c586
-rw-r--r--drivers/usb/serial/visor.h11
-rw-r--r--drivers/usb/serial/whiteheat.c976
-rw-r--r--drivers/usb/serial/wishbone-serial.c94
-rw-r--r--drivers/usb/serial/xsens_mt.c85
-rw-r--r--drivers/usb/serial/zte_ev.c317
-rw-r--r--drivers/usb/storage/Kconfig105
-rw-r--r--drivers/usb/storage/Makefile50
-rw-r--r--drivers/usb/storage/alauda.c290
-rw-r--r--drivers/usb/storage/alauda.h100
-rw-r--r--drivers/usb/storage/cypress_atacb.c110
-rw-r--r--drivers/usb/storage/cypress_atacb.h25
-rw-r--r--drivers/usb/storage/datafab.c157
-rw-r--r--drivers/usb/storage/datafab.h40
-rw-r--r--drivers/usb/storage/debug.c36
-rw-r--r--drivers/usb/storage/debug.h23
-rw-r--r--drivers/usb/storage/ene_ub6250.c2420
-rw-r--r--drivers/usb/storage/freecom.c197
-rw-r--r--drivers/usb/storage/freecom.h34
-rw-r--r--drivers/usb/storage/initializers.c22
-rw-r--r--drivers/usb/storage/isd200.c570
-rw-r--r--drivers/usb/storage/isd200.h31
-rw-r--r--drivers/usb/storage/jumpshot.c164
-rw-r--r--drivers/usb/storage/jumpshot.h39
-rw-r--r--drivers/usb/storage/karma.c97
-rw-r--r--drivers/usb/storage/karma.h7
-rw-r--r--drivers/usb/storage/libusual.c274
-rw-r--r--drivers/usb/storage/onetouch.c103
-rw-r--r--drivers/usb/storage/onetouch.h9
-rw-r--r--drivers/usb/storage/option_ms.c144
-rw-r--r--drivers/usb/storage/protocol.c98
-rw-r--r--drivers/usb/storage/realtek_cr.c1071
-rw-r--r--drivers/usb/storage/scsiglue.c198
-rw-r--r--drivers/usb/storage/sddr09.c289
-rw-r--r--drivers/usb/storage/sddr09.h38
-rw-r--r--drivers/usb/storage/sddr55.c175
-rw-r--r--drivers/usb/storage/sddr55.h32
-rw-r--r--drivers/usb/storage/shuttle_usbat.c330
-rw-r--r--drivers/usb/storage/shuttle_usbat.h123
-rw-r--r--drivers/usb/storage/sierra_ms.c54
-rw-r--r--drivers/usb/storage/transport.c371
-rw-r--r--drivers/usb/storage/transport.h39
-rw-r--r--drivers/usb/storage/uas-detect.h96
-rw-r--r--drivers/usb/storage/uas.c1261
-rw-r--r--drivers/usb/storage/unusual_alauda.h31
-rw-r--r--drivers/usb/storage/unusual_cypress.h39
-rw-r--r--drivers/usb/storage/unusual_datafab.h98
-rw-r--r--drivers/usb/storage/unusual_devs.h1267
-rw-r--r--drivers/usb/storage/unusual_ene_ub6250.h26
-rw-r--r--drivers/usb/storage/unusual_freecom.h26
-rw-r--r--drivers/usb/storage/unusual_isd200.h57
-rw-r--r--drivers/usb/storage/unusual_jumpshot.h27
-rw-r--r--drivers/usb/storage/unusual_karma.h26
-rw-r--r--drivers/usb/storage/unusual_onetouch.h36
-rw-r--r--drivers/usb/storage/unusual_realtek.h41
-rw-r--r--drivers/usb/storage/unusual_sddr09.h56
-rw-r--r--drivers/usb/storage/unusual_sddr55.h44
-rw-r--r--drivers/usb/storage/unusual_uas.h52
-rw-r--r--drivers/usb/storage/unusual_usbat.h43
-rw-r--r--drivers/usb/storage/usb.c792
-rw-r--r--drivers/usb/storage/usb.h37
-rw-r--r--drivers/usb/storage/usual-tables.c123
-rw-r--r--drivers/usb/usb-skeleton.c331
-rw-r--r--drivers/usb/wusbcore/Kconfig8
-rw-r--r--drivers/usb/wusbcore/Makefile19
-rw-r--r--drivers/usb/wusbcore/cbaf.c51
-rw-r--r--drivers/usb/wusbcore/crypto.c9
-rw-r--r--drivers/usb/wusbcore/devconnect.c134
-rw-r--r--drivers/usb/wusbcore/mmc.c46
-rw-r--r--drivers/usb/wusbcore/pal.c6
-rw-r--r--drivers/usb/wusbcore/reservation.c6
-rw-r--r--drivers/usb/wusbcore/rh.c61
-rw-r--r--drivers/usb/wusbcore/security.c186
-rw-r--r--drivers/usb/wusbcore/wa-hc.c24
-rw-r--r--drivers/usb/wusbcore/wa-hc.h100
-rw-r--r--drivers/usb/wusbcore/wa-nep.c14
-rw-r--r--drivers/usb/wusbcore/wa-rpipe.c115
-rw-r--r--drivers/usb/wusbcore/wa-xfer.c2091
-rw-r--r--drivers/usb/wusbcore/wusbhc.c160
-rw-r--r--drivers/usb/wusbcore/wusbhc.h31
-rw-r--r--drivers/uwb/Kconfig27
-rw-r--r--drivers/uwb/Makefile1
-rw-r--r--drivers/uwb/address.c6
-rw-r--r--drivers/uwb/allocator.c11
-rw-r--r--drivers/uwb/beacon.c17
-rw-r--r--drivers/uwb/driver.c7
-rw-r--r--drivers/uwb/drp-ie.c5
-rw-r--r--drivers/uwb/drp.c315
-rw-r--r--drivers/uwb/est.c13
-rw-r--r--drivers/uwb/hwa-rc.c45
-rw-r--r--drivers/uwb/i1480/Makefile1
-rw-r--r--drivers/uwb/i1480/dfu/dfu.c1
-rw-r--r--drivers/uwb/i1480/dfu/mac.c1
-rw-r--r--drivers/uwb/i1480/dfu/usb.c37
-rw-r--r--drivers/uwb/i1480/i1480-est.c6
-rw-r--r--drivers/uwb/i1480/i1480-wlp.h200
-rw-r--r--drivers/uwb/i1480/i1480u-wlp/Makefile8
-rw-r--r--drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.h282
-rw-r--r--drivers/uwb/i1480/i1480u-wlp/lc.c423
-rw-r--r--drivers/uwb/i1480/i1480u-wlp/netdev.c330
-rw-r--r--drivers/uwb/i1480/i1480u-wlp/rx.c473
-rw-r--r--drivers/uwb/i1480/i1480u-wlp/sysfs.c407
-rw-r--r--drivers/uwb/i1480/i1480u-wlp/tx.c582
-rw-r--r--drivers/uwb/ie-rcv.c2
-rw-r--r--drivers/uwb/ie.c2
-rw-r--r--drivers/uwb/lc-dev.c21
-rw-r--r--drivers/uwb/lc-rc.c27
-rw-r--r--drivers/uwb/neh.c16
-rw-r--r--drivers/uwb/pal.c43
-rw-r--r--drivers/uwb/radio.c9
-rw-r--r--drivers/uwb/reset.c26
-rw-r--r--drivers/uwb/rsv.c64
-rw-r--r--drivers/uwb/scan.c4
-rw-r--r--drivers/uwb/umc-bus.c22
-rw-r--r--drivers/uwb/umc-dev.c12
-rw-r--r--drivers/uwb/umc-drv.c1
-rw-r--r--drivers/uwb/uwb-debug.c15
-rw-r--r--drivers/uwb/uwb-internal.h8
-rw-r--r--drivers/uwb/uwbd.c9
-rw-r--r--drivers/uwb/whc-rc.c9
-rw-r--r--drivers/uwb/whci.c24
-rw-r--r--drivers/uwb/wlp/Makefile10
-rw-r--r--drivers/uwb/wlp/driver.c43
-rw-r--r--drivers/uwb/wlp/eda.c414
-rw-r--r--drivers/uwb/wlp/messages.c1781
-rw-r--r--drivers/uwb/wlp/sysfs.c709
-rw-r--r--drivers/uwb/wlp/txrx.c353
-rw-r--r--drivers/uwb/wlp/wlp-internal.h224
-rw-r--r--drivers/uwb/wlp/wlp-lc.c559
-rw-r--r--drivers/uwb/wlp/wss-lc.c961
-rw-r--r--drivers/vfio/Kconfig23
-rw-r--r--drivers/vfio/Makefile4
-rw-r--r--drivers/vfio/pci/Kconfig18
-rw-r--r--drivers/vfio/pci/Makefile4
-rw-r--r--drivers/vfio/pci/vfio_pci.c940
-rw-r--r--drivers/vfio/pci/vfio_pci_config.c1595
-rw-r--r--drivers/vfio/pci/vfio_pci_intrs.c838
-rw-r--r--drivers/vfio/pci/vfio_pci_private.h93
-rw-r--r--drivers/vfio/pci/vfio_pci_rdwr.c238
-rw-r--r--drivers/vfio/vfio.c1509
-rw-r--r--drivers/vfio/vfio_iommu_spapr_tce.c377
-rw-r--r--drivers/vfio/vfio_iommu_type1.c976
-rw-r--r--drivers/vhost/Kconfig34
-rw-r--r--drivers/vhost/Makefile8
-rw-r--r--drivers/vhost/net.c1164
-rw-r--r--drivers/vhost/scsi.c2367
-rw-r--r--drivers/vhost/test.c338
-rw-r--r--drivers/vhost/test.h7
-rw-r--r--drivers/vhost/vhost.c1558
-rw-r--r--drivers/vhost/vhost.h179
-rw-r--r--drivers/vhost/vringh.c1010
-rw-r--r--drivers/video/Kconfig2124
-rw-r--r--drivers/video/Makefile141
-rw-r--r--drivers/video/amba-clcd.c535
-rw-r--r--drivers/video/amifb.c3805
-rw-r--r--drivers/video/atmel_lcdfb.c1111
-rw-r--r--drivers/video/aty/radeon_i2c.c166
-rw-r--r--drivers/video/aty/radeon_pm.c2915
-rw-r--r--drivers/video/au1100fb.c770
-rw-r--r--drivers/video/backlight/88pm860x_bl.c278
-rw-r--r--drivers/video/backlight/Kconfig326
-rw-r--r--drivers/video/backlight/Makefile74
-rw-r--r--drivers/video/backlight/aat2870_bl.c240
-rw-r--r--drivers/video/backlight/adp5520_bl.c389
-rw-r--r--drivers/video/backlight/adp8860_bl.c819
-rw-r--r--drivers/video/backlight/adp8870_bl.c991
-rw-r--r--drivers/video/backlight/ams369fg06.c577
-rw-r--r--drivers/video/backlight/apple_bl.c257
-rw-r--r--drivers/video/backlight/as3711_bl.c480
-rw-r--r--drivers/video/backlight/atmel-pwm-bl.c143
-rw-r--r--drivers/video/backlight/backlight.c357
-rw-r--r--drivers/video/backlight/bd6107.c213
-rw-r--r--drivers/video/backlight/corgi_lcd.c151
-rw-r--r--drivers/video/backlight/cr_bllcd.c34
-rw-r--r--drivers/video/backlight/da903x.c203
-rw-r--r--drivers/video/backlight/da903x_bl.c176
-rw-r--r--drivers/video/backlight/da9052_bl.c185
-rw-r--r--drivers/video/backlight/ep93xx_bl.c142
-rw-r--r--drivers/video/backlight/generic_bl.c40
-rw-r--r--drivers/video/backlight/gpio_backlight.c171
-rw-r--r--drivers/video/backlight/hp680_bl.c37
-rw-r--r--drivers/video/backlight/hx8357.c682
-rw-r--r--drivers/video/backlight/ili922x.c550
-rw-r--r--drivers/video/backlight/ili9320.c75
-rw-r--r--drivers/video/backlight/ili9320.h4
-rw-r--r--drivers/video/backlight/jornada720_bl.c154
-rw-r--r--drivers/video/backlight/jornada720_lcd.c134
-rw-r--r--drivers/video/backlight/kb3886_bl.c49
-rw-r--r--drivers/video/backlight/l4f00242t03.c269
-rw-r--r--drivers/video/backlight/lcd.c153
-rw-r--r--drivers/video/backlight/ld9040.c818
-rw-r--r--drivers/video/backlight/ld9040_gamma.h202
-rw-r--r--drivers/video/backlight/lm3533_bl.c412
-rw-r--r--drivers/video/backlight/lm3630a_bl.c483
-rw-r--r--drivers/video/backlight/lm3639_bl.c434
-rw-r--r--drivers/video/backlight/lms283gf05.c204
-rw-r--r--drivers/video/backlight/lms501kf03.c437
-rw-r--r--drivers/video/backlight/locomolcd.c80
-rw-r--r--drivers/video/backlight/lp855x_bl.c505
-rw-r--r--drivers/video/backlight/lp8788_bl.c332
-rw-r--r--drivers/video/backlight/ltv350qv.c80
-rw-r--r--drivers/video/backlight/lv5207lp.c170
-rw-r--r--drivers/video/backlight/max8925_bl.c210
-rw-r--r--drivers/video/backlight/mbp_nvidia_bl.c115
-rw-r--r--drivers/video/backlight/omap1_bl.c81
-rw-r--r--drivers/video/backlight/ot200_bl.c166
-rw-r--r--drivers/video/backlight/pandora_bl.c161
-rw-r--r--drivers/video/backlight/pcf50633-backlight.c163
-rw-r--r--drivers/video/backlight/platform_lcd.c84
-rw-r--r--drivers/video/backlight/progear_bl.c148
-rw-r--r--drivers/video/backlight/pwm_bl.c369
-rw-r--r--drivers/video/backlight/s6e63m0.c864
-rw-r--r--drivers/video/backlight/s6e63m0_gamma.h266
-rw-r--r--drivers/video/backlight/tdo24m.c113
-rw-r--r--drivers/video/backlight/tosa_bl.c80
-rw-r--r--drivers/video/backlight/tosa_lcd.c93
-rw-r--r--drivers/video/backlight/tps65217_bl.c341
-rw-r--r--drivers/video/backlight/vgg2432a4.c55
-rw-r--r--drivers/video/backlight/wm831x_bl.c230
-rw-r--r--drivers/video/cirrusfb.c3167
-rw-r--r--drivers/video/clps711xfb.c441
-rw-r--r--drivers/video/console/.gitignore2
-rw-r--r--drivers/video/console/Kconfig122
-rw-r--r--drivers/video/console/Makefile42
-rw-r--r--drivers/video/console/bitblit.c13
-rw-r--r--drivers/video/console/dummycon.c1
-rw-r--r--drivers/video/console/fbcon.c290
-rw-r--r--drivers/video/console/fbcon.h1
-rw-r--r--drivers/video/console/fbcon_ccw.c3
-rw-r--r--drivers/video/console/fbcon_cw.c6
-rw-r--r--drivers/video/console/fbcon_rotate.c1
-rw-r--r--drivers/video/console/fbcon_rotate.h2
-rw-r--r--drivers/video/console/fbcon_ud.c3
-rw-r--r--drivers/video/console/font_10x18.c5146
-rw-r--r--drivers/video/console/font_6x11.c3352
-rw-r--r--drivers/video/console/font_7x14.c4118
-rw-r--r--drivers/video/console/font_8x16.c4633
-rw-r--r--drivers/video/console/font_8x8.c2583
-rw-r--r--drivers/video/console/font_acorn_8x8.c275
-rw-r--r--drivers/video/console/font_mini_4x6.c2158
-rw-r--r--drivers/video/console/font_pearl_8x8.c2587
-rw-r--r--drivers/video/console/font_sun12x22.c6165
-rw-r--r--drivers/video/console/font_sun8x16.c275
-rw-r--r--drivers/video/console/fonts.c153
-rw-r--r--drivers/video/console/mdacon.c9
-rw-r--r--drivers/video/console/newport_con.c86
-rw-r--r--drivers/video/console/prom.uni11
-rw-r--r--drivers/video/console/promcon.c598
-rw-r--r--drivers/video/console/softcursor.c3
-rw-r--r--drivers/video/console/sticon.c8
-rw-r--r--drivers/video/console/sticore.c262
-rw-r--r--drivers/video/console/tileblit.c2
-rw-r--r--drivers/video/console/vgacon.c130
-rw-r--r--drivers/video/cyblafb.c1683
-rw-r--r--drivers/video/display/Kconfig24
-rw-r--r--drivers/video/display/Makefile6
-rw-r--r--drivers/video/display/display-sysfs.c218
-rw-r--r--drivers/video/display_timing.c24
-rw-r--r--drivers/video/efifb.c403
-rw-r--r--drivers/video/epson1355fb.c750
-rw-r--r--drivers/video/fbdev/68328fb.c (renamed from drivers/video/68328fb.c)23
-rw-r--r--drivers/video/fbdev/Kconfig2479
-rw-r--r--drivers/video/fbdev/Makefile152
-rw-r--r--drivers/video/fbdev/acornfb.c (renamed from drivers/video/acornfb.c)345
-rw-r--r--drivers/video/fbdev/acornfb.h (renamed from drivers/video/acornfb.h)29
-rw-r--r--drivers/video/fbdev/amba-clcd.c656
-rw-r--r--drivers/video/fbdev/amifb.c3792
-rw-r--r--drivers/video/fbdev/arcfb.c (renamed from drivers/video/arcfb.c)26
-rw-r--r--drivers/video/fbdev/arkfb.c (renamed from drivers/video/arkfb.c)240
-rw-r--r--drivers/video/fbdev/asiliantfb.c (renamed from drivers/video/asiliantfb.c)53
-rw-r--r--drivers/video/fbdev/atafb.c (renamed from drivers/video/atafb.c)100
-rw-r--r--drivers/video/fbdev/atafb.h (renamed from drivers/video/atafb.h)0
-rw-r--r--drivers/video/fbdev/atafb_iplan2p2.c (renamed from drivers/video/atafb_iplan2p2.c)0
-rw-r--r--drivers/video/fbdev/atafb_iplan2p4.c (renamed from drivers/video/atafb_iplan2p4.c)0
-rw-r--r--drivers/video/fbdev/atafb_iplan2p8.c (renamed from drivers/video/atafb_iplan2p8.c)0
-rw-r--r--drivers/video/fbdev/atafb_mfb.c (renamed from drivers/video/atafb_mfb.c)0
-rw-r--r--drivers/video/fbdev/atafb_utils.h (renamed from drivers/video/atafb_utils.h)0
-rw-r--r--drivers/video/fbdev/atmel_lcdfb.c1455
-rw-r--r--drivers/video/fbdev/aty/Makefile (renamed from drivers/video/aty/Makefile)0
-rw-r--r--drivers/video/fbdev/aty/ati_ids.h (renamed from drivers/video/aty/ati_ids.h)0
-rw-r--r--drivers/video/fbdev/aty/aty128fb.c (renamed from drivers/video/aty/aty128fb.c)300
-rw-r--r--drivers/video/fbdev/aty/atyfb.h (renamed from drivers/video/aty/atyfb.h)3
-rw-r--r--drivers/video/fbdev/aty/atyfb_base.c (renamed from drivers/video/aty/atyfb_base.c)1159
-rw-r--r--drivers/video/fbdev/aty/mach64_accel.c (renamed from drivers/video/aty/mach64_accel.c)22
-rw-r--r--drivers/video/fbdev/aty/mach64_ct.c (renamed from drivers/video/aty/mach64_ct.c)17
-rw-r--r--drivers/video/fbdev/aty/mach64_cursor.c (renamed from drivers/video/aty/mach64_cursor.c)42
-rw-r--r--drivers/video/fbdev/aty/mach64_gx.c (renamed from drivers/video/aty/mach64_gx.c)0
-rw-r--r--drivers/video/fbdev/aty/radeon_accel.c (renamed from drivers/video/aty/radeon_accel.c)0
-rw-r--r--drivers/video/fbdev/aty/radeon_backlight.c (renamed from drivers/video/aty/radeon_backlight.c)17
-rw-r--r--drivers/video/fbdev/aty/radeon_base.c (renamed from drivers/video/aty/radeon_base.c)75
-rw-r--r--drivers/video/fbdev/aty/radeon_i2c.c167
-rw-r--r--drivers/video/fbdev/aty/radeon_monitor.c (renamed from drivers/video/aty/radeon_monitor.c)62
-rw-r--r--drivers/video/fbdev/aty/radeon_pm.c2906
-rw-r--r--drivers/video/fbdev/aty/radeonfb.h (renamed from drivers/video/aty/radeonfb.h)3
-rw-r--r--drivers/video/fbdev/au1100fb.c642
-rw-r--r--drivers/video/fbdev/au1100fb.h (renamed from drivers/video/au1100fb.h)6
-rw-r--r--drivers/video/fbdev/au1200fb.c (renamed from drivers/video/au1200fb.c)560
-rw-r--r--drivers/video/fbdev/au1200fb.h (renamed from drivers/video/au1200fb.h)0
-rw-r--r--drivers/video/fbdev/auo_k1900fb.c205
-rw-r--r--drivers/video/fbdev/auo_k1901fb.c258
-rw-r--r--drivers/video/fbdev/auo_k190x.c1198
-rw-r--r--drivers/video/fbdev/auo_k190x.h129
-rw-r--r--drivers/video/fbdev/bf537-lq035.c915
-rw-r--r--drivers/video/fbdev/bf54x-lq043fb.c (renamed from drivers/video/bf54x-lq043fb.c)100
-rw-r--r--drivers/video/fbdev/bfin-lq035q1-fb.c864
-rw-r--r--drivers/video/fbdev/bfin-t350mcqb-fb.c (renamed from drivers/video/bfin-t350mcqb-fb.c)124
-rw-r--r--drivers/video/fbdev/bfin_adv7393fb.c827
-rw-r--r--drivers/video/fbdev/bfin_adv7393fb.h321
-rw-r--r--drivers/video/fbdev/broadsheetfb.c1223
-rw-r--r--drivers/video/fbdev/bt431.h (renamed from drivers/video/bt431.h)1
-rw-r--r--drivers/video/fbdev/bt455.h (renamed from drivers/video/bt455.h)1
-rw-r--r--drivers/video/fbdev/bw2.c (renamed from drivers/video/bw2.c)65
-rw-r--r--drivers/video/fbdev/c2p.h (renamed from drivers/video/c2p.h)0
-rw-r--r--drivers/video/fbdev/c2p_core.h (renamed from drivers/video/c2p_core.h)0
-rw-r--r--drivers/video/fbdev/c2p_iplan2.c (renamed from drivers/video/c2p_iplan2.c)0
-rw-r--r--drivers/video/fbdev/c2p_planar.c (renamed from drivers/video/c2p_planar.c)0
-rw-r--r--drivers/video/fbdev/carminefb.c (renamed from drivers/video/carminefb.c)38
-rw-r--r--drivers/video/fbdev/carminefb.h (renamed from drivers/video/carminefb.h)0
-rw-r--r--drivers/video/fbdev/carminefb_regs.h (renamed from drivers/video/carminefb_regs.h)0
-rw-r--r--drivers/video/fbdev/cg14.c (renamed from drivers/video/cg14.c)56
-rw-r--r--drivers/video/fbdev/cg3.c (renamed from drivers/video/cg3.c)68
-rw-r--r--drivers/video/fbdev/cg6.c (renamed from drivers/video/cg6.c)61
-rw-r--r--drivers/video/fbdev/chipsfb.c (renamed from drivers/video/chipsfb.c)23
-rw-r--r--drivers/video/fbdev/cirrusfb.c2952
-rw-r--r--drivers/video/fbdev/clps711xfb.c315
-rw-r--r--drivers/video/fbdev/cobalt_lcdfb.c (renamed from drivers/video/cobalt_lcdfb.c)80
-rw-r--r--drivers/video/fbdev/controlfb.c (renamed from drivers/video/controlfb.c)64
-rw-r--r--drivers/video/fbdev/controlfb.h (renamed from drivers/video/controlfb.h)0
-rw-r--r--drivers/video/fbdev/core/Makefile16
-rw-r--r--drivers/video/fbdev/core/cfbcopyarea.c (renamed from drivers/video/cfbcopyarea.c)154
-rw-r--r--drivers/video/fbdev/core/cfbfillrect.c (renamed from drivers/video/cfbfillrect.c)36
-rw-r--r--drivers/video/fbdev/core/cfbimgblt.c (renamed from drivers/video/cfbimgblt.c)2
-rw-r--r--drivers/video/fbdev/core/fb_ddc.c (renamed from drivers/video/fb_ddc.c)6
-rw-r--r--drivers/video/fbdev/core/fb_defio.c (renamed from drivers/video/fb_defio.c)48
-rw-r--r--drivers/video/fbdev/core/fb_draw.h (renamed from drivers/video/fb_draw.h)28
-rw-r--r--drivers/video/fbdev/core/fb_notify.c (renamed from drivers/video/fb_notify.c)1
-rw-r--r--drivers/video/fbdev/core/fb_sys_fops.c (renamed from drivers/video/fb_sys_fops.c)0
-rw-r--r--drivers/video/fbdev/core/fbcmap.c (renamed from drivers/video/fbcmap.c)82
-rw-r--r--drivers/video/fbdev/core/fbcvt.c (renamed from drivers/video/fbcvt.c)3
-rw-r--r--drivers/video/fbdev/core/fbmem.c (renamed from drivers/video/fbmem.c)706
-rw-r--r--drivers/video/fbdev/core/fbmon.c (renamed from drivers/video/fbmon.c)217
-rw-r--r--drivers/video/fbdev/core/fbsysfs.c (renamed from drivers/video/fbsysfs.c)39
-rw-r--r--drivers/video/fbdev/core/modedb.c1137
-rw-r--r--drivers/video/fbdev/core/svgalib.c (renamed from drivers/video/svgalib.c)180
-rw-r--r--drivers/video/fbdev/core/syscopyarea.c (renamed from drivers/video/syscopyarea.c)1
-rw-r--r--drivers/video/fbdev/core/sysfillrect.c (renamed from drivers/video/sysfillrect.c)30
-rw-r--r--drivers/video/fbdev/core/sysimgblt.c (renamed from drivers/video/sysimgblt.c)2
-rw-r--r--drivers/video/fbdev/cyber2000fb.c (renamed from drivers/video/cyber2000fb.c)374
-rw-r--r--drivers/video/fbdev/cyber2000fb.h (renamed from drivers/video/cyber2000fb.h)16
-rw-r--r--drivers/video/fbdev/da8xx-fb.c1673
-rw-r--r--drivers/video/fbdev/dnfb.c (renamed from drivers/video/dnfb.c)8
-rw-r--r--drivers/video/fbdev/edid.h (renamed from drivers/video/edid.h)4
-rw-r--r--drivers/video/fbdev/efifb.c360
-rw-r--r--drivers/video/fbdev/ep93xx-fb.c634
-rw-r--r--drivers/video/fbdev/exynos/Kconfig32
-rw-r--r--drivers/video/fbdev/exynos/Makefile7
-rw-r--r--drivers/video/fbdev/exynos/exynos_mipi_dsi.c574
-rw-r--r--drivers/video/fbdev/exynos/exynos_mipi_dsi_common.c880
-rw-r--r--drivers/video/fbdev/exynos/exynos_mipi_dsi_common.h46
-rw-r--r--drivers/video/fbdev/exynos/exynos_mipi_dsi_lowlevel.c618
-rw-r--r--drivers/video/fbdev/exynos/exynos_mipi_dsi_lowlevel.h112
-rw-r--r--drivers/video/fbdev/exynos/exynos_mipi_dsi_regs.h149
-rw-r--r--drivers/video/fbdev/exynos/s6e8ax0.c898
-rw-r--r--drivers/video/fbdev/fb-puv3.c840
-rw-r--r--drivers/video/fbdev/ffb.c (renamed from drivers/video/ffb.c)27
-rw-r--r--drivers/video/fbdev/fm2fb.c (renamed from drivers/video/fm2fb.c)19
-rw-r--r--drivers/video/fbdev/fsl-diu-fb.c1994
-rw-r--r--drivers/video/fbdev/g364fb.c (renamed from drivers/video/g364fb.c)6
-rw-r--r--drivers/video/fbdev/gbefb.c (renamed from drivers/video/gbefb.c)80
-rw-r--r--drivers/video/fbdev/geode/Kconfig54
-rw-r--r--drivers/video/fbdev/geode/Makefile (renamed from drivers/video/geode/Makefile)0
-rw-r--r--drivers/video/fbdev/geode/display_gx.c (renamed from drivers/video/geode/display_gx.c)4
-rw-r--r--drivers/video/fbdev/geode/display_gx1.c (renamed from drivers/video/geode/display_gx1.c)0
-rw-r--r--drivers/video/fbdev/geode/display_gx1.h (renamed from drivers/video/geode/display_gx1.h)0
-rw-r--r--drivers/video/fbdev/geode/geodefb.h (renamed from drivers/video/geode/geodefb.h)0
-rw-r--r--drivers/video/fbdev/geode/gx1fb_core.c (renamed from drivers/video/geode/gx1fb_core.c)31
-rw-r--r--drivers/video/fbdev/geode/gxfb.h (renamed from drivers/video/geode/gxfb.h)2
-rw-r--r--drivers/video/fbdev/geode/gxfb_core.c (renamed from drivers/video/geode/gxfb_core.c)45
-rw-r--r--drivers/video/fbdev/geode/lxfb.h (renamed from drivers/video/geode/lxfb.h)20
-rw-r--r--drivers/video/fbdev/geode/lxfb_core.c (renamed from drivers/video/geode/lxfb_core.c)46
-rw-r--r--drivers/video/fbdev/geode/lxfb_ops.c (renamed from drivers/video/geode/lxfb_ops.c)34
-rw-r--r--drivers/video/fbdev/geode/suspend_gx.c (renamed from drivers/video/geode/suspend_gx.c)2
-rw-r--r--drivers/video/fbdev/geode/video_cs5530.c (renamed from drivers/video/geode/video_cs5530.c)0
-rw-r--r--drivers/video/fbdev/geode/video_cs5530.h (renamed from drivers/video/geode/video_cs5530.h)0
-rw-r--r--drivers/video/fbdev/geode/video_gx.c (renamed from drivers/video/geode/video_gx.c)2
-rw-r--r--drivers/video/fbdev/goldfishfb.c318
-rw-r--r--drivers/video/fbdev/grvga.c563
-rw-r--r--drivers/video/fbdev/gxt4500.c (renamed from drivers/video/gxt4500.c)35
-rw-r--r--drivers/video/fbdev/hecubafb.c (renamed from drivers/video/hecubafb.c)38
-rw-r--r--drivers/video/fbdev/hgafb.c (renamed from drivers/video/hgafb.c)40
-rw-r--r--drivers/video/fbdev/hitfb.c (renamed from drivers/video/hitfb.c)82
-rw-r--r--drivers/video/fbdev/hpfb.c (renamed from drivers/video/hpfb.c)45
-rw-r--r--drivers/video/fbdev/hyperv_fb.c907
-rw-r--r--drivers/video/fbdev/i740_reg.h309
-rw-r--r--drivers/video/fbdev/i740fb.c1333
-rw-r--r--drivers/video/fbdev/i810/Makefile (renamed from drivers/video/i810/Makefile)0
-rw-r--r--drivers/video/fbdev/i810/i810-i2c.c (renamed from drivers/video/i810/i810-i2c.c)14
-rw-r--r--drivers/video/fbdev/i810/i810.h (renamed from drivers/video/i810/i810.h)3
-rw-r--r--drivers/video/fbdev/i810/i810_accel.c (renamed from drivers/video/i810/i810_accel.c)2
-rw-r--r--drivers/video/fbdev/i810/i810_dvt.c (renamed from drivers/video/i810/i810_dvt.c)53
-rw-r--r--drivers/video/fbdev/i810/i810_gtf.c (renamed from drivers/video/i810/i810_gtf.c)0
-rw-r--r--drivers/video/fbdev/i810/i810_main.c (renamed from drivers/video/i810/i810_main.c)99
-rw-r--r--drivers/video/fbdev/i810/i810_main.h (renamed from drivers/video/i810/i810_main.h)2
-rw-r--r--drivers/video/fbdev/i810/i810_regs.h (renamed from drivers/video/i810/i810_regs.h)0
-rw-r--r--drivers/video/fbdev/igafb.c (renamed from drivers/video/igafb.c)22
-rw-r--r--drivers/video/fbdev/imsttfb.c (renamed from drivers/video/imsttfb.c)24
-rw-r--r--drivers/video/fbdev/imxfb.c1075
-rw-r--r--drivers/video/fbdev/intelfb/Makefile7
-rw-r--r--drivers/video/fbdev/intelfb/intelfb.h (renamed from drivers/video/intelfb/intelfb.h)6
-rw-r--r--drivers/video/fbdev/intelfb/intelfb_i2c.c (renamed from drivers/video/intelfb/intelfb_i2c.c)3
-rw-r--r--drivers/video/fbdev/intelfb/intelfbdrv.c (renamed from drivers/video/intelfb/intelfbdrv.c)61
-rw-r--r--drivers/video/fbdev/intelfb/intelfbhw.c (renamed from drivers/video/intelfb/intelfbhw.c)59
-rw-r--r--drivers/video/fbdev/intelfb/intelfbhw.h (renamed from drivers/video/intelfb/intelfbhw.h)1
-rw-r--r--drivers/video/fbdev/jz4740_fb.c806
-rw-r--r--drivers/video/fbdev/kyro/Makefile (renamed from drivers/video/kyro/Makefile)0
-rw-r--r--drivers/video/fbdev/kyro/STG4000InitDevice.c (renamed from drivers/video/kyro/STG4000InitDevice.c)0
-rw-r--r--drivers/video/fbdev/kyro/STG4000Interface.h (renamed from drivers/video/kyro/STG4000Interface.h)0
-rw-r--r--drivers/video/fbdev/kyro/STG4000OverlayDevice.c (renamed from drivers/video/kyro/STG4000OverlayDevice.c)2
-rw-r--r--drivers/video/fbdev/kyro/STG4000Ramdac.c (renamed from drivers/video/kyro/STG4000Ramdac.c)0
-rw-r--r--drivers/video/fbdev/kyro/STG4000Reg.h283
-rw-r--r--drivers/video/fbdev/kyro/STG4000VTG.c (renamed from drivers/video/kyro/STG4000VTG.c)0
-rw-r--r--drivers/video/fbdev/kyro/fbdev.c808
-rw-r--r--drivers/video/fbdev/leo.c (renamed from drivers/video/leo.c)43
-rw-r--r--drivers/video/fbdev/macfb.c928
-rw-r--r--drivers/video/fbdev/macmodes.c (renamed from drivers/video/macmodes.c)80
-rw-r--r--drivers/video/fbdev/macmodes.h (renamed from drivers/video/macmodes.h)0
-rw-r--r--drivers/video/fbdev/matrox/Makefile (renamed from drivers/video/matrox/Makefile)0
-rw-r--r--drivers/video/fbdev/matrox/g450_pll.c539
-rw-r--r--drivers/video/fbdev/matrox/g450_pll.h12
-rw-r--r--drivers/video/fbdev/matrox/i2c-matroxfb.c (renamed from drivers/video/matrox/i2c-matroxfb.c)21
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_DAC1064.c1107
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_DAC1064.h (renamed from drivers/video/matrox/matroxfb_DAC1064.h)6
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_Ti3026.c745
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_Ti3026.h (renamed from drivers/video/matrox/matroxfb_Ti3026.h)0
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_accel.c519
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_accel.h8
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_base.c2584
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_base.h (renamed from drivers/video/matrox/matroxfb_base.h)90
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_crtc2.c (renamed from drivers/video/matrox/matroxfb_crtc2.c)169
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_crtc2.h (renamed from drivers/video/matrox/matroxfb_crtc2.h)0
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_g450.c640
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_g450.h14
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_maven.c (renamed from drivers/video/matrox/matroxfb_maven.c)84
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_maven.h (renamed from drivers/video/matrox/matroxfb_maven.h)0
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_misc.c815
-rw-r--r--drivers/video/fbdev/matrox/matroxfb_misc.h21
-rw-r--r--drivers/video/fbdev/maxinefb.c (renamed from drivers/video/maxinefb.c)4
-rw-r--r--drivers/video/fbdev/mb862xx/Makefile8
-rw-r--r--drivers/video/fbdev/mb862xx/mb862xx-i2c.c179
-rw-r--r--drivers/video/fbdev/mb862xx/mb862xx_reg.h188
-rw-r--r--drivers/video/fbdev/mb862xx/mb862xxfb.h121
-rw-r--r--drivers/video/fbdev/mb862xx/mb862xxfb_accel.c335
-rw-r--r--drivers/video/fbdev/mb862xx/mb862xxfb_accel.h203
-rw-r--r--drivers/video/fbdev/mb862xx/mb862xxfbdrv.c1206
-rw-r--r--drivers/video/fbdev/mbx/Makefile3
-rw-r--r--drivers/video/fbdev/mbx/mbxdebugfs.c (renamed from drivers/video/mbx/mbxdebugfs.c)13
-rw-r--r--drivers/video/fbdev/mbx/mbxfb.c (renamed from drivers/video/mbx/mbxfb.c)70
-rw-r--r--drivers/video/fbdev/mbx/reg_bits.h (renamed from drivers/video/mbx/reg_bits.h)0
-rw-r--r--drivers/video/fbdev/mbx/regs.h (renamed from drivers/video/mbx/regs.h)0
-rw-r--r--drivers/video/fbdev/metronomefb.c (renamed from drivers/video/metronomefb.c)46
-rw-r--r--drivers/video/fbdev/mmp/Kconfig11
-rw-r--r--drivers/video/fbdev/mmp/Makefile1
-rw-r--r--drivers/video/fbdev/mmp/core.c251
-rw-r--r--drivers/video/fbdev/mmp/fb/Kconfig13
-rw-r--r--drivers/video/fbdev/mmp/fb/Makefile1
-rw-r--r--drivers/video/fbdev/mmp/fb/mmpfb.c689
-rw-r--r--drivers/video/fbdev/mmp/fb/mmpfb.h54
-rw-r--r--drivers/video/fbdev/mmp/hw/Kconfig20
-rw-r--r--drivers/video/fbdev/mmp/hw/Makefile2
-rw-r--r--drivers/video/fbdev/mmp/hw/mmp_ctrl.c588
-rw-r--r--drivers/video/fbdev/mmp/hw/mmp_ctrl.h1470
-rw-r--r--drivers/video/fbdev/mmp/hw/mmp_spi.c180
-rw-r--r--drivers/video/fbdev/mmp/panel/Kconfig6
-rw-r--r--drivers/video/fbdev/mmp/panel/Makefile1
-rw-r--r--drivers/video/fbdev/mmp/panel/tpo_tj032md01bw.c186
-rw-r--r--drivers/video/fbdev/msm/Makefile19
-rw-r--r--drivers/video/fbdev/msm/mddi.c821
-rw-r--r--drivers/video/fbdev/msm/mddi_client_dummy.c98
-rw-r--r--drivers/video/fbdev/msm/mddi_client_nt35399.c252
-rw-r--r--drivers/video/fbdev/msm/mddi_client_toshiba.c280
-rw-r--r--drivers/video/fbdev/msm/mddi_hw.h305
-rw-r--r--drivers/video/fbdev/msm/mdp.c520
-rw-r--r--drivers/video/fbdev/msm/mdp_csc_table.h582
-rw-r--r--drivers/video/fbdev/msm/mdp_hw.h627
-rw-r--r--drivers/video/fbdev/msm/mdp_ppp.c731
-rw-r--r--drivers/video/fbdev/msm/mdp_scale_tables.c766
-rw-r--r--drivers/video/fbdev/msm/mdp_scale_tables.h38
-rw-r--r--drivers/video/fbdev/msm/msm_fb.c638
-rw-r--r--drivers/video/fbdev/mx3fb.c1709
-rw-r--r--drivers/video/fbdev/mxsfb.c960
-rw-r--r--drivers/video/fbdev/n411.c (renamed from drivers/video/n411.c)0
-rw-r--r--drivers/video/fbdev/neofb.c (renamed from drivers/video/neofb.c)54
-rw-r--r--drivers/video/fbdev/nuc900fb.c765
-rw-r--r--drivers/video/fbdev/nuc900fb.h55
-rw-r--r--drivers/video/fbdev/nvidia/Makefile (renamed from drivers/video/nvidia/Makefile)0
-rw-r--r--drivers/video/fbdev/nvidia/nv_accel.c (renamed from drivers/video/nvidia/nv_accel.c)0
-rw-r--r--drivers/video/fbdev/nvidia/nv_backlight.c (renamed from drivers/video/nvidia/nv_backlight.c)10
-rw-r--r--drivers/video/fbdev/nvidia/nv_dma.h (renamed from drivers/video/nvidia/nv_dma.h)0
-rw-r--r--drivers/video/fbdev/nvidia/nv_hw.c (renamed from drivers/video/nvidia/nv_hw.c)2
-rw-r--r--drivers/video/fbdev/nvidia/nv_i2c.c (renamed from drivers/video/nvidia/nv_i2c.c)2
-rw-r--r--drivers/video/fbdev/nvidia/nv_local.h (renamed from drivers/video/nvidia/nv_local.h)0
-rw-r--r--drivers/video/fbdev/nvidia/nv_of.c (renamed from drivers/video/nvidia/nv_of.c)1
-rw-r--r--drivers/video/fbdev/nvidia/nv_proto.h (renamed from drivers/video/nvidia/nv_proto.h)0
-rw-r--r--drivers/video/fbdev/nvidia/nv_setup.c (renamed from drivers/video/nvidia/nv_setup.c)5
-rw-r--r--drivers/video/fbdev/nvidia/nv_type.h (renamed from drivers/video/nvidia/nv_type.h)2
-rw-r--r--drivers/video/fbdev/nvidia/nvidia.c (renamed from drivers/video/nvidia/nvidia.c)69
-rw-r--r--drivers/video/fbdev/ocfb.c440
-rw-r--r--drivers/video/fbdev/offb.c (renamed from drivers/video/offb.c)137
-rw-r--r--drivers/video/fbdev/omap/Kconfig61
-rw-r--r--drivers/video/fbdev/omap/Makefile27
-rw-r--r--drivers/video/fbdev/omap/hwa742.c (renamed from drivers/video/omap/hwa742.c)60
-rw-r--r--drivers/video/fbdev/omap/lcd_ams_delta.c225
-rw-r--r--drivers/video/fbdev/omap/lcd_h3.c (renamed from drivers/video/omap/lcd_h3.c)20
-rw-r--r--drivers/video/fbdev/omap/lcd_htcherald.c118
-rw-r--r--drivers/video/fbdev/omap/lcd_inn1510.c (renamed from drivers/video/omap/lcd_inn1510.c)25
-rw-r--r--drivers/video/fbdev/omap/lcd_inn1610.c (renamed from drivers/video/omap/lcd_inn1610.c)28
-rw-r--r--drivers/video/fbdev/omap/lcd_mipid.c615
-rw-r--r--drivers/video/fbdev/omap/lcd_osk.c (renamed from drivers/video/omap/lcd_osk.c)23
-rw-r--r--drivers/video/fbdev/omap/lcd_palmte.c (renamed from drivers/video/omap/lcd_palmte.c)19
-rw-r--r--drivers/video/fbdev/omap/lcd_palmtt.c (renamed from drivers/video/omap/lcd_palmtt.c)19
-rw-r--r--drivers/video/fbdev/omap/lcd_palmz71.c (renamed from drivers/video/omap/lcd_palmz71.c)17
-rw-r--r--drivers/video/fbdev/omap/lcdc.c (renamed from drivers/video/omap/lcdc.c)126
-rw-r--r--drivers/video/fbdev/omap/lcdc.h (renamed from drivers/video/omap/lcdc.h)0
-rw-r--r--drivers/video/fbdev/omap/omapfb.h246
-rw-r--r--drivers/video/fbdev/omap/omapfb_main.c (renamed from drivers/video/omap/omapfb_main.c)192
-rw-r--r--drivers/video/fbdev/omap/sossi.c (renamed from drivers/video/omap/sossi.c)7
-rw-r--r--drivers/video/fbdev/omap2/Kconfig10
-rw-r--r--drivers/video/fbdev/omap2/Makefile5
-rw-r--r--drivers/video/fbdev/omap2/displays-new/Kconfig80
-rw-r--r--drivers/video/fbdev/omap2/displays-new/Makefile13
-rw-r--r--drivers/video/fbdev/omap2/displays-new/connector-analog-tv.c318
-rw-r--r--drivers/video/fbdev/omap2/displays-new/connector-dvi.c401
-rw-r--r--drivers/video/fbdev/omap2/displays-new/connector-hdmi.c428
-rw-r--r--drivers/video/fbdev/omap2/displays-new/encoder-tfp410.c308
-rw-r--r--drivers/video/fbdev/omap2/displays-new/encoder-tpd12s015.c451
-rw-r--r--drivers/video/fbdev/omap2/displays-new/panel-dpi.c337
-rw-r--r--drivers/video/fbdev/omap2/displays-new/panel-dsi-cm.c1388
-rw-r--r--drivers/video/fbdev/omap2/displays-new/panel-lgphilips-lb035q02.c405
-rw-r--r--drivers/video/fbdev/omap2/displays-new/panel-nec-nl8048hl11.c437
-rw-r--r--drivers/video/fbdev/omap2/displays-new/panel-sharp-ls037v7dw01.c420
-rw-r--r--drivers/video/fbdev/omap2/displays-new/panel-sony-acx565akm.c911
-rw-r--r--drivers/video/fbdev/omap2/displays-new/panel-tpo-td028ttec1.c511
-rw-r--r--drivers/video/fbdev/omap2/displays-new/panel-tpo-td043mtea1.c686
-rw-r--r--drivers/video/fbdev/omap2/dss/Kconfig141
-rw-r--r--drivers/video/fbdev/omap2/dss/Makefile18
-rw-r--r--drivers/video/fbdev/omap2/dss/apply.c1700
-rw-r--r--drivers/video/fbdev/omap2/dss/core.c366
-rw-r--r--drivers/video/fbdev/omap2/dss/dispc-compat.c666
-rw-r--r--drivers/video/fbdev/omap2/dss/dispc-compat.h30
-rw-r--r--drivers/video/fbdev/omap2/dss/dispc.c3855
-rw-r--r--drivers/video/fbdev/omap2/dss/dispc.h917
-rw-r--r--drivers/video/fbdev/omap2/dss/dispc_coefs.c325
-rw-r--r--drivers/video/fbdev/omap2/dss/display-sysfs.c345
-rw-r--r--drivers/video/fbdev/omap2/dss/display.c338
-rw-r--r--drivers/video/fbdev/omap2/dss/dpi.c778
-rw-r--r--drivers/video/fbdev/omap2/dss/dsi.c5769
-rw-r--r--drivers/video/fbdev/omap2/dss/dss-of.c159
-rw-r--r--drivers/video/fbdev/omap2/dss/dss.c980
-rw-r--r--drivers/video/fbdev/omap2/dss/dss.h441
-rw-r--r--drivers/video/fbdev/omap2/dss/dss_features.c1003
-rw-r--r--drivers/video/fbdev/omap2/dss/dss_features.h117
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi.h447
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi4.c804
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi4_core.c1018
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi4_core.h276
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi5.c829
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi5_core.c922
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi5_core.h306
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi_common.c466
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi_phy.c255
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi_pll.c291
-rw-r--r--drivers/video/fbdev/omap2/dss/hdmi_wp.c258
-rw-r--r--drivers/video/fbdev/omap2/dss/manager-sysfs.c529
-rw-r--r--drivers/video/fbdev/omap2/dss/manager.c263
-rw-r--r--drivers/video/fbdev/omap2/dss/omapdss-boot-init.c231
-rw-r--r--drivers/video/fbdev/omap2/dss/output.c254
-rw-r--r--drivers/video/fbdev/omap2/dss/overlay-sysfs.c456
-rw-r--r--drivers/video/fbdev/omap2/dss/overlay.c202
-rw-r--r--drivers/video/fbdev/omap2/dss/rfbi.c1058
-rw-r--r--drivers/video/fbdev/omap2/dss/sdi.c433
-rw-r--r--drivers/video/fbdev/omap2/dss/venc.c980
-rw-r--r--drivers/video/fbdev/omap2/omapfb/Kconfig27
-rw-r--r--drivers/video/fbdev/omap2/omapfb/Makefile2
-rw-r--r--drivers/video/fbdev/omap2/omapfb/omapfb-ioctl.c922
-rw-r--r--drivers/video/fbdev/omap2/omapfb/omapfb-main.c2656
-rw-r--r--drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c605
-rw-r--r--drivers/video/fbdev/omap2/omapfb/omapfb.h208
-rw-r--r--drivers/video/fbdev/omap2/vrfb.c399
-rw-r--r--drivers/video/fbdev/p9100.c (renamed from drivers/video/p9100.c)44
-rw-r--r--drivers/video/fbdev/platinumfb.c (renamed from drivers/video/platinumfb.c)50
-rw-r--r--drivers/video/fbdev/platinumfb.h (renamed from drivers/video/platinumfb.h)0
-rw-r--r--drivers/video/fbdev/pm2fb.c (renamed from drivers/video/pm2fb.c)36
-rw-r--r--drivers/video/fbdev/pm3fb.c (renamed from drivers/video/pm3fb.c)27
-rw-r--r--drivers/video/fbdev/pmag-aa-fb.c (renamed from drivers/video/pmag-aa-fb.c)1
-rw-r--r--drivers/video/fbdev/pmag-ba-fb.c (renamed from drivers/video/pmag-ba-fb.c)29
-rw-r--r--drivers/video/fbdev/pmagb-b-fb.c (renamed from drivers/video/pmagb-b-fb.c)40
-rw-r--r--drivers/video/fbdev/ps3fb.c (renamed from drivers/video/ps3fb.c)324
-rw-r--r--drivers/video/fbdev/pvr2fb.c (renamed from drivers/video/pvr2fb.c)77
-rw-r--r--drivers/video/fbdev/pxa168fb.c837
-rw-r--r--drivers/video/fbdev/pxa168fb.h558
-rw-r--r--drivers/video/fbdev/pxa3xx-gcu.c722
-rw-r--r--drivers/video/fbdev/pxa3xx-gcu.h38
-rw-r--r--drivers/video/fbdev/pxafb.c (renamed from drivers/video/pxafb.c)285
-rw-r--r--drivers/video/fbdev/pxafb.h (renamed from drivers/video/pxafb.h)3
-rw-r--r--drivers/video/fbdev/q40fb.c (renamed from drivers/video/q40fb.c)11
-rw-r--r--drivers/video/fbdev/riva/Makefile (renamed from drivers/video/riva/Makefile)0
-rw-r--r--drivers/video/fbdev/riva/fbdev.c2230
-rw-r--r--drivers/video/fbdev/riva/nv_driver.c (renamed from drivers/video/riva/nv_driver.c)0
-rw-r--r--drivers/video/fbdev/riva/nv_type.h (renamed from drivers/video/riva/nv_type.h)0
-rw-r--r--drivers/video/fbdev/riva/nvreg.h (renamed from drivers/video/riva/nvreg.h)0
-rw-r--r--drivers/video/fbdev/riva/riva_hw.c (renamed from drivers/video/riva/riva_hw.c)0
-rw-r--r--drivers/video/fbdev/riva/riva_hw.h (renamed from drivers/video/riva/riva_hw.h)0
-rw-r--r--drivers/video/fbdev/riva/riva_tbl.h (renamed from drivers/video/riva/riva_tbl.h)0
-rw-r--r--drivers/video/fbdev/riva/rivafb-i2c.c (renamed from drivers/video/riva/rivafb-i2c.c)10
-rw-r--r--drivers/video/fbdev/riva/rivafb.h (renamed from drivers/video/riva/rivafb.h)0
-rw-r--r--drivers/video/fbdev/s1d13xxxfb.c1040
-rw-r--r--drivers/video/fbdev/s3c-fb.c2049
-rw-r--r--drivers/video/fbdev/s3c2410fb.c (renamed from drivers/video/s3c2410fb.c)162
-rw-r--r--drivers/video/fbdev/s3c2410fb.h (renamed from drivers/video/s3c2410fb.h)5
-rw-r--r--drivers/video/fbdev/s3fb.c1598
-rw-r--r--drivers/video/fbdev/sa1100fb.c1340
-rw-r--r--drivers/video/fbdev/sa1100fb.h96
-rw-r--r--drivers/video/fbdev/savage/Makefile (renamed from drivers/video/savage/Makefile)0
-rw-r--r--drivers/video/fbdev/savage/savagefb-i2c.c (renamed from drivers/video/savage/savagefb-i2c.c)27
-rw-r--r--drivers/video/fbdev/savage/savagefb.h (renamed from drivers/video/savage/savagefb.h)11
-rw-r--r--drivers/video/fbdev/savage/savagefb_accel.c (renamed from drivers/video/savage/savagefb_accel.c)1
-rw-r--r--drivers/video/fbdev/savage/savagefb_driver.c (renamed from drivers/video/savage/savagefb_driver.c)129
-rw-r--r--drivers/video/fbdev/sbuslib.c (renamed from drivers/video/sbuslib.c)9
-rw-r--r--drivers/video/fbdev/sbuslib.h (renamed from drivers/video/sbuslib.h)0
-rw-r--r--drivers/video/fbdev/sh7760fb.c (renamed from drivers/video/sh7760fb.c)52
-rw-r--r--drivers/video/fbdev/sh_mipi_dsi.c587
-rw-r--r--drivers/video/fbdev/sh_mobile_hdmi.c1449
-rw-r--r--drivers/video/fbdev/sh_mobile_lcdcfb.c2863
-rw-r--r--drivers/video/fbdev/sh_mobile_lcdcfb.h112
-rw-r--r--drivers/video/fbdev/sh_mobile_meram.c759
-rw-r--r--drivers/video/fbdev/simplefb.c280
-rw-r--r--drivers/video/fbdev/sis/300vtbl.h (renamed from drivers/video/sis/300vtbl.h)0
-rw-r--r--drivers/video/fbdev/sis/310vtbl.h (renamed from drivers/video/sis/310vtbl.h)0
-rw-r--r--drivers/video/fbdev/sis/Makefile (renamed from drivers/video/sis/Makefile)0
-rw-r--r--drivers/video/fbdev/sis/init.c3655
-rw-r--r--drivers/video/fbdev/sis/init.h1541
-rw-r--r--drivers/video/fbdev/sis/init301.c (renamed from drivers/video/sis/init301.c)475
-rw-r--r--drivers/video/fbdev/sis/init301.h (renamed from drivers/video/sis/init301.h)54
-rw-r--r--drivers/video/fbdev/sis/initdef.h (renamed from drivers/video/sis/initdef.h)0
-rw-r--r--drivers/video/fbdev/sis/initextlfb.c (renamed from drivers/video/sis/initextlfb.c)9
-rw-r--r--drivers/video/fbdev/sis/oem300.h (renamed from drivers/video/sis/oem300.h)0
-rw-r--r--drivers/video/fbdev/sis/oem310.h (renamed from drivers/video/sis/oem310.h)0
-rw-r--r--drivers/video/fbdev/sis/sis.h (renamed from drivers/video/sis/sis.h)67
-rw-r--r--drivers/video/fbdev/sis/sis_accel.c (renamed from drivers/video/sis/sis_accel.c)0
-rw-r--r--drivers/video/fbdev/sis/sis_accel.h (renamed from drivers/video/sis/sis_accel.h)0
-rw-r--r--drivers/video/fbdev/sis/sis_main.c (renamed from drivers/video/sis/sis_main.c)1685
-rw-r--r--drivers/video/fbdev/sis/sis_main.h (renamed from drivers/video/sis/sis_main.h)20
-rw-r--r--drivers/video/fbdev/sis/vgatypes.h97
-rw-r--r--drivers/video/fbdev/sis/vstruct.h (renamed from drivers/video/sis/vstruct.h)14
-rw-r--r--drivers/video/fbdev/skeletonfb.c (renamed from drivers/video/skeletonfb.c)41
-rw-r--r--drivers/video/fbdev/sm501fb.c2240
-rw-r--r--drivers/video/fbdev/smscufx.c1980
-rw-r--r--drivers/video/fbdev/ssd1307fb.c581
-rw-r--r--drivers/video/fbdev/sstfb.c (renamed from drivers/video/sstfb.c)70
-rw-r--r--drivers/video/fbdev/sticore.h (renamed from drivers/video/sticore.h)64
-rw-r--r--drivers/video/fbdev/stifb.c (renamed from drivers/video/stifb.c)45
-rw-r--r--drivers/video/fbdev/sunxvr1000.c229
-rw-r--r--drivers/video/fbdev/sunxvr2500.c (renamed from drivers/video/sunxvr2500.c)17
-rw-r--r--drivers/video/fbdev/sunxvr500.c (renamed from drivers/video/sunxvr500.c)54
-rw-r--r--drivers/video/fbdev/tcx.c (renamed from drivers/video/tcx.c)59
-rw-r--r--drivers/video/fbdev/tdfxfb.c (renamed from drivers/video/tdfxfb.c)312
-rw-r--r--drivers/video/fbdev/tgafb.c (renamed from drivers/video/tgafb.c)361
-rw-r--r--drivers/video/fbdev/tmiofb.c (renamed from drivers/video/tmiofb.c)62
-rw-r--r--drivers/video/fbdev/tridentfb.c (renamed from drivers/video/tridentfb.c)53
-rw-r--r--drivers/video/fbdev/udlfb.c1985
-rw-r--r--drivers/video/fbdev/uvesafb.c (renamed from drivers/video/uvesafb.c)326
-rw-r--r--drivers/video/fbdev/valkyriefb.c (renamed from drivers/video/valkyriefb.c)26
-rw-r--r--drivers/video/fbdev/valkyriefb.h (renamed from drivers/video/valkyriefb.h)31
-rw-r--r--drivers/video/fbdev/vermilion/Makefile (renamed from drivers/video/vermilion/Makefile)0
-rw-r--r--drivers/video/fbdev/vermilion/cr_pll.c (renamed from drivers/video/vermilion/cr_pll.c)0
-rw-r--r--drivers/video/fbdev/vermilion/vermilion.c (renamed from drivers/video/vermilion/vermilion.c)30
-rw-r--r--drivers/video/fbdev/vermilion/vermilion.h (renamed from drivers/video/vermilion/vermilion.h)2
-rw-r--r--drivers/video/fbdev/vesafb.c (renamed from drivers/video/vesafb.c)131
-rw-r--r--drivers/video/fbdev/vfb.c (renamed from drivers/video/vfb.c)43
-rw-r--r--drivers/video/fbdev/vga16fb.c (renamed from drivers/video/vga16fb.c)42
-rw-r--r--drivers/video/fbdev/via/Makefile12
-rw-r--r--drivers/video/fbdev/via/accel.c547
-rw-r--r--drivers/video/fbdev/via/accel.h211
-rw-r--r--drivers/video/fbdev/via/chip.h176
-rw-r--r--drivers/video/fbdev/via/debug.h (renamed from drivers/video/via/debug.h)0
-rw-r--r--drivers/video/fbdev/via/dvi.c478
-rw-r--r--drivers/video/fbdev/via/dvi.h (renamed from drivers/video/via/dvi.h)9
-rw-r--r--drivers/video/fbdev/via/global.c (renamed from drivers/video/via/global.c)14
-rw-r--r--drivers/video/fbdev/via/global.h80
-rw-r--r--drivers/video/fbdev/via/hw.c2134
-rw-r--r--drivers/video/fbdev/via/hw.h676
-rw-r--r--drivers/video/fbdev/via/ioctl.c116
-rw-r--r--drivers/video/fbdev/via/ioctl.h203
-rw-r--r--drivers/video/fbdev/via/lcd.c1005
-rw-r--r--drivers/video/fbdev/via/lcd.h (renamed from drivers/video/via/lcd.h)17
-rw-r--r--drivers/video/fbdev/via/share.h332
-rw-r--r--drivers/video/fbdev/via/tblDPASetting.c (renamed from drivers/video/via/tblDPASetting.c)23
-rw-r--r--drivers/video/fbdev/via/tblDPASetting.h (renamed from drivers/video/via/tblDPASetting.h)2
-rw-r--r--drivers/video/fbdev/via/via-core.c790
-rw-r--r--drivers/video/fbdev/via/via-gpio.c316
-rw-r--r--drivers/video/fbdev/via/via_aux.c88
-rw-r--r--drivers/video/fbdev/via/via_aux.h93
-rw-r--r--drivers/video/fbdev/via/via_aux_ch7301.c50
-rw-r--r--drivers/video/fbdev/via/via_aux_edid.c100
-rw-r--r--drivers/video/fbdev/via/via_aux_sii164.c54
-rw-r--r--drivers/video/fbdev/via/via_aux_vt1621.c44
-rw-r--r--drivers/video/fbdev/via/via_aux_vt1622.c50
-rw-r--r--drivers/video/fbdev/via/via_aux_vt1625.c50
-rw-r--r--drivers/video/fbdev/via/via_aux_vt1631.c46
-rw-r--r--drivers/video/fbdev/via/via_aux_vt1632.c54
-rw-r--r--drivers/video/fbdev/via/via_aux_vt1636.c46
-rw-r--r--drivers/video/fbdev/via/via_clock.c368
-rw-r--r--drivers/video/fbdev/via/via_clock.h76
-rw-r--r--drivers/video/fbdev/via/via_i2c.c295
-rw-r--r--drivers/video/fbdev/via/via_modesetting.c230
-rw-r--r--drivers/video/fbdev/via/via_modesetting.h61
-rw-r--r--drivers/video/fbdev/via/via_utility.c (renamed from drivers/video/via/via_utility.c)15
-rw-r--r--drivers/video/fbdev/via/via_utility.h (renamed from drivers/video/via/via_utility.h)3
-rw-r--r--drivers/video/fbdev/via/viafbdev.c2176
-rw-r--r--drivers/video/fbdev/via/viafbdev.h110
-rw-r--r--drivers/video/fbdev/via/viamode.c383
-rw-r--r--drivers/video/fbdev/via/viamode.h63
-rw-r--r--drivers/video/fbdev/via/vt1636.c244
-rw-r--r--drivers/video/fbdev/via/vt1636.h (renamed from drivers/video/via/vt1636.h)2
-rw-r--r--drivers/video/fbdev/vt8500lcdfb.c500
-rw-r--r--drivers/video/fbdev/vt8500lcdfb.h34
-rw-r--r--drivers/video/fbdev/vt8623fb.c (renamed from drivers/video/vt8623fb.c)230
-rw-r--r--drivers/video/fbdev/w100fb.c (renamed from drivers/video/w100fb.c)46
-rw-r--r--drivers/video/fbdev/w100fb.h (renamed from drivers/video/w100fb.h)0
-rw-r--r--drivers/video/fbdev/wm8505fb.c421
-rw-r--r--drivers/video/fbdev/wm8505fb_regs.h76
-rw-r--r--drivers/video/fbdev/wmt_ge_rops.c182
-rw-r--r--drivers/video/fbdev/wmt_ge_rops.h28
-rw-r--r--drivers/video/fbdev/xen-fbfront.c (renamed from drivers/video/xen-fbfront.c)100
-rw-r--r--drivers/video/fbdev/xilinxfb.c509
-rw-r--r--drivers/video/fsl-diu-fb.c1732
-rw-r--r--drivers/video/fsl-diu-fb.h223
-rw-r--r--drivers/video/geode/Kconfig54
-rw-r--r--drivers/video/hdmi.c436
-rw-r--r--drivers/video/imxfb.c747
-rw-r--r--drivers/video/intelfb/Makefile10
-rw-r--r--drivers/video/kyro/STG4000Reg.h283
-rw-r--r--drivers/video/kyro/fbdev.c811
-rw-r--r--drivers/video/logo/Kconfig2
-rw-r--r--drivers/video/logo/Makefile12
-rw-r--r--drivers/video/logo/logo.c23
-rw-r--r--drivers/video/macfb.c990
-rw-r--r--drivers/video/matrox/g450_pll.c509
-rw-r--r--drivers/video/matrox/g450_pll.h10
-rw-r--r--drivers/video/matrox/matroxfb_DAC1064.c1082
-rw-r--r--drivers/video/matrox/matroxfb_Ti3026.c737
-rw-r--r--drivers/video/matrox/matroxfb_accel.c490
-rw-r--r--drivers/video/matrox/matroxfb_accel.h8
-rw-r--r--drivers/video/matrox/matroxfb_base.c2610
-rw-r--r--drivers/video/matrox/matroxfb_g450.c627
-rw-r--r--drivers/video/matrox/matroxfb_g450.h14
-rw-r--r--drivers/video/matrox/matroxfb_misc.c797
-rw-r--r--drivers/video/matrox/matroxfb_misc.h18
-rw-r--r--drivers/video/mb862xx/Makefile5
-rw-r--r--drivers/video/mb862xx/mb862xx_reg.h138
-rw-r--r--drivers/video/mb862xx/mb862xxfb.c1061
-rw-r--r--drivers/video/mb862xx/mb862xxfb.h83
-rw-r--r--drivers/video/mbx/Makefile4
-rw-r--r--drivers/video/modedb.c1063
-rw-r--r--drivers/video/of_display_timing.c265
-rw-r--r--drivers/video/of_videomode.c54
-rw-r--r--drivers/video/omap/Kconfig58
-rw-r--r--drivers/video/omap/Makefile28
-rw-r--r--drivers/video/omap/blizzard.c1568
-rw-r--r--drivers/video/omap/dispc.c1510
-rw-r--r--drivers/video/omap/dispc.h45
-rw-r--r--drivers/video/omap/lcd_h4.c117
-rw-r--r--drivers/video/omap/rfbi.c593
-rw-r--r--drivers/video/output.c132
-rw-r--r--drivers/video/pnx4008/Makefile7
-rw-r--r--drivers/video/pnx4008/dum.h211
-rw-r--r--drivers/video/pnx4008/fbcommon.h43
-rw-r--r--drivers/video/pnx4008/pnxrgbfb.c210
-rw-r--r--drivers/video/pnx4008/sdum.c872
-rw-r--r--drivers/video/pnx4008/sdum.h136
-rw-r--r--drivers/video/riva/fbdev.c2234
-rw-r--r--drivers/video/s1d13xxxfb.c793
-rw-r--r--drivers/video/s3fb.c1209
-rw-r--r--drivers/video/sa1100fb.c1579
-rw-r--r--drivers/video/sa1100fb.h145
-rw-r--r--drivers/video/sgivwfb.c893
-rw-r--r--drivers/video/sh_mobile_lcdcfb.c885
-rw-r--r--drivers/video/sis/init.c4245
-rw-r--r--drivers/video/sis/init.h1654
-rw-r--r--drivers/video/sis/osdef.h133
-rw-r--r--drivers/video/sis/vgatypes.h107
-rw-r--r--drivers/video/sm501fb.c1936
-rw-r--r--drivers/video/via/Makefile7
-rw-r--r--drivers/video/via/accel.c279
-rw-r--r--drivers/video/via/accel.h169
-rw-r--r--drivers/video/via/chip.h190
-rw-r--r--drivers/video/via/dvi.c682
-rw-r--r--drivers/video/via/global.h87
-rw-r--r--drivers/video/via/hw.c2865
-rw-r--r--drivers/video/via/hw.h933
-rw-r--r--drivers/video/via/iface.c78
-rw-r--r--drivers/video/via/iface.h38
-rw-r--r--drivers/video/via/ioctl.c112
-rw-r--r--drivers/video/via/ioctl.h210
-rw-r--r--drivers/video/via/lcd.c1821
-rw-r--r--drivers/video/via/lcdtbl.h591
-rw-r--r--drivers/video/via/share.h1105
-rw-r--r--drivers/video/via/tbl1636.c71
-rw-r--r--drivers/video/via/tbl1636.h34
-rw-r--r--drivers/video/via/via_i2c.c177
-rw-r--r--drivers/video/via/via_i2c.h46
-rw-r--r--drivers/video/via/viafbdev.c2588
-rw-r--r--drivers/video/via/viafbdev.h112
-rw-r--r--drivers/video/via/viamode.c1086
-rw-r--r--drivers/video/via/viamode.h177
-rw-r--r--drivers/video/via/vt1636.c306
-rw-r--r--drivers/video/videomode.c45
-rw-r--r--drivers/video/xilinxfb.c527
-rw-r--r--drivers/virt/Kconfig33
-rw-r--r--drivers/virt/Makefile5
-rw-r--r--drivers/virt/fsl_hypervisor.c937
-rw-r--r--drivers/virtio/Kconfig42
-rw-r--r--drivers/virtio/Makefile4
-rw-r--r--drivers/virtio/config.c1
-rw-r--r--drivers/virtio/virtio.c103
-rw-r--r--drivers/virtio/virtio_balloon.c472
-rw-r--r--drivers/virtio/virtio_mmio.c666
-rw-r--r--drivers/virtio/virtio_pci.c587
-rw-r--r--drivers/virtio/virtio_ring.c688
-rw-r--r--drivers/vlynq/Kconfig20
-rw-r--r--drivers/vlynq/Makefile5
-rw-r--r--drivers/vlynq/vlynq.c814
-rw-r--r--drivers/vme/Kconfig19
-rw-r--r--drivers/vme/Makefile7
-rw-r--r--drivers/vme/boards/Kconfig9
-rw-r--r--drivers/vme/boards/Makefile5
-rw-r--r--drivers/vme/boards/vme_vmivme7805.c110
-rw-r--r--drivers/vme/boards/vme_vmivme7805.h37
-rw-r--r--drivers/vme/bridges/Kconfig15
-rw-r--r--drivers/vme/bridges/Makefile2
-rw-r--r--drivers/vme/bridges/vme_ca91cx42.c1949
-rw-r--r--drivers/vme/bridges/vme_ca91cx42.h583
-rw-r--r--drivers/vme/bridges/vme_tsi148.c2764
-rw-r--r--drivers/vme/bridges/vme_tsi148.h1410
-rw-r--r--drivers/vme/vme.c1529
-rw-r--r--drivers/vme/vme_bridge.h174
-rw-r--r--drivers/w1/Kconfig4
-rw-r--r--drivers/w1/masters/Kconfig15
-rw-r--r--drivers/w1/masters/ds1wm.c424
-rw-r--r--drivers/w1/masters/ds2482.c93
-rw-r--r--drivers/w1/masters/ds2490.c181
-rw-r--r--drivers/w1/masters/matrox_w1.c16
-rw-r--r--drivers/w1/masters/mxc_w1.c143
-rw-r--r--drivers/w1/masters/omap_hdq.c182
-rw-r--r--drivers/w1/masters/w1-gpio.c192
-rw-r--r--drivers/w1/slaves/Kconfig77
-rw-r--r--drivers/w1/slaves/Makefile7
-rw-r--r--drivers/w1/slaves/w1_bq27000.c40
-rw-r--r--drivers/w1/slaves/w1_ds2408.c366
-rw-r--r--drivers/w1/slaves/w1_ds2413.c150
-rw-r--r--drivers/w1/slaves/w1_ds2423.c158
-rw-r--r--drivers/w1/slaves/w1_ds2431.c52
-rw-r--r--drivers/w1/slaves/w1_ds2433.c64
-rw-r--r--drivers/w1/slaves/w1_ds2760.c112
-rw-r--r--drivers/w1/slaves/w1_ds2760.h7
-rw-r--r--drivers/w1/slaves/w1_ds2780.c191
-rw-r--r--drivers/w1/slaves/w1_ds2780.h129
-rw-r--r--drivers/w1/slaves/w1_ds2781.c189
-rw-r--r--drivers/w1/slaves/w1_ds2781.h134
-rw-r--r--drivers/w1/slaves/w1_ds28e04.c442
-rw-r--r--drivers/w1/slaves/w1_smem.c6
-rw-r--r--drivers/w1/slaves/w1_therm.c139
-rw-r--r--drivers/w1/w1.c506
-rw-r--r--drivers/w1/w1.h191
-rw-r--r--drivers/w1/w1_family.c15
-rw-r--r--drivers/w1/w1_family.h26
-rw-r--r--drivers/w1/w1_int.c48
-rw-r--r--drivers/w1/w1_int.h2
-rw-r--r--drivers/w1/w1_io.c167
-rw-r--r--drivers/w1/w1_log.h2
-rw-r--r--drivers/w1/w1_netlink.c751
-rw-r--r--drivers/w1/w1_netlink.h71
-rw-r--r--drivers/watchdog/Kconfig723
-rw-r--r--drivers/watchdog/Makefile68
-rw-r--r--drivers/watchdog/acquirewdt.c69
-rw-r--r--drivers/watchdog/advantechwdt.c70
-rw-r--r--drivers/watchdog/alim1535_wdt.c58
-rw-r--r--drivers/watchdog/alim7101_wdt.c52
-rw-r--r--drivers/watchdog/ar7_wdt.c150
-rw-r--r--drivers/watchdog/at32ap700x_wdt.c53
-rw-r--r--drivers/watchdog/at91rm9200_wdt.c44
-rw-r--r--drivers/watchdog/at91sam9_wdt.c459
-rw-r--r--drivers/watchdog/at91sam9_wdt.h37
-rw-r--r--drivers/watchdog/ath79_wdt.c340
-rw-r--r--drivers/watchdog/bcm2835_wdt.c185
-rw-r--r--drivers/watchdog/bcm47xx_wdt.c257
-rw-r--r--drivers/watchdog/bcm63xx_wdt.c318
-rw-r--r--drivers/watchdog/bcm_kona_wdt.c368
-rw-r--r--drivers/watchdog/bfin_wdt.c132
-rw-r--r--drivers/watchdog/booke_wdt.c284
-rw-r--r--drivers/watchdog/coh901327_wdt.c469
-rw-r--r--drivers/watchdog/cpu5wdt.c35
-rw-r--r--drivers/watchdog/cpwd.c210
-rw-r--r--drivers/watchdog/da9052_wdt.c245
-rw-r--r--drivers/watchdog/da9055_wdt.c209
-rw-r--r--drivers/watchdog/davinci_wdt.c281
-rw-r--r--drivers/watchdog/diag288_wdt.c316
-rw-r--r--drivers/watchdog/dw_wdt.c364
-rw-r--r--drivers/watchdog/ep93xx_wdt.c252
-rw-r--r--drivers/watchdog/eurotechwdt.c67
-rw-r--r--drivers/watchdog/f71808e_wdt.c820
-rw-r--r--drivers/watchdog/gef_wdt.c58
-rw-r--r--drivers/watchdog/geodewdt.c82
-rw-r--r--drivers/watchdog/gpio_wdt.c254
-rw-r--r--drivers/watchdog/hpwdt.c466
-rw-r--r--drivers/watchdog/i6300esb.c288
-rw-r--r--drivers/watchdog/iTCO_vendor.h6
-rw-r--r--drivers/watchdog/iTCO_vendor_support.c131
-rw-r--r--drivers/watchdog/iTCO_wdt.c822
-rw-r--r--drivers/watchdog/ib700wdt.c55
-rw-r--r--drivers/watchdog/ibmasr.c26
-rw-r--r--drivers/watchdog/ie6xx_wdt.c346
-rw-r--r--drivers/watchdog/imx2_wdt.c312
-rw-r--r--drivers/watchdog/indydog.c48
-rw-r--r--drivers/watchdog/intel-mid_wdt.c184
-rw-r--r--drivers/watchdog/intel_scu_watchdog.c565
-rw-r--r--drivers/watchdog/intel_scu_watchdog.h65
-rw-r--r--drivers/watchdog/iop_wdt.c25
-rw-r--r--drivers/watchdog/it8712f_wdt.c129
-rw-r--r--drivers/watchdog/it87_wdt.c376
-rw-r--r--drivers/watchdog/ixp2000_wdt.c214
-rw-r--r--drivers/watchdog/ixp4xx_wdt.c20
-rw-r--r--drivers/watchdog/jz4740_wdt.c223
-rw-r--r--drivers/watchdog/kempld_wdt.c579
-rw-r--r--drivers/watchdog/ks8695_wdt.c45
-rw-r--r--drivers/watchdog/lantiq_wdt.c251
-rw-r--r--drivers/watchdog/m54xx_wdt.c225
-rw-r--r--drivers/watchdog/machzwd.c48
-rw-r--r--drivers/watchdog/max63xx_wdt.c258
-rw-r--r--drivers/watchdog/mena21_wdt.c270
-rw-r--r--drivers/watchdog/mixcomwd.c34
-rw-r--r--drivers/watchdog/moxart_wdt.c180
-rw-r--r--drivers/watchdog/mpc5200_wdt.c293
-rw-r--r--drivers/watchdog/mpc8xxx_wdt.c168
-rw-r--r--drivers/watchdog/mpcore_wdt.c449
-rw-r--r--drivers/watchdog/mtx-1_wdt.c60
-rw-r--r--drivers/watchdog/mv64x60_wdt.c30
-rw-r--r--drivers/watchdog/nuc900_wdt.c309
-rw-r--r--drivers/watchdog/nv_tco.c515
-rw-r--r--drivers/watchdog/nv_tco.h64
-rw-r--r--drivers/watchdog/octeon-wdt-main.c755
-rw-r--r--drivers/watchdog/octeon-wdt-nmi.S64
-rw-r--r--drivers/watchdog/of_xilinx_wdt.c249
-rw-r--r--drivers/watchdog/omap_wdt.c462
-rw-r--r--drivers/watchdog/omap_wdt.h2
-rw-r--r--drivers/watchdog/orion5x_wdt.c245
-rw-r--r--drivers/watchdog/orion_wdt.c615
-rw-r--r--drivers/watchdog/pc87413_wdt.c172
-rw-r--r--drivers/watchdog/pcwd.c169
-rw-r--r--drivers/watchdog/pcwd_pci.c189
-rw-r--r--drivers/watchdog/pcwd_usb.c272
-rw-r--r--drivers/watchdog/pika_wdt.c26
-rw-r--r--drivers/watchdog/pnx4008_wdt.c321
-rw-r--r--drivers/watchdog/pnx833x_wdt.c280
-rw-r--r--drivers/watchdog/rc32434_wdt.c293
-rw-r--r--drivers/watchdog/rdc321x_wdt.c72
-rw-r--r--drivers/watchdog/retu_wdt.c177
-rw-r--r--drivers/watchdog/riowd.c86
-rw-r--r--drivers/watchdog/rm9k_wdt.c422
-rw-r--r--drivers/watchdog/rt2880_wdt.c206
-rw-r--r--drivers/watchdog/s3c2410_wdt.c726
-rw-r--r--drivers/watchdog/sa1100_wdt.c39
-rw-r--r--drivers/watchdog/sb_wdog.c62
-rw-r--r--drivers/watchdog/sbc60xxwdt.c42
-rw-r--r--drivers/watchdog/sbc7240_wdt.c51
-rw-r--r--drivers/watchdog/sbc8360.c40
-rw-r--r--drivers/watchdog/sbc_epx_c3.c35
-rw-r--r--drivers/watchdog/sbc_fitpc2_wdt.c265
-rw-r--r--drivers/watchdog/sc1200wdt.c43
-rw-r--r--drivers/watchdog/sc520_wdt.c55
-rw-r--r--drivers/watchdog/sch311x_wdt.c90
-rw-r--r--drivers/watchdog/scx200_wdt.c27
-rw-r--r--drivers/watchdog/shwdt.c487
-rw-r--r--drivers/watchdog/sirfsoc_wdt.c226
-rw-r--r--drivers/watchdog/smsc37b787_wdt.c83
-rw-r--r--drivers/watchdog/softdog.c224
-rw-r--r--drivers/watchdog/sp5100_tco.c582
-rw-r--r--drivers/watchdog/sp5100_tco.h65
-rw-r--r--drivers/watchdog/sp805_wdt.c308
-rw-r--r--drivers/watchdog/stmp3xxx_rtc_wdt.c108
-rw-r--r--drivers/watchdog/sunxi_wdt.c237
-rw-r--r--drivers/watchdog/tegra_wdt.c302
-rw-r--r--drivers/watchdog/ts72xx_wdt.c452
-rw-r--r--drivers/watchdog/twl4030_wdt.c154
-rw-r--r--drivers/watchdog/txx9wdt.c220
-rw-r--r--drivers/watchdog/ux500_wdt.c169
-rw-r--r--drivers/watchdog/via_wdt.c260
-rw-r--r--drivers/watchdog/w83627hf_wdt.c539
-rw-r--r--drivers/watchdog/w83697hf_wdt.c467
-rw-r--r--drivers/watchdog/w83697ug_wdt.c392
-rw-r--r--drivers/watchdog/w83877f_wdt.c42
-rw-r--r--drivers/watchdog/w83977f_wdt.c44
-rw-r--r--drivers/watchdog/wafer5823wdt.c39
-rw-r--r--drivers/watchdog/watchdog_core.c226
-rw-r--r--drivers/watchdog/watchdog_core.h37
-rw-r--r--drivers/watchdog/watchdog_dev.c604
-rw-r--r--drivers/watchdog/wd501p.h24
-rw-r--r--drivers/watchdog/wdrtas.c110
-rw-r--r--drivers/watchdog/wdt.c190
-rw-r--r--drivers/watchdog/wdt285.c17
-rw-r--r--drivers/watchdog/wdt977.c48
-rw-r--r--drivers/watchdog/wdt_pci.c254
-rw-r--r--drivers/watchdog/wm831x_wdt.c312
-rw-r--r--drivers/watchdog/wm8350_wdt.c243
-rw-r--r--drivers/watchdog/xen_wdt.c364
-rw-r--r--drivers/xen/Kconfig206
-rw-r--r--drivers/xen/Makefile42
-rw-r--r--drivers/xen/acpi.c77
-rw-r--r--drivers/xen/balloon.c735
-rw-r--r--drivers/xen/biomerge.c15
-rw-r--r--drivers/xen/cpu_hotplug.c54
-rw-r--r--drivers/xen/dbgp.c50
-rw-r--r--drivers/xen/events.c837
-rw-r--r--drivers/xen/events/Makefile5
-rw-r--r--drivers/xen/events/events_2l.c365
-rw-r--r--drivers/xen/events/events_base.c1693
-rw-r--r--drivers/xen/events/events_fifo.c443
-rw-r--r--drivers/xen/events/events_internal.h151
-rw-r--r--drivers/xen/evtchn.c586
-rw-r--r--drivers/xen/fallback.c81
-rw-r--r--drivers/xen/gntalloc.c610
-rw-r--r--drivers/xen/gntdev.c867
-rw-r--r--drivers/xen/grant-table.c867
-rw-r--r--drivers/xen/manage.c215
-rw-r--r--drivers/xen/mcelog.c406
-rw-r--r--drivers/xen/pci.c243
-rw-r--r--drivers/xen/pcpu.c406
-rw-r--r--drivers/xen/platform-pci.c200
-rw-r--r--drivers/xen/privcmd.c630
-rw-r--r--drivers/xen/privcmd.h3
-rw-r--r--drivers/xen/swiotlb-xen.c685
-rw-r--r--drivers/xen/sys-hypervisor.c460
-rw-r--r--drivers/xen/tmem.c426
-rw-r--r--drivers/xen/xen-acpi-cpuhotplug.c462
-rw-r--r--drivers/xen/xen-acpi-memhotplug.c485
-rw-r--r--drivers/xen/xen-acpi-pad.c170
-rw-r--r--drivers/xen/xen-acpi-processor.c597
-rw-r--r--drivers/xen/xen-balloon.c259
-rw-r--r--drivers/xen/xen-pciback/Makefile7
-rw-r--r--drivers/xen/xen-pciback/conf_space.c438
-rw-r--r--drivers/xen/xen-pciback/conf_space.h126
-rw-r--r--drivers/xen/xen-pciback/conf_space_capability.c207
-rw-r--r--drivers/xen/xen-pciback/conf_space_header.c385
-rw-r--r--drivers/xen/xen-pciback/conf_space_quirks.c139
-rw-r--r--drivers/xen/xen-pciback/conf_space_quirks.h33
-rw-r--r--drivers/xen/xen-pciback/passthrough.c188
-rw-r--r--drivers/xen/xen-pciback/pci_stub.c1540
-rw-r--r--drivers/xen/xen-pciback/pciback.h192
-rw-r--r--drivers/xen/xen-pciback/pciback_ops.c387
-rw-r--r--drivers/xen/xen-pciback/vpci.c262
-rw-r--r--drivers/xen/xen-pciback/xenbus.c747
-rw-r--r--drivers/xen/xen-selfballoon.c579
-rw-r--r--drivers/xen/xen-stub.c100
-rw-r--r--drivers/xen/xenbus/Makefile7
-rw-r--r--drivers/xen/xenbus/xenbus_client.c338
-rw-r--r--drivers/xen/xenbus/xenbus_comms.c25
-rw-r--r--drivers/xen/xenbus/xenbus_comms.h6
-rw-r--r--drivers/xen/xenbus/xenbus_dev_backend.c142
-rw-r--r--drivers/xen/xenbus/xenbus_dev_frontend.c631
-rw-r--r--drivers/xen/xenbus/xenbus_probe.c607
-rw-r--r--drivers/xen/xenbus/xenbus_probe.h50
-rw-r--r--drivers/xen/xenbus/xenbus_probe_backend.c274
-rw-r--r--drivers/xen/xenbus/xenbus_probe_frontend.c510
-rw-r--r--drivers/xen/xenbus/xenbus_xs.c193
-rw-r--r--drivers/xen/xencomm.c217
-rw-r--r--drivers/xen/xenfs/Makefile3
-rw-r--r--drivers/xen/xenfs/super.c55
-rw-r--r--drivers/xen/xenfs/xenbus.c593
-rw-r--r--drivers/xen/xenfs/xenfs.h3
-rw-r--r--drivers/xen/xenfs/xenstored.c68
-rw-r--r--drivers/zorro/Makefile3
-rw-r--r--drivers/zorro/names.c11
-rw-r--r--drivers/zorro/proc.c47
-rw-r--r--drivers/zorro/zorro-driver.c38
-rw-r--r--drivers/zorro/zorro-sysfs.c35
-rw-r--r--drivers/zorro/zorro.c263
-rw-r--r--drivers/zorro/zorro.h5
-rw-r--r--drivers/zorro/zorro.ids4
19134 files changed, 7514973 insertions, 2344630 deletions
diff --git a/drivers/Kconfig b/drivers/Kconfig
index 00cf9553f74..0e87a34b647 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -1,9 +1,9 @@
-# drivers/Kconfig
-
menu "Device Drivers"
source "drivers/base/Kconfig"
+source "drivers/bus/Kconfig"
+
source "drivers/connector/Kconfig"
source "drivers/mtd/Kconfig"
@@ -28,9 +28,11 @@ source "drivers/ata/Kconfig"
source "drivers/md/Kconfig"
+source "drivers/target/Kconfig"
+
source "drivers/message/fusion/Kconfig"
-source "drivers/ieee1394/Kconfig"
+source "drivers/firewire/Kconfig"
source "drivers/message/i2o/Kconfig"
@@ -40,8 +42,6 @@ source "drivers/net/Kconfig"
source "drivers/isdn/Kconfig"
-source "drivers/telephony/Kconfig"
-
# input before char - char/joystick depends on it. As does USB.
source "drivers/input/Kconfig"
@@ -52,6 +52,16 @@ source "drivers/i2c/Kconfig"
source "drivers/spi/Kconfig"
+source "drivers/spmi/Kconfig"
+
+source "drivers/hsi/Kconfig"
+
+source "drivers/pps/Kconfig"
+
+source "drivers/ptp/Kconfig"
+
+source "drivers/pinctrl/Kconfig"
+
source "drivers/gpio/Kconfig"
source "drivers/w1/Kconfig"
@@ -66,6 +76,8 @@ source "drivers/watchdog/Kconfig"
source "drivers/ssb/Kconfig"
+source "drivers/bcma/Kconfig"
+
source "drivers/mfd/Kconfig"
source "drivers/regulator/Kconfig"
@@ -104,9 +116,64 @@ source "drivers/auxdisplay/Kconfig"
source "drivers/uio/Kconfig"
+source "drivers/vfio/Kconfig"
+
+source "drivers/vlynq/Kconfig"
+
+source "drivers/virt/Kconfig"
+
+source "drivers/virtio/Kconfig"
+
+source "drivers/hv/Kconfig"
+
source "drivers/xen/Kconfig"
source "drivers/staging/Kconfig"
source "drivers/platform/Kconfig"
+
+source "drivers/soc/Kconfig"
+
+source "drivers/clk/Kconfig"
+
+source "drivers/hwspinlock/Kconfig"
+
+source "drivers/clocksource/Kconfig"
+
+source "drivers/mailbox/Kconfig"
+
+source "drivers/iommu/Kconfig"
+
+source "drivers/remoteproc/Kconfig"
+
+source "drivers/rpmsg/Kconfig"
+
+source "drivers/devfreq/Kconfig"
+
+source "drivers/extcon/Kconfig"
+
+source "drivers/memory/Kconfig"
+
+source "drivers/iio/Kconfig"
+
+source "drivers/ntb/Kconfig"
+
+source "drivers/vme/Kconfig"
+
+source "drivers/pwm/Kconfig"
+
+source "drivers/irqchip/Kconfig"
+
+source "drivers/ipack/Kconfig"
+
+source "drivers/reset/Kconfig"
+
+source "drivers/fmc/Kconfig"
+
+source "drivers/phy/Kconfig"
+
+source "drivers/powercap/Kconfig"
+
+source "drivers/mcb/Kconfig"
+
endmenu
diff --git a/drivers/Makefile b/drivers/Makefile
index c1bf4173793..f98b50d8251 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -5,24 +5,49 @@
# Rewritten to use lists instead of if-statements.
#
+obj-y += irqchip/
+obj-y += bus/
+
+obj-$(CONFIG_GENERIC_PHY) += phy/
+
+# GPIO must come after pinctrl as gpios may need to mux pins etc
+obj-y += pinctrl/
obj-y += gpio/
+obj-y += pwm/
obj-$(CONFIG_PCI) += pci/
obj-$(CONFIG_PARISC) += parisc/
obj-$(CONFIG_RAPIDIO) += rapidio/
obj-y += video/
+obj-y += idle/
+
+# IPMI must come before ACPI in order to provide IPMI opregion support
+obj-$(CONFIG_IPMI_HANDLER) += char/ipmi/
+
obj-$(CONFIG_ACPI) += acpi/
+obj-$(CONFIG_SFI) += sfi/
# PnP must come after ACPI since it will eventually need to check if acpi
# was used and do nothing if so
obj-$(CONFIG_PNP) += pnp/
-obj-$(CONFIG_ARM_AMBA) += amba/
+obj-y += amba/
+# Many drivers will want to use DMA so this has to be made available
+# really early.
+obj-$(CONFIG_DMADEVICES) += dma/
+# SOC specific infrastructure drivers.
+obj-y += soc/
+
+obj-$(CONFIG_VIRTIO) += virtio/
obj-$(CONFIG_XEN) += xen/
# regulators early, since some subsystems rely on them to initialize
obj-$(CONFIG_REGULATOR) += regulator/
-# char/ comes before serial/ etc so that the VT console is the boot-time
+# reset controllers early, since gpu drivers might rely on them to initialize
+obj-$(CONFIG_RESET_CONTROLLER) += reset/
+
+# tty/ comes before char/ so that the VT console is the boot-time
# default.
+obj-y += tty/
obj-y += char/
# gpu/ comes after char for AGP vs DRM startup
@@ -31,78 +56,105 @@ obj-y += gpu/
obj-$(CONFIG_CONNECTOR) += connector/
# i810fb and intelfb depend on char/agp/
-obj-$(CONFIG_FB_I810) += video/i810/
-obj-$(CONFIG_FB_INTEL) += video/intelfb/
+obj-$(CONFIG_FB_I810) += video/fbdev/i810/
+obj-$(CONFIG_FB_INTEL) += video/fbdev/intelfb/
-obj-y += serial/
obj-$(CONFIG_PARPORT) += parport/
-obj-y += base/ block/ misc/ mfd/ net/ media/
+obj-y += base/ block/ misc/ mfd/ nfc/
obj-$(CONFIG_NUBUS) += nubus/
-obj-$(CONFIG_ATM) += atm/
obj-y += macintosh/
obj-$(CONFIG_IDE) += ide/
obj-$(CONFIG_SCSI) += scsi/
obj-$(CONFIG_ATA) += ata/
+obj-$(CONFIG_TARGET_CORE) += target/
+obj-$(CONFIG_MTD) += mtd/
+obj-$(CONFIG_SPI) += spi/
+obj-$(CONFIG_SPMI) += spmi/
+obj-y += hsi/
+obj-y += net/
+obj-$(CONFIG_ATM) += atm/
obj-$(CONFIG_FUSION) += message/
-obj-$(CONFIG_FIREWIRE) += firewire/
-obj-y += ieee1394/
+obj-y += firewire/
obj-$(CONFIG_UIO) += uio/
+obj-$(CONFIG_VFIO) += vfio/
obj-y += cdrom/
obj-y += auxdisplay/
-obj-$(CONFIG_MTD) += mtd/
-obj-$(CONFIG_SPI) += spi/
obj-$(CONFIG_PCCARD) += pcmcia/
obj-$(CONFIG_DIO) += dio/
obj-$(CONFIG_SBUS) += sbus/
obj-$(CONFIG_ZORRO) += zorro/
-obj-$(CONFIG_MAC) += macintosh/
obj-$(CONFIG_ATA_OVER_ETH) += block/aoe/
obj-$(CONFIG_PARIDE) += block/paride/
obj-$(CONFIG_TC) += tc/
obj-$(CONFIG_UWB) += uwb/
-obj-$(CONFIG_USB_OTG_UTILS) += usb/otg/
+obj-$(CONFIG_USB_PHY) += usb/
obj-$(CONFIG_USB) += usb/
-obj-$(CONFIG_USB_MUSB_HDRC) += usb/musb/
obj-$(CONFIG_PCI) += usb/
-obj-$(CONFIG_USB_GADGET) += usb/gadget/
+obj-$(CONFIG_USB_GADGET) += usb/
obj-$(CONFIG_SERIO) += input/serio/
obj-$(CONFIG_GAMEPORT) += input/gameport/
obj-$(CONFIG_INPUT) += input/
obj-$(CONFIG_I2O) += message/
obj-$(CONFIG_RTC_LIB) += rtc/
-obj-y += i2c/
+obj-y += i2c/ media/
+obj-$(CONFIG_PPS) += pps/
+obj-$(CONFIG_PTP_1588_CLOCK) += ptp/
obj-$(CONFIG_W1) += w1/
obj-$(CONFIG_POWER_SUPPLY) += power/
obj-$(CONFIG_HWMON) += hwmon/
obj-$(CONFIG_THERMAL) += thermal/
obj-$(CONFIG_WATCHDOG) += watchdog/
-obj-$(CONFIG_PHONE) += telephony/
obj-$(CONFIG_MD) += md/
obj-$(CONFIG_BT) += bluetooth/
obj-$(CONFIG_ACCESSIBILITY) += accessibility/
obj-$(CONFIG_ISDN) += isdn/
obj-$(CONFIG_EDAC) += edac/
-obj-$(CONFIG_MCA) += mca/
obj-$(CONFIG_EISA) += eisa/
obj-y += lguest/
obj-$(CONFIG_CPU_FREQ) += cpufreq/
obj-$(CONFIG_CPU_IDLE) += cpuidle/
-obj-y += idle/
-obj-$(CONFIG_MMC) += mmc/
+obj-y += mmc/
obj-$(CONFIG_MEMSTICK) += memstick/
-obj-$(CONFIG_NEW_LEDS) += leds/
+obj-y += leds/
obj-$(CONFIG_INFINIBAND) += infiniband/
obj-$(CONFIG_SGI_SN) += sn/
obj-y += firmware/
obj-$(CONFIG_CRYPTO) += crypto/
obj-$(CONFIG_SUPERH) += sh/
-obj-$(CONFIG_GENERIC_TIME) += clocksource/
-obj-$(CONFIG_DMA_ENGINE) += dma/
+obj-$(CONFIG_ARCH_SHMOBILE) += sh/
+ifndef CONFIG_ARCH_USES_GETTIMEOFFSET
+obj-y += clocksource/
+endif
obj-$(CONFIG_DCA) += dca/
obj-$(CONFIG_HID) += hid/
obj-$(CONFIG_PPC_PS3) += ps3/
obj-$(CONFIG_OF) += of/
obj-$(CONFIG_SSB) += ssb/
-obj-$(CONFIG_VIRTIO) += virtio/
+obj-$(CONFIG_BCMA) += bcma/
+obj-$(CONFIG_VHOST_RING) += vhost/
+obj-$(CONFIG_VLYNQ) += vlynq/
obj-$(CONFIG_STAGING) += staging/
obj-y += platform/
+#common clk code
+obj-y += clk/
+
+obj-$(CONFIG_MAILBOX) += mailbox/
+obj-$(CONFIG_HWSPINLOCK) += hwspinlock/
+obj-$(CONFIG_IOMMU_SUPPORT) += iommu/
+obj-$(CONFIG_REMOTEPROC) += remoteproc/
+obj-$(CONFIG_RPMSG) += rpmsg/
+
+# Virtualization drivers
+obj-$(CONFIG_VIRT_DRIVERS) += virt/
+obj-$(CONFIG_HYPERV) += hv/
+
+obj-$(CONFIG_PM_DEVFREQ) += devfreq/
+obj-$(CONFIG_EXTCON) += extcon/
+obj-$(CONFIG_MEMORY) += memory/
+obj-$(CONFIG_IIO) += iio/
+obj-$(CONFIG_VME_BUS) += vme/
+obj-$(CONFIG_IPACK_BUS) += ipack/
+obj-$(CONFIG_NTB) += ntb/
+obj-$(CONFIG_FMC) += fmc/
+obj-$(CONFIG_POWERCAP) += powercap/
+obj-$(CONFIG_MCB) += mcb/
diff --git a/drivers/accessibility/braille/braille_console.c b/drivers/accessibility/braille/braille_console.c
index d672cfe7ca5..dc34a5b8bce 100644
--- a/drivers/accessibility/braille/braille_console.c
+++ b/drivers/accessibility/braille/braille_console.c
@@ -21,7 +21,6 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <linux/autoconf.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
@@ -45,7 +44,7 @@ MODULE_LICENSE("GPL");
*/
/* Emit various sounds */
-static int sound;
+static bool sound;
module_param(sound, bool, 0);
MODULE_PARM_DESC(sound, "emit sounds");
@@ -245,16 +244,13 @@ static int keyboard_notifier_call(struct notifier_block *blk,
switch (val) {
case KVAL(K_CAPS):
- on_off = vc_kbd_led(kbd_table + fg_console,
- VC_CAPSLOCK);
+ on_off = vt_get_leds(fg_console, VC_CAPSLOCK);
break;
case KVAL(K_NUM):
- on_off = vc_kbd_led(kbd_table + fg_console,
- VC_NUMLOCK);
+ on_off = vt_get_leds(fg_console, VC_NUMLOCK);
break;
case KVAL(K_HOLD):
- on_off = vc_kbd_led(kbd_table + fg_console,
- VC_SCROLLOCK);
+ on_off = vt_get_leds(fg_console, VC_SCROLLOCK);
break;
}
if (on_off == 1)
@@ -363,6 +359,9 @@ int braille_register_console(struct console *console, int index,
char *console_options, char *braille_options)
{
int ret;
+
+ if (!(console->flags & CON_BRL))
+ return 0;
if (!console_options)
/* Only support VisioBraille for now */
console_options = "57600o8";
@@ -378,15 +377,17 @@ int braille_register_console(struct console *console, int index,
braille_co = console;
register_keyboard_notifier(&keyboard_notifier_block);
register_vt_notifier(&vt_notifier_block);
- return 0;
+ return 1;
}
int braille_unregister_console(struct console *console)
{
if (braille_co != console)
return -EINVAL;
+ if (!(console->flags & CON_BRL))
+ return 0;
unregister_keyboard_notifier(&keyboard_notifier_block);
unregister_vt_notifier(&vt_notifier_block);
braille_co = NULL;
- return 0;
+ return 1;
}
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index d7f9839ba26..a34a2284100 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -7,12 +7,11 @@ menuconfig ACPI
depends on !IA64_HP_SIM
depends on IA64 || X86
depends on PCI
- depends on PM
select PNP
default y
- ---help---
+ help
Advanced Configuration and Power Interface (ACPI) support for
- Linux requires an ACPI compliant platform (hardware/firmware),
+ Linux requires an ACPI-compliant platform (hardware/firmware),
and assumes the presence of OS-directed configuration and power
management (OSPM) software. This option will enlarge your
kernel by about 70K.
@@ -22,21 +21,24 @@ menuconfig ACPI
the Plug-and-Play BIOS specification (PnP BIOS), the
MultiProcessor Specification (MPS), and the Advanced Power
Management (APM) specification. If both ACPI and APM support
- are configured, whichever is loaded first shall be used.
+ are configured, ACPI is used.
- The ACPI SourceForge project contains the latest source code,
- documentation, tools, mailing list subscription, and other
- information. This project is available at:
- <http://sourceforge.net/projects/acpi>
+ The project home page for the Linux ACPI subsystem is here:
+ <https://01.org/linux-acpi>
Linux support for ACPI is based on Intel Corporation's ACPI
- Component Architecture (ACPI CA). For more information see:
- <http://developer.intel.com/technology/iapc/acpi>
-
- ACPI is an open industry specification co-developed by Compaq,
- Intel, Microsoft, Phoenix, and Toshiba. The specification is
- available at:
+ Component Architecture (ACPI CA). For more information on the
+ ACPI CA, see:
+ <http://acpica.org/>
+
+ ACPI is an open industry specification originally co-developed by
+ Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
+ it is developed by the ACPI Specification Working Group (ASWG) under
+ the UEFI Forum and any UEFI member can join the ASWG and contribute
+ to the ACPI specification.
+ The specification is available at:
<http://www.acpi.info>
+ <http://www.uefi.org/acpi/specs>
if ACPI
@@ -45,31 +47,10 @@ config ACPI_SLEEP
depends on SUSPEND || HIBERNATION
default y
-config ACPI_PROCFS
- bool "Deprecated /proc/acpi files"
- depends on PROC_FS
- ---help---
- For backwards compatibility, this option allows
- deprecated /proc/acpi/ files to exist, even when
- they have been replaced by functions in /sys.
- The deprecated files (and their replacements) include:
-
- /proc/acpi/sleep (/sys/power/state)
- /proc/acpi/info (/sys/modules/acpi/parameters/acpica_version)
- /proc/acpi/dsdt (/sys/firmware/acpi/tables/DSDT)
- /proc/acpi/fadt (/sys/firmware/acpi/tables/FACP)
- /proc/acpi/debug_layer (/sys/module/acpi/parameters/debug_layer)
- /proc/acpi/debug_level (/sys/module/acpi/parameters/debug_level)
-
- This option has no effect on /proc/acpi/ files
- and functions which do not yet exist in /sys.
-
- Say N to delete /proc/acpi/ files that have moved to /sys/
config ACPI_PROCFS_POWER
bool "Deprecated power /proc/acpi directories"
depends on PROC_FS
- default y
- ---help---
+ help
For backwards compatibility, this option allows
deprecated power /proc/acpi/ directories to exist, even when
they have been replaced by functions in /sys.
@@ -78,100 +59,125 @@ config ACPI_PROCFS_POWER
/proc/acpi/ac_adapter/* (sys/class/power_supply/*)
This option has no effect on /proc/acpi/ directories
and functions, which do not yet exist in /sys
+ This option, together with the proc directories, will be
+ deleted in the future.
Say N to delete power /proc/acpi/ directories that have moved to /sys/
-config ACPI_SYSFS_POWER
- bool "Future power /sys interface"
- select POWER_SUPPLY
- default y
- ---help---
- Say N to disable power /sys interface
-
-config ACPI_PROC_EVENT
- bool "Deprecated /proc/acpi/event support"
- depends on PROC_FS
- default y
- ---help---
- A user-space daemon, acpi, typically read /proc/acpi/event
- and handled all ACPI sub-system generated events.
-
- These events are now delivered to user-space via
- either the input layer, or as netlink events.
-
- This build option enables the old code for legacy
- user-space implementation. After some time, this will
- be moved under CONFIG_ACPI_PROCFS, and then deleted.
-
- Say Y here to retain the old behaviour. Say N if your
- user-space is newer than kernel 2.6.23 (September 2007).
+config ACPI_EC_DEBUGFS
+ tristate "EC read/write access through /sys/kernel/debug/ec"
+ default n
+ help
+ Say N to disable Embedded Controller /sys/kernel/debug interface
+
+ Be aware that using this interface can confuse your Embedded
+ Controller in a way that a normal reboot is not enough. You then
+ have to power off your system, and remove the laptop battery for
+ some seconds.
+ An Embedded Controller typically is available on laptops and reads
+ sensor values like battery state and temperature.
+ The kernel accesses the EC through ACPI parsed code provided by BIOS
+ tables. This option allows to access the EC directly without ACPI
+ code being involved.
+ Thus this option is a debug option that helps to write ACPI drivers
+ and can be used to identify ACPI code or EC firmware bugs.
config ACPI_AC
tristate "AC Adapter"
depends on X86
+ select POWER_SUPPLY
default y
help
- This driver adds support for the AC Adapter object, which indicates
- whether a system is on AC, or not. If you have a system that can
+ This driver supports the AC Adapter object, which indicates
+ whether a system is on AC or not. If you have a system that can
switch between A/C and battery, say Y.
+ To compile this driver as a module, choose M here:
+ the module will be called ac.
+
config ACPI_BATTERY
tristate "Battery"
depends on X86
+ select POWER_SUPPLY
default y
help
This driver adds support for battery information through
/proc/acpi/battery. If you have a mobile system with a battery,
say Y.
+ To compile this driver as a module, choose M here:
+ the module will be called battery.
+
config ACPI_BUTTON
tristate "Button"
depends on INPUT
default y
help
- This driver handles events on the power, sleep and lid buttons.
- A daemon reads /proc/acpi/event and perform user-defined actions
- such as shutting down the system. This is necessary for
- software controlled poweroff.
+ This driver handles events on the power, sleep, and lid buttons.
+ A daemon reads events from input devices or via netlink and
+ performs user-defined actions such as shutting down the system.
+ This is necessary for software-controlled poweroff.
+
+ To compile this driver as a module, choose M here:
+ the module will be called button.
config ACPI_VIDEO
tristate "Video"
- depends on X86 && BACKLIGHT_CLASS_DEVICE && VIDEO_OUTPUT_CONTROL
+ depends on X86 && BACKLIGHT_CLASS_DEVICE
depends on INPUT
select THERMAL
help
- This driver implement the ACPI Extensions For Display Adapters
+ This driver implements the ACPI Extensions For Display Adapters
for integrated graphics devices on motherboard, as specified in
- ACPI 2.0 Specification, Appendix B, allowing to perform some basic
- control like defining the video POST device, retrieving EDID information
- or to setup a video output, etc.
- Note that this is an ref. implementation only. It may or may not work
- for your integrated video device.
+ ACPI 2.0 Specification, Appendix B. This supports basic operations
+ such as defining the video POST device, retrieving EDID information,
+ and setting up a video output.
+
+ To compile this driver as a module, choose M here:
+ the module will be called video.
config ACPI_FAN
tristate "Fan"
select THERMAL
default y
help
- This driver adds support for ACPI fan devices, allowing user-mode
+ This driver supports ACPI fan devices, allowing user-mode
applications to perform basic fan control (on, off, status).
+ To compile this driver as a module, choose M here:
+ the module will be called fan.
+
config ACPI_DOCK
bool "Dock"
- depends on EXPERIMENTAL
help
- This driver adds support for ACPI controlled docking stations and removable
- drive bays such as the IBM ultrabay or the Dell Module Bay.
+ This driver supports ACPI-controlled docking stations and removable
+ drive bays such as the IBM Ultrabay and the Dell Module Bay.
config ACPI_PROCESSOR
tristate "Processor"
select THERMAL
+ select CPU_IDLE
default y
help
- This driver installs ACPI as the idle handler for Linux, and uses
- ACPI C2 and C3 processor states to save power, on systems that
+ This driver installs ACPI as the idle handler for Linux and uses
+ ACPI C2 and C3 processor states to save power on systems that
support it. It is required by several flavors of cpufreq
- Performance-state drivers.
+ performance-state drivers.
+
+ To compile this driver as a module, choose M here:
+ the module will be called processor.
+
+config ACPI_IPMI
+ tristate "IPMI"
+ depends on IPMI_SI
+ default n
+ help
+ This driver enables the ACPI to access the BMC controller. And it
+ uses the IPMI request/response message to communicate with BMC
+ controller, which can be found on on the server.
+
+ To compile this driver as a module, choose M here:
+ the module will be called as acpi_ipmi.
config ACPI_HOTPLUG_CPU
bool
@@ -179,17 +185,31 @@ config ACPI_HOTPLUG_CPU
select ACPI_CONTAINER
default y
+config ACPI_PROCESSOR_AGGREGATOR
+ tristate "Processor Aggregator"
+ depends on ACPI_PROCESSOR
+ depends on X86
+ help
+ ACPI 4.0 defines processor Aggregator, which enables OS to perform
+ specific processor configuration and control that applies to all
+ processors in the platform. Currently only logical processor idling
+ is defined, which is to reduce power consumption. This driver
+ supports the new device.
+
config ACPI_THERMAL
tristate "Thermal Zone"
depends on ACPI_PROCESSOR
select THERMAL
default y
help
- This driver adds support for ACPI thermal zones. Most mobile and
+ This driver supports ACPI thermal zones. Most mobile and
some desktop systems support ACPI thermal zones. It is HIGHLY
recommended that this option be enabled, as your processor(s)
may be damaged without it.
+ To compile this driver as a module, choose M here:
+ the module will be called thermal.
+
config ACPI_NUMA
bool "NUMA support"
depends on NUMA
@@ -213,16 +233,15 @@ config ACPI_CUSTOM_DSDT
bool
default ACPI_CUSTOM_DSDT_FILE != ""
-config ACPI_BLACKLIST_YEAR
- int "Disable ACPI for systems before Jan 1st this year" if X86_32
- default 0
+config ACPI_INITRD_TABLE_OVERRIDE
+ bool "ACPI tables override via initrd"
+ depends on BLK_DEV_INITRD && X86
+ default n
help
- enter a 4-digit year, eg. 2001 to disable ACPI by default
- on platforms with DMI BIOS date before January 1st that year.
- "acpi=force" can be used to override this mechanism.
-
- Enter 0 to disable this mechanism and allow ACPI to
- run by default no matter what the year. (default)
+ This option provides functionality to override arbitrary ACPI tables
+ via initrd. No functional change if no ACPI tables are passed via
+ initrd, therefore it's safe to say Y.
+ See Documentation/acpi/initrd_table_override.txt for details
config ACPI_DEBUG
bool "Debug Statements"
@@ -236,32 +255,18 @@ config ACPI_DEBUG
Documentation/kernel-parameters.txt to control the type and
amount of debug output.
-config ACPI_DEBUG_FUNC_TRACE
- bool "Additionally enable ACPI function tracing"
- default n
- depends on ACPI_DEBUG
- help
- ACPI Debug Statements slow down ACPI processing. Function trace
- is about half of the penalty and is rarely useful.
-
config ACPI_PCI_SLOT
- tristate "PCI slot detection driver"
+ bool "PCI slot detection driver"
+ depends on SYSFS
default n
help
- This driver will attempt to discover all PCI slots in your system,
- and creates entries in /sys/bus/pci/slots/. This feature can
- help you correlate PCI bus addresses with the physical geography
- of your slots. If you are unsure, say N.
-
-config ACPI_SYSTEM
- bool
- default y
- help
- This driver will enable your system to shut down using ACPI, and
- dump your ACPI DSDT table using /proc/acpi/dsdt.
+ This driver creates entries in /sys/bus/pci/slots/ for all PCI
+ slots in the system. This can help correlate PCI bus addresses,
+ i.e., segment/bus/device/function tuples, with physical slots in
+ the system. If you are unsure, say N.
config X86_PM_TIMER
- bool "Power Management Timer Support" if EMBEDDED
+ bool "Power Management Timer Support" if EXPERT
depends on X86
default y
help
@@ -277,43 +282,108 @@ config X86_PM_TIMER
systems require this timer.
config ACPI_CONTAINER
- tristate "ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)"
- depends on EXPERIMENTAL
- default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO)
- ---help---
- This allows _physical_ insertion and removal of CPUs and memory.
- This can be useful, for example, on NUMA machines that support
- ACPI based physical hotplug of nodes, or non-NUMA machines that
- support physical cpu/memory hot-plug.
-
- If one selects "m", this driver can be loaded with
- "modprobe acpi_container".
+ bool "Container and Module Devices"
+ default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
+ help
+ This driver supports ACPI Container and Module devices (IDs
+ ACPI0004, PNP0A05, and PNP0A06).
+
+ This helps support hotplug of nodes, CPUs, and memory.
+
+ To compile this driver as a module, choose M here:
+ the module will be called container.
config ACPI_HOTPLUG_MEMORY
- tristate "Memory Hotplug"
+ bool "Memory Hotplug"
depends on MEMORY_HOTPLUG
- default n
help
- This driver adds supports for ACPI Memory Hotplug. This driver
- provides support for fielding notifications on ACPI memory
- devices (PNP0C80) which represent memory ranges that may be
- onlined or offlined during runtime.
+ This driver supports ACPI memory hotplug. The driver
+ fields notifications on ACPI memory devices (PNP0C80),
+ which represent memory ranges that may be onlined or
+ offlined during runtime.
- Enabling this driver assumes that your platform hardware
- and firmware have support for hot-plugging physical memory. If
- your system does not support physically adding or ripping out
- memory DIMMs at some platform defined granularity (individually
- or as a bank) at runtime, then you need not enable this driver.
+ If your hardware and firmware do not support adding or
+ removing memory devices at runtime, you need not enable
+ this driver.
- If one selects "m," this driver can be loaded using the following
- command:
- $>modprobe acpi_memhotplug
+ To compile this driver as a module, choose M here:
+ the module will be called acpi_memhotplug.
config ACPI_SBS
tristate "Smart Battery System"
depends on X86
+ select POWER_SUPPLY
help
- This driver adds support for the Smart Battery System, another
+ This driver supports the Smart Battery System, another
type of access to battery information, found on some laptops.
+ To compile this driver as a module, choose M here:
+ the modules will be called sbs and sbshc.
+
+config ACPI_HED
+ tristate "Hardware Error Device"
+ help
+ This driver supports the Hardware Error Device (PNP0C33),
+ which is used to report some hardware errors notified via
+ SCI, mainly the corrected errors.
+
+config ACPI_CUSTOM_METHOD
+ tristate "Allow ACPI methods to be inserted/replaced at run time"
+ depends on DEBUG_FS
+ default n
+ help
+ This debug facility allows ACPI AML methods to be inserted and/or
+ replaced without rebooting the system. For details refer to:
+ Documentation/acpi/method-customizing.txt.
+
+ NOTE: This option is security sensitive, because it allows arbitrary
+ kernel memory to be written to by root (uid=0) users, allowing them
+ to bypass certain security measures (e.g. if root is not allowed to
+ load additional kernel modules after boot, this feature may be used
+ to override that restriction).
+
+config ACPI_BGRT
+ bool "Boottime Graphics Resource Table support"
+ depends on EFI && X86
+ help
+ This driver adds support for exposing the ACPI Boottime Graphics
+ Resource Table, which allows the operating system to obtain
+ data from the firmware boot splash. It will appear under
+ /sys/firmware/acpi/bgrt/ .
+
+config ACPI_REDUCED_HARDWARE_ONLY
+ bool "Hardware-reduced ACPI support only" if EXPERT
+ def_bool n
+ depends on ACPI
+ help
+ This config item changes the way the ACPI code is built. When this
+ option is selected, the kernel will use a specialized version of
+ ACPICA that ONLY supports the ACPI "reduced hardware" mode. The
+ resulting kernel will be smaller but it will also be restricted to
+ running in ACPI reduced hardware mode ONLY.
+
+ If you are unsure what to do, do not enable this option.
+
+source "drivers/acpi/apei/Kconfig"
+
+config ACPI_EXTLOG
+ tristate "Extended Error Log support"
+ depends on X86_MCE && X86_LOCAL_APIC
+ select UEFI_CPER
+ default n
+ help
+ Certain usages such as Predictive Failure Analysis (PFA) require
+ more information about the error than what can be described in
+ processor machine check banks. Most server processors log
+ additional information about the error in processor uncore
+ registers. Since the addresses and layout of these registers vary
+ widely from one processor to another, system software cannot
+ readily make use of them. To complicate matters further, some of
+ the additional error information cannot be constructed without
+ detailed knowledge about platform topology.
+
+ Enhanced MCA Logging allows firmware to provide additional error
+ information to system software, synchronous with MCE or CMCI. This
+ driver adds support for that functionality.
+
endif # ACPI
diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
index 65d90c720b5..ea55e0179f8 100644
--- a/drivers/acpi/Makefile
+++ b/drivers/acpi/Makefile
@@ -14,48 +14,74 @@ obj-$(CONFIG_X86) += blacklist.o
#
# ACPI Core Subsystem (Interpreter)
#
-obj-y += osl.o utils.o reboot.o\
+obj-y += acpi.o \
acpica/
-# sleep related files
-obj-y += wakeup.o
-obj-y += sleep.o
-obj-$(CONFIG_ACPI_SLEEP) += proc.o
+# All the builtin files are in the "acpi." module_param namespace.
+acpi-y += osl.o utils.o reboot.o
+acpi-y += nvs.o
+
+# Power management related files
+acpi-y += wakeup.o
+acpi-y += sleep.o
+acpi-y += device_pm.o
+acpi-$(CONFIG_ACPI_SLEEP) += proc.o
#
# ACPI Bus and Device Drivers
#
-processor-objs += processor_core.o processor_throttling.o \
- processor_idle.o processor_thermal.o
-ifdef CONFIG_CPU_FREQ
-processor-objs += processor_perflib.o
+acpi-y += bus.o glue.o
+acpi-y += scan.o
+acpi-y += resource.o
+acpi-y += acpi_processor.o
+acpi-y += processor_core.o
+acpi-y += ec.o
+acpi-$(CONFIG_ACPI_DOCK) += dock.o
+acpi-y += pci_root.o pci_link.o pci_irq.o
+acpi-y += acpi_lpss.o
+acpi-y += acpi_platform.o
+acpi-y += acpi_pnp.o
+acpi-y += power.o
+acpi-y += event.o
+acpi-y += sysfs.o
+acpi-$(CONFIG_X86) += acpi_cmos_rtc.o
+acpi-$(CONFIG_DEBUG_FS) += debugfs.o
+acpi-$(CONFIG_ACPI_NUMA) += numa.o
+acpi-$(CONFIG_ACPI_PROCFS_POWER) += cm_sbs.o
+ifdef CONFIG_ACPI_VIDEO
+acpi-y += video_detect.o
endif
-obj-y += bus.o glue.o
-obj-y += scan.o
-# Keep EC driver first. Initialization of others depend on it.
-obj-y += ec.o
+# These are (potentially) separate modules
+
+# IPMI may be used by other drivers, so it has to initialise before them
+obj-$(CONFIG_ACPI_IPMI) += acpi_ipmi.o
+
obj-$(CONFIG_ACPI_AC) += ac.o
-obj-$(CONFIG_ACPI_BATTERY) += battery.o
obj-$(CONFIG_ACPI_BUTTON) += button.o
obj-$(CONFIG_ACPI_FAN) += fan.o
-obj-$(CONFIG_ACPI_DOCK) += dock.o
obj-$(CONFIG_ACPI_VIDEO) += video.o
-ifdef CONFIG_ACPI_VIDEO
-obj-y += video_detect.o
-endif
-
-obj-y += pci_root.o pci_link.o pci_irq.o pci_bind.o
obj-$(CONFIG_ACPI_PCI_SLOT) += pci_slot.o
obj-$(CONFIG_ACPI_PROCESSOR) += processor.o
-obj-$(CONFIG_ACPI_CONTAINER) += container.o
+obj-y += container.o
obj-$(CONFIG_ACPI_THERMAL) += thermal.o
-obj-y += power.o
-obj-$(CONFIG_ACPI_SYSTEM) += system.o event.o
-obj-$(CONFIG_ACPI_DEBUG) += debug.o
-obj-$(CONFIG_ACPI_NUMA) += numa.o
-obj-$(CONFIG_ACPI_HOTPLUG_MEMORY) += acpi_memhotplug.o
-obj-$(CONFIG_ACPI_PROCFS_POWER) += cm_sbs.o
+obj-y += acpi_memhotplug.o
+obj-$(CONFIG_ACPI_BATTERY) += battery.o
obj-$(CONFIG_ACPI_SBS) += sbshc.o
obj-$(CONFIG_ACPI_SBS) += sbs.o
+obj-$(CONFIG_ACPI_HED) += hed.o
+obj-$(CONFIG_ACPI_EC_DEBUGFS) += ec_sys.o
+obj-$(CONFIG_ACPI_CUSTOM_METHOD)+= custom_method.o
+obj-$(CONFIG_ACPI_BGRT) += bgrt.o
+
+# processor has its own "processor." module_param namespace
+processor-y := processor_driver.o processor_throttling.o
+processor-y += processor_idle.o processor_thermal.o
+processor-$(CONFIG_CPU_FREQ) += processor_perflib.o
+
+obj-$(CONFIG_ACPI_PROCESSOR_AGGREGATOR) += acpi_pad.o
+
+obj-$(CONFIG_ACPI_APEI) += apei/
+
+obj-$(CONFIG_ACPI_EXTLOG) += acpi_extlog.o
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index 9b917dac773..36b0e61f9c0 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -25,17 +25,21 @@
#include <linux/kernel.h>
#include <linux/module.h>
+#include <linux/slab.h>
#include <linux/init.h>
#include <linux/types.h>
+#include <linux/dmi.h>
+#include <linux/delay.h>
#ifdef CONFIG_ACPI_PROCFS_POWER
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#endif
-#ifdef CONFIG_ACPI_SYSFS_POWER
+#include <linux/platform_device.h>
#include <linux/power_supply.h>
-#endif
-#include <acpi/acpi_bus.h>
-#include <acpi/acpi_drivers.h>
+#include <linux/acpi.h>
+#include "battery.h"
+
+#define PREFIX "ACPI: "
#define ACPI_AC_CLASS "ac_adapter"
#define ACPI_AC_DEVICE_NAME "AC Adapter"
@@ -52,15 +56,10 @@ MODULE_AUTHOR("Paul Diefenbaugh");
MODULE_DESCRIPTION("ACPI AC Adapter Driver");
MODULE_LICENSE("GPL");
-#ifdef CONFIG_ACPI_PROCFS_POWER
-extern struct proc_dir_entry *acpi_lock_ac_dir(void);
-extern void *acpi_unlock_ac_dir(struct proc_dir_entry *acpi_ac_dir);
-static int acpi_ac_open_fs(struct inode *inode, struct file *file);
-#endif
static int acpi_ac_add(struct acpi_device *device);
-static int acpi_ac_remove(struct acpi_device *device, int type);
-static int acpi_ac_resume(struct acpi_device *device);
+static int acpi_ac_remove(struct acpi_device *device);
+static void acpi_ac_notify(struct acpi_device *device, u32 event);
static const struct acpi_device_id ac_device_ids[] = {
{"ACPI0003", 0},
@@ -68,26 +67,41 @@ static const struct acpi_device_id ac_device_ids[] = {
};
MODULE_DEVICE_TABLE(acpi, ac_device_ids);
+#ifdef CONFIG_PM_SLEEP
+static int acpi_ac_resume(struct device *dev);
+#endif
+static SIMPLE_DEV_PM_OPS(acpi_ac_pm, NULL, acpi_ac_resume);
+
+#ifdef CONFIG_ACPI_PROCFS_POWER
+extern struct proc_dir_entry *acpi_lock_ac_dir(void);
+extern void *acpi_unlock_ac_dir(struct proc_dir_entry *acpi_ac_dir);
+static int acpi_ac_open_fs(struct inode *inode, struct file *file);
+#endif
+
+
+static int ac_sleep_before_get_state_ms;
+
static struct acpi_driver acpi_ac_driver = {
.name = "ac",
.class = ACPI_AC_CLASS,
.ids = ac_device_ids,
+ .flags = ACPI_DRIVER_ALL_NOTIFY_EVENTS,
.ops = {
.add = acpi_ac_add,
.remove = acpi_ac_remove,
- .resume = acpi_ac_resume,
+ .notify = acpi_ac_notify,
},
+ .drv.pm = &acpi_ac_pm,
};
struct acpi_ac {
-#ifdef CONFIG_ACPI_SYSFS_POWER
struct power_supply charger;
-#endif
struct acpi_device * device;
unsigned long long state;
+ struct notifier_block battery_nb;
};
-#define to_acpi_ac(x) container_of(x, struct acpi_ac, charger);
+#define to_acpi_ac(x) container_of(x, struct acpi_ac, charger)
#ifdef CONFIG_ACPI_PROCFS_POWER
static const struct file_operations acpi_ac_fops = {
@@ -98,26 +112,7 @@ static const struct file_operations acpi_ac_fops = {
.release = single_release,
};
#endif
-#ifdef CONFIG_ACPI_SYSFS_POWER
-static int get_ac_property(struct power_supply *psy,
- enum power_supply_property psp,
- union power_supply_propval *val)
-{
- struct acpi_ac *ac = to_acpi_ac(psy);
- switch (psp) {
- case POWER_SUPPLY_PROP_ONLINE:
- val->intval = ac->state;
- break;
- default:
- return -EINVAL;
- }
- return 0;
-}
-static enum power_supply_property ac_props[] = {
- POWER_SUPPLY_PROP_ONLINE,
-};
-#endif
/* --------------------------------------------------------------------------
AC Adapter Management
-------------------------------------------------------------------------- */
@@ -126,13 +121,14 @@ static int acpi_ac_get_state(struct acpi_ac *ac)
{
acpi_status status = AE_OK;
-
if (!ac)
return -EINVAL;
- status = acpi_evaluate_integer(ac->device->handle, "_PSR", NULL, &ac->state);
+ status = acpi_evaluate_integer(ac->device->handle, "_PSR", NULL,
+ &ac->state);
if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status, "Error reading AC Adapter state"));
+ ACPI_EXCEPTION((AE_INFO, status,
+ "Error reading AC Adapter state"));
ac->state = ACPI_AC_STATUS_UNKNOWN;
return -ENODEV;
}
@@ -140,6 +136,35 @@ static int acpi_ac_get_state(struct acpi_ac *ac)
return 0;
}
+/* --------------------------------------------------------------------------
+ sysfs I/F
+ -------------------------------------------------------------------------- */
+static int get_ac_property(struct power_supply *psy,
+ enum power_supply_property psp,
+ union power_supply_propval *val)
+{
+ struct acpi_ac *ac = to_acpi_ac(psy);
+
+ if (!ac)
+ return -ENODEV;
+
+ if (acpi_ac_get_state(ac))
+ return -ENODEV;
+
+ switch (psp) {
+ case POWER_SUPPLY_PROP_ONLINE:
+ val->intval = ac->state;
+ break;
+ default:
+ return -EINVAL;
+ }
+ return 0;
+}
+
+static enum power_supply_property ac_props[] = {
+ POWER_SUPPLY_PROP_ONLINE,
+};
+
#ifdef CONFIG_ACPI_PROCFS_POWER
/* --------------------------------------------------------------------------
FS Interface (/proc)
@@ -178,39 +203,39 @@ static int acpi_ac_seq_show(struct seq_file *seq, void *offset)
static int acpi_ac_open_fs(struct inode *inode, struct file *file)
{
- return single_open(file, acpi_ac_seq_show, PDE(inode)->data);
+ return single_open(file, acpi_ac_seq_show, PDE_DATA(inode));
}
-static int acpi_ac_add_fs(struct acpi_device *device)
+static int acpi_ac_add_fs(struct acpi_ac *ac)
{
struct proc_dir_entry *entry = NULL;
-
- if (!acpi_device_dir(device)) {
- acpi_device_dir(device) = proc_mkdir(acpi_device_bid(device),
- acpi_ac_dir);
- if (!acpi_device_dir(device))
+ printk(KERN_WARNING PREFIX "Deprecated procfs I/F for AC is loaded,"
+ " please retry with CONFIG_ACPI_PROCFS_POWER cleared\n");
+ if (!acpi_device_dir(ac->device)) {
+ acpi_device_dir(ac->device) =
+ proc_mkdir(acpi_device_bid(ac->device), acpi_ac_dir);
+ if (!acpi_device_dir(ac->device))
return -ENODEV;
- acpi_device_dir(device)->owner = THIS_MODULE;
}
/* 'state' [R] */
entry = proc_create_data(ACPI_AC_FILE_STATE,
- S_IRUGO, acpi_device_dir(device),
- &acpi_ac_fops, acpi_driver_data(device));
+ S_IRUGO, acpi_device_dir(ac->device),
+ &acpi_ac_fops, ac);
if (!entry)
return -ENODEV;
return 0;
}
-static int acpi_ac_remove_fs(struct acpi_device *device)
+static int acpi_ac_remove_fs(struct acpi_ac *ac)
{
- if (acpi_device_dir(device)) {
- remove_proc_entry(ACPI_AC_FILE_STATE, acpi_device_dir(device));
-
- remove_proc_entry(acpi_device_bid(device), acpi_ac_dir);
- acpi_device_dir(device) = NULL;
+ if (acpi_device_dir(ac->device)) {
+ remove_proc_entry(ACPI_AC_FILE_STATE,
+ acpi_device_dir(ac->device));
+ remove_proc_entry(acpi_device_bid(ac->device), acpi_ac_dir);
+ acpi_device_dir(ac->device) = NULL;
}
return 0;
@@ -221,16 +246,13 @@ static int acpi_ac_remove_fs(struct acpi_device *device)
Driver Model
-------------------------------------------------------------------------- */
-static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
+static void acpi_ac_notify(struct acpi_device *device, u32 event)
{
- struct acpi_ac *ac = data;
- struct acpi_device *device = NULL;
-
+ struct acpi_ac *ac = acpi_driver_data(device);
if (!ac)
return;
- device = ac->device;
switch (event) {
default:
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
@@ -238,23 +260,68 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
case ACPI_AC_NOTIFY_STATUS:
case ACPI_NOTIFY_BUS_CHECK:
case ACPI_NOTIFY_DEVICE_CHECK:
+ /*
+ * A buggy BIOS may notify AC first and then sleep for
+ * a specific time before doing actual operations in the
+ * EC event handler (_Qxx). This will cause the AC state
+ * reported by the ACPI event to be incorrect, so wait for a
+ * specific time for the EC event handler to make progress.
+ */
+ if (ac_sleep_before_get_state_ms > 0)
+ msleep(ac_sleep_before_get_state_ms);
+
acpi_ac_get_state(ac);
- acpi_bus_generate_proc_event(device, event, (u32) ac->state);
acpi_bus_generate_netlink_event(device->pnp.device_class,
dev_name(&device->dev), event,
(u32) ac->state);
-#ifdef CONFIG_ACPI_SYSFS_POWER
+ acpi_notifier_call_chain(device, event, (u32) ac->state);
kobject_uevent(&ac->charger.dev->kobj, KOBJ_CHANGE);
-#endif
}
return;
}
+static int acpi_ac_battery_notify(struct notifier_block *nb,
+ unsigned long action, void *data)
+{
+ struct acpi_ac *ac = container_of(nb, struct acpi_ac, battery_nb);
+ struct acpi_bus_event *event = (struct acpi_bus_event *)data;
+
+ /*
+ * On HP Pavilion dv6-6179er AC status notifications aren't triggered
+ * when adapter is plugged/unplugged. However, battery status
+ * notifcations are triggered when battery starts charging or
+ * discharging. Re-reading AC status triggers lost AC notifications,
+ * if AC status has changed.
+ */
+ if (strcmp(event->device_class, ACPI_BATTERY_CLASS) == 0 &&
+ event->type == ACPI_BATTERY_NOTIFY_STATUS)
+ acpi_ac_get_state(ac);
+
+ return NOTIFY_OK;
+}
+
+static int thinkpad_e530_quirk(const struct dmi_system_id *d)
+{
+ ac_sleep_before_get_state_ms = 1000;
+ return 0;
+}
+
+static struct dmi_system_id ac_dmi_table[] = {
+ {
+ .callback = thinkpad_e530_quirk,
+ .ident = "thinkpad e530",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "32597CG"),
+ },
+ },
+ {},
+};
+
static int acpi_ac_add(struct acpi_device *device)
{
int result = 0;
- acpi_status status = AE_OK;
struct acpi_ac *ac = NULL;
@@ -274,62 +341,64 @@ static int acpi_ac_add(struct acpi_device *device)
if (result)
goto end;
+ ac->charger.name = acpi_device_bid(device);
#ifdef CONFIG_ACPI_PROCFS_POWER
- result = acpi_ac_add_fs(device);
-#endif
+ result = acpi_ac_add_fs(ac);
if (result)
goto end;
-#ifdef CONFIG_ACPI_SYSFS_POWER
- ac->charger.name = acpi_device_bid(device);
+#endif
ac->charger.type = POWER_SUPPLY_TYPE_MAINS;
ac->charger.properties = ac_props;
ac->charger.num_properties = ARRAY_SIZE(ac_props);
ac->charger.get_property = get_ac_property;
- power_supply_register(&ac->device->dev, &ac->charger);
-#endif
- status = acpi_install_notify_handler(device->handle,
- ACPI_ALL_NOTIFY, acpi_ac_notify,
- ac);
- if (ACPI_FAILURE(status)) {
- result = -ENODEV;
+ result = power_supply_register(&ac->device->dev, &ac->charger);
+ if (result)
goto end;
- }
printk(KERN_INFO PREFIX "%s [%s] (%s)\n",
acpi_device_name(device), acpi_device_bid(device),
ac->state ? "on-line" : "off-line");
- end:
+ ac->battery_nb.notifier_call = acpi_ac_battery_notify;
+ register_acpi_notifier(&ac->battery_nb);
+end:
if (result) {
#ifdef CONFIG_ACPI_PROCFS_POWER
- acpi_ac_remove_fs(device);
+ acpi_ac_remove_fs(ac);
#endif
kfree(ac);
}
+ dmi_check_system(ac_dmi_table);
return result;
}
-static int acpi_ac_resume(struct acpi_device *device)
+#ifdef CONFIG_PM_SLEEP
+static int acpi_ac_resume(struct device *dev)
{
struct acpi_ac *ac;
unsigned old_state;
- if (!device || !acpi_driver_data(device))
+
+ if (!dev)
return -EINVAL;
- ac = acpi_driver_data(device);
+
+ ac = acpi_driver_data(to_acpi_device(dev));
+ if (!ac)
+ return -EINVAL;
+
old_state = ac->state;
if (acpi_ac_get_state(ac))
return 0;
-#ifdef CONFIG_ACPI_SYSFS_POWER
if (old_state != ac->state)
kobject_uevent(&ac->charger.dev->kobj, KOBJ_CHANGE);
-#endif
return 0;
}
+#else
+#define acpi_ac_resume NULL
+#endif
-static int acpi_ac_remove(struct acpi_device *device, int type)
+static int acpi_ac_remove(struct acpi_device *device)
{
- acpi_status status = AE_OK;
struct acpi_ac *ac = NULL;
@@ -338,14 +407,12 @@ static int acpi_ac_remove(struct acpi_device *device, int type)
ac = acpi_driver_data(device);
- status = acpi_remove_notify_handler(device->handle,
- ACPI_ALL_NOTIFY, acpi_ac_notify);
-#ifdef CONFIG_ACPI_SYSFS_POWER
if (ac->charger.dev)
power_supply_unregister(&ac->charger);
-#endif
+ unregister_acpi_notifier(&ac->battery_nb);
+
#ifdef CONFIG_ACPI_PROCFS_POWER
- acpi_ac_remove_fs(device);
+ acpi_ac_remove_fs(ac);
#endif
kfree(ac);
@@ -366,6 +433,7 @@ static int __init acpi_ac_init(void)
return -ENODEV;
#endif
+
result = acpi_bus_register_driver(&acpi_ac_driver);
if (result < 0) {
#ifdef CONFIG_ACPI_PROCFS_POWER
@@ -379,15 +447,10 @@ static int __init acpi_ac_init(void)
static void __exit acpi_ac_exit(void)
{
-
acpi_bus_unregister_driver(&acpi_ac_driver);
-
#ifdef CONFIG_ACPI_PROCFS_POWER
acpi_unlock_ac_dir(acpi_ac_dir);
#endif
-
- return;
}
-
module_init(acpi_ac_init);
module_exit(acpi_ac_exit);
diff --git a/drivers/acpi/acpi_cmos_rtc.c b/drivers/acpi/acpi_cmos_rtc.c
new file mode 100644
index 00000000000..2da8660262e
--- /dev/null
+++ b/drivers/acpi/acpi_cmos_rtc.c
@@ -0,0 +1,90 @@
+/*
+ * ACPI support for CMOS RTC Address Space access
+ *
+ * Copyright (C) 2013, Intel Corporation
+ * Authors: Lan Tianyu <tianyu.lan@intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/acpi.h>
+#include <linux/device.h>
+#include <linux/err.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <asm-generic/rtc.h>
+
+#include "internal.h"
+
+ACPI_MODULE_NAME("cmos rtc");
+
+static const struct acpi_device_id acpi_cmos_rtc_ids[] = {
+ { "PNP0B00" },
+ { "PNP0B01" },
+ { "PNP0B02" },
+ {}
+};
+
+static acpi_status
+acpi_cmos_rtc_space_handler(u32 function, acpi_physical_address address,
+ u32 bits, u64 *value64,
+ void *handler_context, void *region_context)
+{
+ int i;
+ u8 *value = (u8 *)&value64;
+
+ if (address > 0xff || !value64)
+ return AE_BAD_PARAMETER;
+
+ if (function != ACPI_WRITE && function != ACPI_READ)
+ return AE_BAD_PARAMETER;
+
+ spin_lock_irq(&rtc_lock);
+
+ for (i = 0; i < DIV_ROUND_UP(bits, 8); ++i, ++address, ++value)
+ if (function == ACPI_READ)
+ *value = CMOS_READ(address);
+ else
+ CMOS_WRITE(*value, address);
+
+ spin_unlock_irq(&rtc_lock);
+
+ return AE_OK;
+}
+
+static int acpi_install_cmos_rtc_space_handler(struct acpi_device *adev,
+ const struct acpi_device_id *id)
+{
+ acpi_status status;
+
+ status = acpi_install_address_space_handler(adev->handle,
+ ACPI_ADR_SPACE_CMOS,
+ &acpi_cmos_rtc_space_handler,
+ NULL, NULL);
+ if (ACPI_FAILURE(status)) {
+ pr_err(PREFIX "Error installing CMOS-RTC region handler\n");
+ return -ENODEV;
+ }
+
+ return 1;
+}
+
+static void acpi_remove_cmos_rtc_space_handler(struct acpi_device *adev)
+{
+ if (ACPI_FAILURE(acpi_remove_address_space_handler(adev->handle,
+ ACPI_ADR_SPACE_CMOS, &acpi_cmos_rtc_space_handler)))
+ pr_err(PREFIX "Error removing CMOS-RTC region handler\n");
+}
+
+static struct acpi_scan_handler cmos_rtc_handler = {
+ .ids = acpi_cmos_rtc_ids,
+ .attach = acpi_install_cmos_rtc_space_handler,
+ .detach = acpi_remove_cmos_rtc_space_handler,
+};
+
+void __init acpi_cmos_rtc_init(void)
+{
+ acpi_scan_add_handler(&cmos_rtc_handler);
+}
diff --git a/drivers/acpi/acpi_extlog.c b/drivers/acpi/acpi_extlog.c
new file mode 100644
index 00000000000..185334114d7
--- /dev/null
+++ b/drivers/acpi/acpi_extlog.c
@@ -0,0 +1,303 @@
+/*
+ * Extended Error Log driver
+ *
+ * Copyright (C) 2013 Intel Corp.
+ * Author: Chen, Gong <gong.chen@intel.com>
+ *
+ * This file is licensed under GPLv2.
+ */
+
+#include <linux/module.h>
+#include <linux/acpi.h>
+#include <linux/cper.h>
+#include <linux/ratelimit.h>
+#include <linux/edac.h>
+#include <asm/cpu.h>
+#include <asm/mce.h>
+
+#include "apei/apei-internal.h"
+
+#define EXT_ELOG_ENTRY_MASK GENMASK_ULL(51, 0) /* elog entry address mask */
+
+#define EXTLOG_DSM_REV 0x0
+#define EXTLOG_FN_ADDR 0x1
+
+#define FLAG_OS_OPTIN BIT(0)
+#define ELOG_ENTRY_VALID (1ULL<<63)
+#define ELOG_ENTRY_LEN 0x1000
+
+#define EMCA_BUG \
+ "Can not request iomem region <0x%016llx-0x%016llx> - eMCA disabled\n"
+
+struct extlog_l1_head {
+ u32 ver; /* Header Version */
+ u32 hdr_len; /* Header Length */
+ u64 total_len; /* entire L1 Directory length including this header */
+ u64 elog_base; /* MCA Error Log Directory base address */
+ u64 elog_len; /* MCA Error Log Directory length */
+ u32 flags; /* bit 0 - OS/VMM Opt-in */
+ u8 rev0[12];
+ u32 entries; /* Valid L1 Directory entries per logical processor */
+ u8 rev1[12];
+};
+
+static int old_edac_report_status;
+
+static u8 extlog_dsm_uuid[] __initdata = "663E35AF-CC10-41A4-88EA-5470AF055295";
+
+/* L1 table related physical address */
+static u64 elog_base;
+static size_t elog_size;
+static u64 l1_dirbase;
+static size_t l1_size;
+
+/* L1 table related virtual address */
+static void __iomem *extlog_l1_addr;
+static void __iomem *elog_addr;
+
+static void *elog_buf;
+
+static u64 *l1_entry_base;
+static u32 l1_percpu_entry;
+
+#define ELOG_IDX(cpu, bank) \
+ (cpu_physical_id(cpu) * l1_percpu_entry + (bank))
+
+#define ELOG_ENTRY_DATA(idx) \
+ (*(l1_entry_base + (idx)))
+
+#define ELOG_ENTRY_ADDR(phyaddr) \
+ (phyaddr - elog_base + (u8 *)elog_addr)
+
+static struct acpi_generic_status *extlog_elog_entry_check(int cpu, int bank)
+{
+ int idx;
+ u64 data;
+ struct acpi_generic_status *estatus;
+
+ WARN_ON(cpu < 0);
+ idx = ELOG_IDX(cpu, bank);
+ data = ELOG_ENTRY_DATA(idx);
+ if ((data & ELOG_ENTRY_VALID) == 0)
+ return NULL;
+
+ data &= EXT_ELOG_ENTRY_MASK;
+ estatus = (struct acpi_generic_status *)ELOG_ENTRY_ADDR(data);
+
+ /* if no valid data in elog entry, just return */
+ if (estatus->block_status == 0)
+ return NULL;
+
+ return estatus;
+}
+
+static void __print_extlog_rcd(const char *pfx,
+ struct acpi_generic_status *estatus, int cpu)
+{
+ static atomic_t seqno;
+ unsigned int curr_seqno;
+ char pfx_seq[64];
+
+ if (!pfx) {
+ if (estatus->error_severity <= CPER_SEV_CORRECTED)
+ pfx = KERN_INFO;
+ else
+ pfx = KERN_ERR;
+ }
+ curr_seqno = atomic_inc_return(&seqno);
+ snprintf(pfx_seq, sizeof(pfx_seq), "%s{%u}", pfx, curr_seqno);
+ printk("%s""Hardware error detected on CPU%d\n", pfx_seq, cpu);
+ cper_estatus_print(pfx_seq, estatus);
+}
+
+static int print_extlog_rcd(const char *pfx,
+ struct acpi_generic_status *estatus, int cpu)
+{
+ /* Not more than 2 messages every 5 seconds */
+ static DEFINE_RATELIMIT_STATE(ratelimit_corrected, 5*HZ, 2);
+ static DEFINE_RATELIMIT_STATE(ratelimit_uncorrected, 5*HZ, 2);
+ struct ratelimit_state *ratelimit;
+
+ if (estatus->error_severity == CPER_SEV_CORRECTED ||
+ (estatus->error_severity == CPER_SEV_INFORMATIONAL))
+ ratelimit = &ratelimit_corrected;
+ else
+ ratelimit = &ratelimit_uncorrected;
+ if (__ratelimit(ratelimit)) {
+ __print_extlog_rcd(pfx, estatus, cpu);
+ return 0;
+ }
+
+ return 1;
+}
+
+static int extlog_print(struct notifier_block *nb, unsigned long val,
+ void *data)
+{
+ struct mce *mce = (struct mce *)data;
+ int bank = mce->bank;
+ int cpu = mce->extcpu;
+ struct acpi_generic_status *estatus;
+ int rc;
+
+ estatus = extlog_elog_entry_check(cpu, bank);
+ if (estatus == NULL)
+ return NOTIFY_DONE;
+
+ memcpy(elog_buf, (void *)estatus, ELOG_ENTRY_LEN);
+ /* clear record status to enable BIOS to update it again */
+ estatus->block_status = 0;
+
+ rc = print_extlog_rcd(NULL, (struct acpi_generic_status *)elog_buf, cpu);
+
+ return NOTIFY_STOP;
+}
+
+static bool __init extlog_get_l1addr(void)
+{
+ u8 uuid[16];
+ acpi_handle handle;
+ union acpi_object *obj;
+
+ acpi_str_to_uuid(extlog_dsm_uuid, uuid);
+
+ if (ACPI_FAILURE(acpi_get_handle(NULL, "\\_SB", &handle)))
+ return false;
+ if (!acpi_check_dsm(handle, uuid, EXTLOG_DSM_REV, 1 << EXTLOG_FN_ADDR))
+ return false;
+ obj = acpi_evaluate_dsm_typed(handle, uuid, EXTLOG_DSM_REV,
+ EXTLOG_FN_ADDR, NULL, ACPI_TYPE_INTEGER);
+ if (!obj) {
+ return false;
+ } else {
+ l1_dirbase = obj->integer.value;
+ ACPI_FREE(obj);
+ }
+
+ /* Spec says L1 directory must be 4K aligned, bail out if it isn't */
+ if (l1_dirbase & ((1 << 12) - 1)) {
+ pr_warn(FW_BUG "L1 Directory is invalid at physical %llx\n",
+ l1_dirbase);
+ return false;
+ }
+
+ return true;
+}
+static struct notifier_block extlog_mce_dec = {
+ .notifier_call = extlog_print,
+};
+
+static int __init extlog_init(void)
+{
+ struct extlog_l1_head *l1_head;
+ void __iomem *extlog_l1_hdr;
+ size_t l1_hdr_size;
+ struct resource *r;
+ u64 cap;
+ int rc;
+
+ if (get_edac_report_status() == EDAC_REPORTING_FORCE) {
+ pr_warn("Not loading eMCA, error reporting force-enabled through EDAC.\n");
+ return -EPERM;
+ }
+
+ rc = -ENODEV;
+ rdmsrl(MSR_IA32_MCG_CAP, cap);
+ if (!(cap & MCG_ELOG_P))
+ return rc;
+
+ if (!extlog_get_l1addr())
+ return rc;
+
+ rc = -EINVAL;
+ /* get L1 header to fetch necessary information */
+ l1_hdr_size = sizeof(struct extlog_l1_head);
+ r = request_mem_region(l1_dirbase, l1_hdr_size, "L1 DIR HDR");
+ if (!r) {
+ pr_warn(FW_BUG EMCA_BUG,
+ (unsigned long long)l1_dirbase,
+ (unsigned long long)l1_dirbase + l1_hdr_size);
+ goto err;
+ }
+
+ extlog_l1_hdr = acpi_os_map_iomem(l1_dirbase, l1_hdr_size);
+ l1_head = (struct extlog_l1_head *)extlog_l1_hdr;
+ l1_size = l1_head->total_len;
+ l1_percpu_entry = l1_head->entries;
+ elog_base = l1_head->elog_base;
+ elog_size = l1_head->elog_len;
+ acpi_os_unmap_iomem(extlog_l1_hdr, l1_hdr_size);
+ release_mem_region(l1_dirbase, l1_hdr_size);
+
+ /* remap L1 header again based on completed information */
+ r = request_mem_region(l1_dirbase, l1_size, "L1 Table");
+ if (!r) {
+ pr_warn(FW_BUG EMCA_BUG,
+ (unsigned long long)l1_dirbase,
+ (unsigned long long)l1_dirbase + l1_size);
+ goto err;
+ }
+ extlog_l1_addr = acpi_os_map_iomem(l1_dirbase, l1_size);
+ l1_entry_base = (u64 *)((u8 *)extlog_l1_addr + l1_hdr_size);
+
+ /* remap elog table */
+ r = request_mem_region(elog_base, elog_size, "Elog Table");
+ if (!r) {
+ pr_warn(FW_BUG EMCA_BUG,
+ (unsigned long long)elog_base,
+ (unsigned long long)elog_base + elog_size);
+ goto err_release_l1_dir;
+ }
+ elog_addr = acpi_os_map_iomem(elog_base, elog_size);
+
+ rc = -ENOMEM;
+ /* allocate buffer to save elog record */
+ elog_buf = kmalloc(ELOG_ENTRY_LEN, GFP_KERNEL);
+ if (elog_buf == NULL)
+ goto err_release_elog;
+
+ /*
+ * eMCA event report method has higher priority than EDAC method,
+ * unless EDAC event report method is mandatory.
+ */
+ old_edac_report_status = get_edac_report_status();
+ set_edac_report_status(EDAC_REPORTING_DISABLED);
+ mce_register_decode_chain(&extlog_mce_dec);
+ /* enable OS to be involved to take over management from BIOS */
+ ((struct extlog_l1_head *)extlog_l1_addr)->flags |= FLAG_OS_OPTIN;
+
+ return 0;
+
+err_release_elog:
+ if (elog_addr)
+ acpi_os_unmap_iomem(elog_addr, elog_size);
+ release_mem_region(elog_base, elog_size);
+err_release_l1_dir:
+ if (extlog_l1_addr)
+ acpi_os_unmap_iomem(extlog_l1_addr, l1_size);
+ release_mem_region(l1_dirbase, l1_size);
+err:
+ pr_warn(FW_BUG "Extended error log disabled because of problems parsing f/w tables\n");
+ return rc;
+}
+
+static void __exit extlog_exit(void)
+{
+ set_edac_report_status(old_edac_report_status);
+ mce_unregister_decode_chain(&extlog_mce_dec);
+ ((struct extlog_l1_head *)extlog_l1_addr)->flags &= ~FLAG_OS_OPTIN;
+ if (extlog_l1_addr)
+ acpi_os_unmap_iomem(extlog_l1_addr, l1_size);
+ if (elog_addr)
+ acpi_os_unmap_iomem(elog_addr, elog_size);
+ release_mem_region(elog_base, elog_size);
+ release_mem_region(l1_dirbase, l1_size);
+ kfree(elog_buf);
+}
+
+module_init(extlog_init);
+module_exit(extlog_exit);
+
+MODULE_AUTHOR("Chen, Gong <gong.chen@intel.com>");
+MODULE_DESCRIPTION("Extended MCA Error Log Driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/acpi/acpi_ipmi.c b/drivers/acpi/acpi_ipmi.c
new file mode 100644
index 00000000000..ac0f52f6df2
--- /dev/null
+++ b/drivers/acpi/acpi_ipmi.c
@@ -0,0 +1,661 @@
+/*
+ * acpi_ipmi.c - ACPI IPMI opregion
+ *
+ * Copyright (C) 2010, 2013 Intel Corporation
+ * Author: Zhao Yakui <yakui.zhao@intel.com>
+ * Lv Zheng <lv.zheng@intel.com>
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+#include <linux/module.h>
+#include <linux/acpi.h>
+#include <linux/ipmi.h>
+#include <linux/spinlock.h>
+
+MODULE_AUTHOR("Zhao Yakui");
+MODULE_DESCRIPTION("ACPI IPMI Opregion driver");
+MODULE_LICENSE("GPL");
+
+#define ACPI_IPMI_OK 0
+#define ACPI_IPMI_TIMEOUT 0x10
+#define ACPI_IPMI_UNKNOWN 0x07
+/* the IPMI timeout is 5s */
+#define IPMI_TIMEOUT (5000)
+#define ACPI_IPMI_MAX_MSG_LENGTH 64
+
+struct acpi_ipmi_device {
+ /* the device list attached to driver_data.ipmi_devices */
+ struct list_head head;
+
+ /* the IPMI request message list */
+ struct list_head tx_msg_list;
+
+ spinlock_t tx_msg_lock;
+ acpi_handle handle;
+ struct device *dev;
+ ipmi_user_t user_interface;
+ int ipmi_ifnum; /* IPMI interface number */
+ long curr_msgid;
+ bool dead;
+ struct kref kref;
+};
+
+struct ipmi_driver_data {
+ struct list_head ipmi_devices;
+ struct ipmi_smi_watcher bmc_events;
+ struct ipmi_user_hndl ipmi_hndlrs;
+ struct mutex ipmi_lock;
+
+ /*
+ * NOTE: IPMI System Interface Selection
+ * There is no system interface specified by the IPMI operation
+ * region access. We try to select one system interface with ACPI
+ * handle set. IPMI messages passed from the ACPI codes are sent
+ * to this selected global IPMI system interface.
+ */
+ struct acpi_ipmi_device *selected_smi;
+};
+
+struct acpi_ipmi_msg {
+ struct list_head head;
+
+ /*
+ * General speaking the addr type should be SI_ADDR_TYPE. And
+ * the addr channel should be BMC.
+ * In fact it can also be IPMB type. But we will have to
+ * parse it from the Netfn command buffer. It is so complex
+ * that it is skipped.
+ */
+ struct ipmi_addr addr;
+ long tx_msgid;
+
+ /* it is used to track whether the IPMI message is finished */
+ struct completion tx_complete;
+
+ struct kernel_ipmi_msg tx_message;
+ int msg_done;
+
+ /* tx/rx data . And copy it from/to ACPI object buffer */
+ u8 data[ACPI_IPMI_MAX_MSG_LENGTH];
+ u8 rx_len;
+
+ struct acpi_ipmi_device *device;
+ struct kref kref;
+};
+
+/* IPMI request/response buffer per ACPI 4.0, sec 5.5.2.4.3.2 */
+struct acpi_ipmi_buffer {
+ u8 status;
+ u8 length;
+ u8 data[ACPI_IPMI_MAX_MSG_LENGTH];
+};
+
+static void ipmi_register_bmc(int iface, struct device *dev);
+static void ipmi_bmc_gone(int iface);
+static void ipmi_msg_handler(struct ipmi_recv_msg *msg, void *user_msg_data);
+
+static struct ipmi_driver_data driver_data = {
+ .ipmi_devices = LIST_HEAD_INIT(driver_data.ipmi_devices),
+ .bmc_events = {
+ .owner = THIS_MODULE,
+ .new_smi = ipmi_register_bmc,
+ .smi_gone = ipmi_bmc_gone,
+ },
+ .ipmi_hndlrs = {
+ .ipmi_recv_hndl = ipmi_msg_handler,
+ },
+ .ipmi_lock = __MUTEX_INITIALIZER(driver_data.ipmi_lock)
+};
+
+static struct acpi_ipmi_device *
+ipmi_dev_alloc(int iface, struct device *dev, acpi_handle handle)
+{
+ struct acpi_ipmi_device *ipmi_device;
+ int err;
+ ipmi_user_t user;
+
+ ipmi_device = kzalloc(sizeof(*ipmi_device), GFP_KERNEL);
+ if (!ipmi_device)
+ return NULL;
+
+ kref_init(&ipmi_device->kref);
+ INIT_LIST_HEAD(&ipmi_device->head);
+ INIT_LIST_HEAD(&ipmi_device->tx_msg_list);
+ spin_lock_init(&ipmi_device->tx_msg_lock);
+ ipmi_device->handle = handle;
+ ipmi_device->dev = get_device(dev);
+ ipmi_device->ipmi_ifnum = iface;
+
+ err = ipmi_create_user(iface, &driver_data.ipmi_hndlrs,
+ ipmi_device, &user);
+ if (err) {
+ put_device(dev);
+ kfree(ipmi_device);
+ return NULL;
+ }
+ ipmi_device->user_interface = user;
+
+ return ipmi_device;
+}
+
+static void ipmi_dev_release(struct acpi_ipmi_device *ipmi_device)
+{
+ ipmi_destroy_user(ipmi_device->user_interface);
+ put_device(ipmi_device->dev);
+ kfree(ipmi_device);
+}
+
+static void ipmi_dev_release_kref(struct kref *kref)
+{
+ struct acpi_ipmi_device *ipmi =
+ container_of(kref, struct acpi_ipmi_device, kref);
+
+ ipmi_dev_release(ipmi);
+}
+
+static void __ipmi_dev_kill(struct acpi_ipmi_device *ipmi_device)
+{
+ list_del(&ipmi_device->head);
+ if (driver_data.selected_smi == ipmi_device)
+ driver_data.selected_smi = NULL;
+
+ /*
+ * Always setting dead flag after deleting from the list or
+ * list_for_each_entry() codes must get changed.
+ */
+ ipmi_device->dead = true;
+}
+
+static struct acpi_ipmi_device *acpi_ipmi_dev_get(void)
+{
+ struct acpi_ipmi_device *ipmi_device = NULL;
+
+ mutex_lock(&driver_data.ipmi_lock);
+ if (driver_data.selected_smi) {
+ ipmi_device = driver_data.selected_smi;
+ kref_get(&ipmi_device->kref);
+ }
+ mutex_unlock(&driver_data.ipmi_lock);
+
+ return ipmi_device;
+}
+
+static void acpi_ipmi_dev_put(struct acpi_ipmi_device *ipmi_device)
+{
+ kref_put(&ipmi_device->kref, ipmi_dev_release_kref);
+}
+
+static struct acpi_ipmi_msg *ipmi_msg_alloc(void)
+{
+ struct acpi_ipmi_device *ipmi;
+ struct acpi_ipmi_msg *ipmi_msg;
+
+ ipmi = acpi_ipmi_dev_get();
+ if (!ipmi)
+ return NULL;
+
+ ipmi_msg = kzalloc(sizeof(struct acpi_ipmi_msg), GFP_KERNEL);
+ if (!ipmi_msg) {
+ acpi_ipmi_dev_put(ipmi);
+ return NULL;
+ }
+
+ kref_init(&ipmi_msg->kref);
+ init_completion(&ipmi_msg->tx_complete);
+ INIT_LIST_HEAD(&ipmi_msg->head);
+ ipmi_msg->device = ipmi;
+ ipmi_msg->msg_done = ACPI_IPMI_UNKNOWN;
+
+ return ipmi_msg;
+}
+
+static void ipmi_msg_release(struct acpi_ipmi_msg *tx_msg)
+{
+ acpi_ipmi_dev_put(tx_msg->device);
+ kfree(tx_msg);
+}
+
+static void ipmi_msg_release_kref(struct kref *kref)
+{
+ struct acpi_ipmi_msg *tx_msg =
+ container_of(kref, struct acpi_ipmi_msg, kref);
+
+ ipmi_msg_release(tx_msg);
+}
+
+static struct acpi_ipmi_msg *acpi_ipmi_msg_get(struct acpi_ipmi_msg *tx_msg)
+{
+ kref_get(&tx_msg->kref);
+
+ return tx_msg;
+}
+
+static void acpi_ipmi_msg_put(struct acpi_ipmi_msg *tx_msg)
+{
+ kref_put(&tx_msg->kref, ipmi_msg_release_kref);
+}
+
+#define IPMI_OP_RGN_NETFN(offset) ((offset >> 8) & 0xff)
+#define IPMI_OP_RGN_CMD(offset) (offset & 0xff)
+static int acpi_format_ipmi_request(struct acpi_ipmi_msg *tx_msg,
+ acpi_physical_address address,
+ acpi_integer *value)
+{
+ struct kernel_ipmi_msg *msg;
+ struct acpi_ipmi_buffer *buffer;
+ struct acpi_ipmi_device *device;
+ unsigned long flags;
+
+ msg = &tx_msg->tx_message;
+
+ /*
+ * IPMI network function and command are encoded in the address
+ * within the IPMI OpRegion; see ACPI 4.0, sec 5.5.2.4.3.
+ */
+ msg->netfn = IPMI_OP_RGN_NETFN(address);
+ msg->cmd = IPMI_OP_RGN_CMD(address);
+ msg->data = tx_msg->data;
+
+ /*
+ * value is the parameter passed by the IPMI opregion space handler.
+ * It points to the IPMI request message buffer
+ */
+ buffer = (struct acpi_ipmi_buffer *)value;
+
+ /* copy the tx message data */
+ if (buffer->length > ACPI_IPMI_MAX_MSG_LENGTH) {
+ dev_WARN_ONCE(tx_msg->device->dev, true,
+ "Unexpected request (msg len %d).\n",
+ buffer->length);
+ return -EINVAL;
+ }
+ msg->data_len = buffer->length;
+ memcpy(tx_msg->data, buffer->data, msg->data_len);
+
+ /*
+ * now the default type is SYSTEM_INTERFACE and channel type is BMC.
+ * If the netfn is APP_REQUEST and the cmd is SEND_MESSAGE,
+ * the addr type should be changed to IPMB. Then we will have to parse
+ * the IPMI request message buffer to get the IPMB address.
+ * If so, please fix me.
+ */
+ tx_msg->addr.addr_type = IPMI_SYSTEM_INTERFACE_ADDR_TYPE;
+ tx_msg->addr.channel = IPMI_BMC_CHANNEL;
+ tx_msg->addr.data[0] = 0;
+
+ /* Get the msgid */
+ device = tx_msg->device;
+
+ spin_lock_irqsave(&device->tx_msg_lock, flags);
+ device->curr_msgid++;
+ tx_msg->tx_msgid = device->curr_msgid;
+ spin_unlock_irqrestore(&device->tx_msg_lock, flags);
+
+ return 0;
+}
+
+static void acpi_format_ipmi_response(struct acpi_ipmi_msg *msg,
+ acpi_integer *value)
+{
+ struct acpi_ipmi_buffer *buffer;
+
+ /*
+ * value is also used as output parameter. It represents the response
+ * IPMI message returned by IPMI command.
+ */
+ buffer = (struct acpi_ipmi_buffer *)value;
+
+ /*
+ * If the flag of msg_done is not set, it means that the IPMI command is
+ * not executed correctly.
+ */
+ buffer->status = msg->msg_done;
+ if (msg->msg_done != ACPI_IPMI_OK)
+ return;
+
+ /*
+ * If the IPMI response message is obtained correctly, the status code
+ * will be ACPI_IPMI_OK
+ */
+ buffer->length = msg->rx_len;
+ memcpy(buffer->data, msg->data, msg->rx_len);
+}
+
+static void ipmi_flush_tx_msg(struct acpi_ipmi_device *ipmi)
+{
+ struct acpi_ipmi_msg *tx_msg;
+ unsigned long flags;
+
+ /*
+ * NOTE: On-going ipmi_recv_msg
+ * ipmi_msg_handler() may still be invoked by ipmi_si after
+ * flushing. But it is safe to do a fast flushing on module_exit()
+ * without waiting for all ipmi_recv_msg(s) to complete from
+ * ipmi_msg_handler() as it is ensured by ipmi_si that all
+ * ipmi_recv_msg(s) are freed after invoking ipmi_destroy_user().
+ */
+ spin_lock_irqsave(&ipmi->tx_msg_lock, flags);
+ while (!list_empty(&ipmi->tx_msg_list)) {
+ tx_msg = list_first_entry(&ipmi->tx_msg_list,
+ struct acpi_ipmi_msg,
+ head);
+ list_del(&tx_msg->head);
+ spin_unlock_irqrestore(&ipmi->tx_msg_lock, flags);
+
+ /* wake up the sleep thread on the Tx msg */
+ complete(&tx_msg->tx_complete);
+ acpi_ipmi_msg_put(tx_msg);
+ spin_lock_irqsave(&ipmi->tx_msg_lock, flags);
+ }
+ spin_unlock_irqrestore(&ipmi->tx_msg_lock, flags);
+}
+
+static void ipmi_cancel_tx_msg(struct acpi_ipmi_device *ipmi,
+ struct acpi_ipmi_msg *msg)
+{
+ struct acpi_ipmi_msg *tx_msg, *temp;
+ bool msg_found = false;
+ unsigned long flags;
+
+ spin_lock_irqsave(&ipmi->tx_msg_lock, flags);
+ list_for_each_entry_safe(tx_msg, temp, &ipmi->tx_msg_list, head) {
+ if (msg == tx_msg) {
+ msg_found = true;
+ list_del(&tx_msg->head);
+ break;
+ }
+ }
+ spin_unlock_irqrestore(&ipmi->tx_msg_lock, flags);
+
+ if (msg_found)
+ acpi_ipmi_msg_put(tx_msg);
+}
+
+static void ipmi_msg_handler(struct ipmi_recv_msg *msg, void *user_msg_data)
+{
+ struct acpi_ipmi_device *ipmi_device = user_msg_data;
+ bool msg_found = false;
+ struct acpi_ipmi_msg *tx_msg, *temp;
+ struct device *dev = ipmi_device->dev;
+ unsigned long flags;
+
+ if (msg->user != ipmi_device->user_interface) {
+ dev_warn(dev,
+ "Unexpected response is returned. returned user %p, expected user %p\n",
+ msg->user, ipmi_device->user_interface);
+ goto out_msg;
+ }
+
+ spin_lock_irqsave(&ipmi_device->tx_msg_lock, flags);
+ list_for_each_entry_safe(tx_msg, temp, &ipmi_device->tx_msg_list, head) {
+ if (msg->msgid == tx_msg->tx_msgid) {
+ msg_found = true;
+ list_del(&tx_msg->head);
+ break;
+ }
+ }
+ spin_unlock_irqrestore(&ipmi_device->tx_msg_lock, flags);
+
+ if (!msg_found) {
+ dev_warn(dev,
+ "Unexpected response (msg id %ld) is returned.\n",
+ msg->msgid);
+ goto out_msg;
+ }
+
+ /* copy the response data to Rx_data buffer */
+ if (msg->msg.data_len > ACPI_IPMI_MAX_MSG_LENGTH) {
+ dev_WARN_ONCE(dev, true,
+ "Unexpected response (msg len %d).\n",
+ msg->msg.data_len);
+ goto out_comp;
+ }
+
+ /* response msg is an error msg */
+ msg->recv_type = IPMI_RESPONSE_RECV_TYPE;
+ if (msg->recv_type == IPMI_RESPONSE_RECV_TYPE &&
+ msg->msg.data_len == 1) {
+ if (msg->msg.data[0] == IPMI_TIMEOUT_COMPLETION_CODE) {
+ dev_WARN_ONCE(dev, true,
+ "Unexpected response (timeout).\n");
+ tx_msg->msg_done = ACPI_IPMI_TIMEOUT;
+ }
+ goto out_comp;
+ }
+
+ tx_msg->rx_len = msg->msg.data_len;
+ memcpy(tx_msg->data, msg->msg.data, tx_msg->rx_len);
+ tx_msg->msg_done = ACPI_IPMI_OK;
+
+out_comp:
+ complete(&tx_msg->tx_complete);
+ acpi_ipmi_msg_put(tx_msg);
+out_msg:
+ ipmi_free_recv_msg(msg);
+}
+
+static void ipmi_register_bmc(int iface, struct device *dev)
+{
+ struct acpi_ipmi_device *ipmi_device, *temp;
+ int err;
+ struct ipmi_smi_info smi_data;
+ acpi_handle handle;
+
+ err = ipmi_get_smi_info(iface, &smi_data);
+ if (err)
+ return;
+
+ if (smi_data.addr_src != SI_ACPI)
+ goto err_ref;
+ handle = smi_data.addr_info.acpi_info.acpi_handle;
+ if (!handle)
+ goto err_ref;
+
+ ipmi_device = ipmi_dev_alloc(iface, smi_data.dev, handle);
+ if (!ipmi_device) {
+ dev_warn(smi_data.dev, "Can't create IPMI user interface\n");
+ goto err_ref;
+ }
+
+ mutex_lock(&driver_data.ipmi_lock);
+ list_for_each_entry(temp, &driver_data.ipmi_devices, head) {
+ /*
+ * if the corresponding ACPI handle is already added
+ * to the device list, don't add it again.
+ */
+ if (temp->handle == handle)
+ goto err_lock;
+ }
+ if (!driver_data.selected_smi)
+ driver_data.selected_smi = ipmi_device;
+ list_add_tail(&ipmi_device->head, &driver_data.ipmi_devices);
+ mutex_unlock(&driver_data.ipmi_lock);
+
+ put_device(smi_data.dev);
+ return;
+
+err_lock:
+ mutex_unlock(&driver_data.ipmi_lock);
+ ipmi_dev_release(ipmi_device);
+err_ref:
+ put_device(smi_data.dev);
+ return;
+}
+
+static void ipmi_bmc_gone(int iface)
+{
+ struct acpi_ipmi_device *ipmi_device, *temp;
+ bool dev_found = false;
+
+ mutex_lock(&driver_data.ipmi_lock);
+ list_for_each_entry_safe(ipmi_device, temp,
+ &driver_data.ipmi_devices, head) {
+ if (ipmi_device->ipmi_ifnum != iface) {
+ dev_found = true;
+ __ipmi_dev_kill(ipmi_device);
+ break;
+ }
+ }
+ if (!driver_data.selected_smi)
+ driver_data.selected_smi = list_first_entry_or_null(
+ &driver_data.ipmi_devices,
+ struct acpi_ipmi_device, head);
+ mutex_unlock(&driver_data.ipmi_lock);
+
+ if (dev_found) {
+ ipmi_flush_tx_msg(ipmi_device);
+ acpi_ipmi_dev_put(ipmi_device);
+ }
+}
+
+/*
+ * This is the IPMI opregion space handler.
+ * @function: indicates the read/write. In fact as the IPMI message is driven
+ * by command, only write is meaningful.
+ * @address: This contains the netfn/command of IPMI request message.
+ * @bits : not used.
+ * @value : it is an in/out parameter. It points to the IPMI message buffer.
+ * Before the IPMI message is sent, it represents the actual request
+ * IPMI message. After the IPMI message is finished, it represents
+ * the response IPMI message returned by IPMI command.
+ * @handler_context: IPMI device context.
+ */
+static acpi_status
+acpi_ipmi_space_handler(u32 function, acpi_physical_address address,
+ u32 bits, acpi_integer *value,
+ void *handler_context, void *region_context)
+{
+ struct acpi_ipmi_msg *tx_msg;
+ struct acpi_ipmi_device *ipmi_device;
+ int err;
+ acpi_status status;
+ unsigned long flags;
+
+ /*
+ * IPMI opregion message.
+ * IPMI message is firstly written to the BMC and system software
+ * can get the respsonse. So it is unmeaningful for the read access
+ * of IPMI opregion.
+ */
+ if ((function & ACPI_IO_MASK) == ACPI_READ)
+ return AE_TYPE;
+
+ tx_msg = ipmi_msg_alloc();
+ if (!tx_msg)
+ return AE_NOT_EXIST;
+ ipmi_device = tx_msg->device;
+
+ if (acpi_format_ipmi_request(tx_msg, address, value) != 0) {
+ ipmi_msg_release(tx_msg);
+ return AE_TYPE;
+ }
+
+ acpi_ipmi_msg_get(tx_msg);
+ mutex_lock(&driver_data.ipmi_lock);
+ /* Do not add a tx_msg that can not be flushed. */
+ if (ipmi_device->dead) {
+ mutex_unlock(&driver_data.ipmi_lock);
+ ipmi_msg_release(tx_msg);
+ return AE_NOT_EXIST;
+ }
+ spin_lock_irqsave(&ipmi_device->tx_msg_lock, flags);
+ list_add_tail(&tx_msg->head, &ipmi_device->tx_msg_list);
+ spin_unlock_irqrestore(&ipmi_device->tx_msg_lock, flags);
+ mutex_unlock(&driver_data.ipmi_lock);
+
+ err = ipmi_request_settime(ipmi_device->user_interface,
+ &tx_msg->addr,
+ tx_msg->tx_msgid,
+ &tx_msg->tx_message,
+ NULL, 0, 0, IPMI_TIMEOUT);
+ if (err) {
+ status = AE_ERROR;
+ goto out_msg;
+ }
+ wait_for_completion(&tx_msg->tx_complete);
+
+ acpi_format_ipmi_response(tx_msg, value);
+ status = AE_OK;
+
+out_msg:
+ ipmi_cancel_tx_msg(ipmi_device, tx_msg);
+ acpi_ipmi_msg_put(tx_msg);
+ return status;
+}
+
+static int __init acpi_ipmi_init(void)
+{
+ int result;
+ acpi_status status;
+
+ if (acpi_disabled)
+ return 0;
+
+ status = acpi_install_address_space_handler(ACPI_ROOT_OBJECT,
+ ACPI_ADR_SPACE_IPMI,
+ &acpi_ipmi_space_handler,
+ NULL, NULL);
+ if (ACPI_FAILURE(status)) {
+ pr_warn("Can't register IPMI opregion space handle\n");
+ return -EINVAL;
+ }
+ result = ipmi_smi_watcher_register(&driver_data.bmc_events);
+ if (result)
+ pr_err("Can't register IPMI system interface watcher\n");
+
+ return result;
+}
+
+static void __exit acpi_ipmi_exit(void)
+{
+ struct acpi_ipmi_device *ipmi_device;
+
+ if (acpi_disabled)
+ return;
+
+ ipmi_smi_watcher_unregister(&driver_data.bmc_events);
+
+ /*
+ * When one smi_watcher is unregistered, it is only deleted
+ * from the smi_watcher list. But the smi_gone callback function
+ * is not called. So explicitly uninstall the ACPI IPMI oregion
+ * handler and free it.
+ */
+ mutex_lock(&driver_data.ipmi_lock);
+ while (!list_empty(&driver_data.ipmi_devices)) {
+ ipmi_device = list_first_entry(&driver_data.ipmi_devices,
+ struct acpi_ipmi_device,
+ head);
+ __ipmi_dev_kill(ipmi_device);
+ mutex_unlock(&driver_data.ipmi_lock);
+
+ ipmi_flush_tx_msg(ipmi_device);
+ acpi_ipmi_dev_put(ipmi_device);
+
+ mutex_lock(&driver_data.ipmi_lock);
+ }
+ mutex_unlock(&driver_data.ipmi_lock);
+ acpi_remove_address_space_handler(ACPI_ROOT_OBJECT,
+ ACPI_ADR_SPACE_IPMI,
+ &acpi_ipmi_space_handler);
+}
+
+module_init(acpi_ipmi_init);
+module_exit(acpi_ipmi_exit);
diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
new file mode 100644
index 00000000000..9cb65b0e759
--- /dev/null
+++ b/drivers/acpi/acpi_lpss.c
@@ -0,0 +1,738 @@
+/*
+ * ACPI support for Intel Lynxpoint LPSS.
+ *
+ * Copyright (C) 2013, Intel Corporation
+ * Authors: Mika Westerberg <mika.westerberg@linux.intel.com>
+ * Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/acpi.h>
+#include <linux/clk.h>
+#include <linux/clkdev.h>
+#include <linux/clk-provider.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <linux/platform_device.h>
+#include <linux/platform_data/clk-lpss.h>
+#include <linux/pm_runtime.h>
+#include <linux/delay.h>
+
+#include "internal.h"
+
+ACPI_MODULE_NAME("acpi_lpss");
+
+#ifdef CONFIG_X86_INTEL_LPSS
+
+#define LPSS_ADDR(desc) ((unsigned long)&desc)
+
+#define LPSS_CLK_SIZE 0x04
+#define LPSS_LTR_SIZE 0x18
+
+/* Offsets relative to LPSS_PRIVATE_OFFSET */
+#define LPSS_CLK_DIVIDER_DEF_MASK (BIT(1) | BIT(16))
+#define LPSS_RESETS 0x04
+#define LPSS_RESETS_RESET_FUNC BIT(0)
+#define LPSS_RESETS_RESET_APB BIT(1)
+#define LPSS_GENERAL 0x08
+#define LPSS_GENERAL_LTR_MODE_SW BIT(2)
+#define LPSS_GENERAL_UART_RTS_OVRD BIT(3)
+#define LPSS_SW_LTR 0x10
+#define LPSS_AUTO_LTR 0x14
+#define LPSS_LTR_SNOOP_REQ BIT(15)
+#define LPSS_LTR_SNOOP_MASK 0x0000FFFF
+#define LPSS_LTR_SNOOP_LAT_1US 0x800
+#define LPSS_LTR_SNOOP_LAT_32US 0xC00
+#define LPSS_LTR_SNOOP_LAT_SHIFT 5
+#define LPSS_LTR_SNOOP_LAT_CUTOFF 3000
+#define LPSS_LTR_MAX_VAL 0x3FF
+#define LPSS_TX_INT 0x20
+#define LPSS_TX_INT_MASK BIT(1)
+
+#define LPSS_PRV_REG_COUNT 9
+
+struct lpss_shared_clock {
+ const char *name;
+ unsigned long rate;
+ struct clk *clk;
+};
+
+struct lpss_private_data;
+
+struct lpss_device_desc {
+ bool clk_required;
+ const char *clkdev_name;
+ bool ltr_required;
+ unsigned int prv_offset;
+ size_t prv_size_override;
+ bool clk_divider;
+ bool clk_gate;
+ bool save_ctx;
+ struct lpss_shared_clock *shared_clock;
+ void (*setup)(struct lpss_private_data *pdata);
+};
+
+static struct lpss_device_desc lpss_dma_desc = {
+ .clk_required = true,
+ .clkdev_name = "hclk",
+};
+
+struct lpss_private_data {
+ void __iomem *mmio_base;
+ resource_size_t mmio_size;
+ struct clk *clk;
+ const struct lpss_device_desc *dev_desc;
+ u32 prv_reg_ctx[LPSS_PRV_REG_COUNT];
+};
+
+static void lpss_uart_setup(struct lpss_private_data *pdata)
+{
+ unsigned int offset;
+ u32 reg;
+
+ offset = pdata->dev_desc->prv_offset + LPSS_TX_INT;
+ reg = readl(pdata->mmio_base + offset);
+ writel(reg | LPSS_TX_INT_MASK, pdata->mmio_base + offset);
+
+ offset = pdata->dev_desc->prv_offset + LPSS_GENERAL;
+ reg = readl(pdata->mmio_base + offset);
+ writel(reg | LPSS_GENERAL_UART_RTS_OVRD, pdata->mmio_base + offset);
+}
+
+static void lpss_i2c_setup(struct lpss_private_data *pdata)
+{
+ unsigned int offset;
+ u32 val;
+
+ offset = pdata->dev_desc->prv_offset + LPSS_RESETS;
+ val = readl(pdata->mmio_base + offset);
+ val |= LPSS_RESETS_RESET_APB | LPSS_RESETS_RESET_FUNC;
+ writel(val, pdata->mmio_base + offset);
+}
+
+static struct lpss_device_desc lpt_dev_desc = {
+ .clk_required = true,
+ .prv_offset = 0x800,
+ .ltr_required = true,
+ .clk_divider = true,
+ .clk_gate = true,
+};
+
+static struct lpss_device_desc lpt_i2c_dev_desc = {
+ .clk_required = true,
+ .prv_offset = 0x800,
+ .ltr_required = true,
+ .clk_gate = true,
+};
+
+static struct lpss_device_desc lpt_uart_dev_desc = {
+ .clk_required = true,
+ .prv_offset = 0x800,
+ .ltr_required = true,
+ .clk_divider = true,
+ .clk_gate = true,
+ .setup = lpss_uart_setup,
+};
+
+static struct lpss_device_desc lpt_sdio_dev_desc = {
+ .prv_offset = 0x1000,
+ .prv_size_override = 0x1018,
+ .ltr_required = true,
+};
+
+static struct lpss_shared_clock pwm_clock = {
+ .name = "pwm_clk",
+ .rate = 25000000,
+};
+
+static struct lpss_device_desc byt_pwm_dev_desc = {
+ .clk_required = true,
+ .save_ctx = true,
+ .shared_clock = &pwm_clock,
+};
+
+static struct lpss_device_desc byt_uart_dev_desc = {
+ .clk_required = true,
+ .prv_offset = 0x800,
+ .clk_divider = true,
+ .clk_gate = true,
+ .save_ctx = true,
+ .setup = lpss_uart_setup,
+};
+
+static struct lpss_device_desc byt_spi_dev_desc = {
+ .clk_required = true,
+ .prv_offset = 0x400,
+ .clk_divider = true,
+ .clk_gate = true,
+ .save_ctx = true,
+};
+
+static struct lpss_device_desc byt_sdio_dev_desc = {
+ .clk_required = true,
+};
+
+static struct lpss_shared_clock i2c_clock = {
+ .name = "i2c_clk",
+ .rate = 100000000,
+};
+
+static struct lpss_device_desc byt_i2c_dev_desc = {
+ .clk_required = true,
+ .prv_offset = 0x800,
+ .save_ctx = true,
+ .shared_clock = &i2c_clock,
+ .setup = lpss_i2c_setup,
+};
+
+#else
+
+#define LPSS_ADDR(desc) (0UL)
+
+#endif /* CONFIG_X86_INTEL_LPSS */
+
+static const struct acpi_device_id acpi_lpss_device_ids[] = {
+ /* Generic LPSS devices */
+ { "INTL9C60", LPSS_ADDR(lpss_dma_desc) },
+
+ /* Lynxpoint LPSS devices */
+ { "INT33C0", LPSS_ADDR(lpt_dev_desc) },
+ { "INT33C1", LPSS_ADDR(lpt_dev_desc) },
+ { "INT33C2", LPSS_ADDR(lpt_i2c_dev_desc) },
+ { "INT33C3", LPSS_ADDR(lpt_i2c_dev_desc) },
+ { "INT33C4", LPSS_ADDR(lpt_uart_dev_desc) },
+ { "INT33C5", LPSS_ADDR(lpt_uart_dev_desc) },
+ { "INT33C6", LPSS_ADDR(lpt_sdio_dev_desc) },
+ { "INT33C7", },
+
+ /* BayTrail LPSS devices */
+ { "80860F09", LPSS_ADDR(byt_pwm_dev_desc) },
+ { "80860F0A", LPSS_ADDR(byt_uart_dev_desc) },
+ { "80860F0E", LPSS_ADDR(byt_spi_dev_desc) },
+ { "80860F14", LPSS_ADDR(byt_sdio_dev_desc) },
+ { "80860F41", LPSS_ADDR(byt_i2c_dev_desc) },
+ { "INT33B2", },
+ { "INT33FC", },
+
+ { "INT3430", LPSS_ADDR(lpt_dev_desc) },
+ { "INT3431", LPSS_ADDR(lpt_dev_desc) },
+ { "INT3432", LPSS_ADDR(lpt_i2c_dev_desc) },
+ { "INT3433", LPSS_ADDR(lpt_i2c_dev_desc) },
+ { "INT3434", LPSS_ADDR(lpt_uart_dev_desc) },
+ { "INT3435", LPSS_ADDR(lpt_uart_dev_desc) },
+ { "INT3436", LPSS_ADDR(lpt_sdio_dev_desc) },
+ { "INT3437", },
+
+ { }
+};
+
+#ifdef CONFIG_X86_INTEL_LPSS
+
+static int is_memory(struct acpi_resource *res, void *not_used)
+{
+ struct resource r;
+ return !acpi_dev_resource_memory(res, &r);
+}
+
+/* LPSS main clock device. */
+static struct platform_device *lpss_clk_dev;
+
+static inline void lpt_register_clock_device(void)
+{
+ lpss_clk_dev = platform_device_register_simple("clk-lpt", -1, NULL, 0);
+}
+
+static int register_device_clock(struct acpi_device *adev,
+ struct lpss_private_data *pdata)
+{
+ const struct lpss_device_desc *dev_desc = pdata->dev_desc;
+ struct lpss_shared_clock *shared_clock = dev_desc->shared_clock;
+ const char *devname = dev_name(&adev->dev);
+ struct clk *clk = ERR_PTR(-ENODEV);
+ struct lpss_clk_data *clk_data;
+ const char *parent, *clk_name;
+ void __iomem *prv_base;
+
+ if (!lpss_clk_dev)
+ lpt_register_clock_device();
+
+ clk_data = platform_get_drvdata(lpss_clk_dev);
+ if (!clk_data)
+ return -ENODEV;
+
+ if (dev_desc->clkdev_name) {
+ clk_register_clkdev(clk_data->clk, dev_desc->clkdev_name,
+ devname);
+ return 0;
+ }
+
+ if (!pdata->mmio_base
+ || pdata->mmio_size < dev_desc->prv_offset + LPSS_CLK_SIZE)
+ return -ENODATA;
+
+ parent = clk_data->name;
+ prv_base = pdata->mmio_base + dev_desc->prv_offset;
+
+ if (shared_clock) {
+ clk = shared_clock->clk;
+ if (!clk) {
+ clk = clk_register_fixed_rate(NULL, shared_clock->name,
+ "lpss_clk", 0,
+ shared_clock->rate);
+ shared_clock->clk = clk;
+ }
+ parent = shared_clock->name;
+ }
+
+ if (dev_desc->clk_gate) {
+ clk = clk_register_gate(NULL, devname, parent, 0,
+ prv_base, 0, 0, NULL);
+ parent = devname;
+ }
+
+ if (dev_desc->clk_divider) {
+ /* Prevent division by zero */
+ if (!readl(prv_base))
+ writel(LPSS_CLK_DIVIDER_DEF_MASK, prv_base);
+
+ clk_name = kasprintf(GFP_KERNEL, "%s-div", devname);
+ if (!clk_name)
+ return -ENOMEM;
+ clk = clk_register_fractional_divider(NULL, clk_name, parent,
+ 0, prv_base,
+ 1, 15, 16, 15, 0, NULL);
+ parent = clk_name;
+
+ clk_name = kasprintf(GFP_KERNEL, "%s-update", devname);
+ if (!clk_name) {
+ kfree(parent);
+ return -ENOMEM;
+ }
+ clk = clk_register_gate(NULL, clk_name, parent,
+ CLK_SET_RATE_PARENT | CLK_SET_RATE_GATE,
+ prv_base, 31, 0, NULL);
+ kfree(parent);
+ kfree(clk_name);
+ }
+
+ if (IS_ERR(clk))
+ return PTR_ERR(clk);
+
+ pdata->clk = clk;
+ clk_register_clkdev(clk, NULL, devname);
+ return 0;
+}
+
+static int acpi_lpss_create_device(struct acpi_device *adev,
+ const struct acpi_device_id *id)
+{
+ struct lpss_device_desc *dev_desc;
+ struct lpss_private_data *pdata;
+ struct resource_list_entry *rentry;
+ struct list_head resource_list;
+ struct platform_device *pdev;
+ int ret;
+
+ dev_desc = (struct lpss_device_desc *)id->driver_data;
+ if (!dev_desc) {
+ pdev = acpi_create_platform_device(adev);
+ return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1;
+ }
+ pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
+ if (!pdata)
+ return -ENOMEM;
+
+ INIT_LIST_HEAD(&resource_list);
+ ret = acpi_dev_get_resources(adev, &resource_list, is_memory, NULL);
+ if (ret < 0)
+ goto err_out;
+
+ list_for_each_entry(rentry, &resource_list, node)
+ if (resource_type(&rentry->res) == IORESOURCE_MEM) {
+ if (dev_desc->prv_size_override)
+ pdata->mmio_size = dev_desc->prv_size_override;
+ else
+ pdata->mmio_size = resource_size(&rentry->res);
+ pdata->mmio_base = ioremap(rentry->res.start,
+ pdata->mmio_size);
+ break;
+ }
+
+ acpi_dev_free_resource_list(&resource_list);
+
+ pdata->dev_desc = dev_desc;
+
+ if (dev_desc->clk_required) {
+ ret = register_device_clock(adev, pdata);
+ if (ret) {
+ /* Skip the device, but continue the namespace scan. */
+ ret = 0;
+ goto err_out;
+ }
+ }
+
+ /*
+ * This works around a known issue in ACPI tables where LPSS devices
+ * have _PS0 and _PS3 without _PSC (and no power resources), so
+ * acpi_bus_init_power() will assume that the BIOS has put them into D0.
+ */
+ ret = acpi_device_fix_up_power(adev);
+ if (ret) {
+ /* Skip the device, but continue the namespace scan. */
+ ret = 0;
+ goto err_out;
+ }
+
+ if (dev_desc->setup)
+ dev_desc->setup(pdata);
+
+ adev->driver_data = pdata;
+ pdev = acpi_create_platform_device(adev);
+ if (!IS_ERR_OR_NULL(pdev)) {
+ device_enable_async_suspend(&pdev->dev);
+ return 1;
+ }
+
+ ret = PTR_ERR(pdev);
+ adev->driver_data = NULL;
+
+ err_out:
+ kfree(pdata);
+ return ret;
+}
+
+static u32 __lpss_reg_read(struct lpss_private_data *pdata, unsigned int reg)
+{
+ return readl(pdata->mmio_base + pdata->dev_desc->prv_offset + reg);
+}
+
+static void __lpss_reg_write(u32 val, struct lpss_private_data *pdata,
+ unsigned int reg)
+{
+ writel(val, pdata->mmio_base + pdata->dev_desc->prv_offset + reg);
+}
+
+static int lpss_reg_read(struct device *dev, unsigned int reg, u32 *val)
+{
+ struct acpi_device *adev;
+ struct lpss_private_data *pdata;
+ unsigned long flags;
+ int ret;
+
+ ret = acpi_bus_get_device(ACPI_HANDLE(dev), &adev);
+ if (WARN_ON(ret))
+ return ret;
+
+ spin_lock_irqsave(&dev->power.lock, flags);
+ if (pm_runtime_suspended(dev)) {
+ ret = -EAGAIN;
+ goto out;
+ }
+ pdata = acpi_driver_data(adev);
+ if (WARN_ON(!pdata || !pdata->mmio_base)) {
+ ret = -ENODEV;
+ goto out;
+ }
+ *val = __lpss_reg_read(pdata, reg);
+
+ out:
+ spin_unlock_irqrestore(&dev->power.lock, flags);
+ return ret;
+}
+
+static ssize_t lpss_ltr_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+ u32 ltr_value = 0;
+ unsigned int reg;
+ int ret;
+
+ reg = strcmp(attr->attr.name, "auto_ltr") ? LPSS_SW_LTR : LPSS_AUTO_LTR;
+ ret = lpss_reg_read(dev, reg, &ltr_value);
+ if (ret)
+ return ret;
+
+ return snprintf(buf, PAGE_SIZE, "%08x\n", ltr_value);
+}
+
+static ssize_t lpss_ltr_mode_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ u32 ltr_mode = 0;
+ char *outstr;
+ int ret;
+
+ ret = lpss_reg_read(dev, LPSS_GENERAL, &ltr_mode);
+ if (ret)
+ return ret;
+
+ outstr = (ltr_mode & LPSS_GENERAL_LTR_MODE_SW) ? "sw" : "auto";
+ return sprintf(buf, "%s\n", outstr);
+}
+
+static DEVICE_ATTR(auto_ltr, S_IRUSR, lpss_ltr_show, NULL);
+static DEVICE_ATTR(sw_ltr, S_IRUSR, lpss_ltr_show, NULL);
+static DEVICE_ATTR(ltr_mode, S_IRUSR, lpss_ltr_mode_show, NULL);
+
+static struct attribute *lpss_attrs[] = {
+ &dev_attr_auto_ltr.attr,
+ &dev_attr_sw_ltr.attr,
+ &dev_attr_ltr_mode.attr,
+ NULL,
+};
+
+static struct attribute_group lpss_attr_group = {
+ .attrs = lpss_attrs,
+ .name = "lpss_ltr",
+};
+
+static void acpi_lpss_set_ltr(struct device *dev, s32 val)
+{
+ struct lpss_private_data *pdata = acpi_driver_data(ACPI_COMPANION(dev));
+ u32 ltr_mode, ltr_val;
+
+ ltr_mode = __lpss_reg_read(pdata, LPSS_GENERAL);
+ if (val < 0) {
+ if (ltr_mode & LPSS_GENERAL_LTR_MODE_SW) {
+ ltr_mode &= ~LPSS_GENERAL_LTR_MODE_SW;
+ __lpss_reg_write(ltr_mode, pdata, LPSS_GENERAL);
+ }
+ return;
+ }
+ ltr_val = __lpss_reg_read(pdata, LPSS_SW_LTR) & ~LPSS_LTR_SNOOP_MASK;
+ if (val >= LPSS_LTR_SNOOP_LAT_CUTOFF) {
+ ltr_val |= LPSS_LTR_SNOOP_LAT_32US;
+ val = LPSS_LTR_MAX_VAL;
+ } else if (val > LPSS_LTR_MAX_VAL) {
+ ltr_val |= LPSS_LTR_SNOOP_LAT_32US | LPSS_LTR_SNOOP_REQ;
+ val >>= LPSS_LTR_SNOOP_LAT_SHIFT;
+ } else {
+ ltr_val |= LPSS_LTR_SNOOP_LAT_1US | LPSS_LTR_SNOOP_REQ;
+ }
+ ltr_val |= val;
+ __lpss_reg_write(ltr_val, pdata, LPSS_SW_LTR);
+ if (!(ltr_mode & LPSS_GENERAL_LTR_MODE_SW)) {
+ ltr_mode |= LPSS_GENERAL_LTR_MODE_SW;
+ __lpss_reg_write(ltr_mode, pdata, LPSS_GENERAL);
+ }
+}
+
+#ifdef CONFIG_PM
+/**
+ * acpi_lpss_save_ctx() - Save the private registers of LPSS device
+ * @dev: LPSS device
+ *
+ * Most LPSS devices have private registers which may loose their context when
+ * the device is powered down. acpi_lpss_save_ctx() saves those registers into
+ * prv_reg_ctx array.
+ */
+static void acpi_lpss_save_ctx(struct device *dev)
+{
+ struct lpss_private_data *pdata = acpi_driver_data(ACPI_COMPANION(dev));
+ unsigned int i;
+
+ for (i = 0; i < LPSS_PRV_REG_COUNT; i++) {
+ unsigned long offset = i * sizeof(u32);
+
+ pdata->prv_reg_ctx[i] = __lpss_reg_read(pdata, offset);
+ dev_dbg(dev, "saving 0x%08x from LPSS reg at offset 0x%02lx\n",
+ pdata->prv_reg_ctx[i], offset);
+ }
+}
+
+/**
+ * acpi_lpss_restore_ctx() - Restore the private registers of LPSS device
+ * @dev: LPSS device
+ *
+ * Restores the registers that were previously stored with acpi_lpss_save_ctx().
+ */
+static void acpi_lpss_restore_ctx(struct device *dev)
+{
+ struct lpss_private_data *pdata = acpi_driver_data(ACPI_COMPANION(dev));
+ unsigned int i;
+
+ /*
+ * The following delay is needed or the subsequent write operations may
+ * fail. The LPSS devices are actually PCI devices and the PCI spec
+ * expects 10ms delay before the device can be accessed after D3 to D0
+ * transition.
+ */
+ msleep(10);
+
+ for (i = 0; i < LPSS_PRV_REG_COUNT; i++) {
+ unsigned long offset = i * sizeof(u32);
+
+ __lpss_reg_write(pdata->prv_reg_ctx[i], pdata, offset);
+ dev_dbg(dev, "restoring 0x%08x to LPSS reg at offset 0x%02lx\n",
+ pdata->prv_reg_ctx[i], offset);
+ }
+}
+
+#ifdef CONFIG_PM_SLEEP
+static int acpi_lpss_suspend_late(struct device *dev)
+{
+ int ret = pm_generic_suspend_late(dev);
+
+ if (ret)
+ return ret;
+
+ acpi_lpss_save_ctx(dev);
+ return acpi_dev_suspend_late(dev);
+}
+
+static int acpi_lpss_restore_early(struct device *dev)
+{
+ int ret = acpi_dev_resume_early(dev);
+
+ if (ret)
+ return ret;
+
+ acpi_lpss_restore_ctx(dev);
+ return pm_generic_resume_early(dev);
+}
+#endif /* CONFIG_PM_SLEEP */
+
+#ifdef CONFIG_PM_RUNTIME
+static int acpi_lpss_runtime_suspend(struct device *dev)
+{
+ int ret = pm_generic_runtime_suspend(dev);
+
+ if (ret)
+ return ret;
+
+ acpi_lpss_save_ctx(dev);
+ return acpi_dev_runtime_suspend(dev);
+}
+
+static int acpi_lpss_runtime_resume(struct device *dev)
+{
+ int ret = acpi_dev_runtime_resume(dev);
+
+ if (ret)
+ return ret;
+
+ acpi_lpss_restore_ctx(dev);
+ return pm_generic_runtime_resume(dev);
+}
+#endif /* CONFIG_PM_RUNTIME */
+#endif /* CONFIG_PM */
+
+static struct dev_pm_domain acpi_lpss_pm_domain = {
+ .ops = {
+#ifdef CONFIG_PM_SLEEP
+ .suspend_late = acpi_lpss_suspend_late,
+ .restore_early = acpi_lpss_restore_early,
+ .prepare = acpi_subsys_prepare,
+ .complete = acpi_subsys_complete,
+ .suspend = acpi_subsys_suspend,
+ .resume_early = acpi_subsys_resume_early,
+ .freeze = acpi_subsys_freeze,
+ .poweroff = acpi_subsys_suspend,
+ .poweroff_late = acpi_subsys_suspend_late,
+#endif
+#ifdef CONFIG_PM_RUNTIME
+ .runtime_suspend = acpi_lpss_runtime_suspend,
+ .runtime_resume = acpi_lpss_runtime_resume,
+#endif
+ },
+};
+
+static int acpi_lpss_platform_notify(struct notifier_block *nb,
+ unsigned long action, void *data)
+{
+ struct platform_device *pdev = to_platform_device(data);
+ struct lpss_private_data *pdata;
+ struct acpi_device *adev;
+ const struct acpi_device_id *id;
+
+ id = acpi_match_device(acpi_lpss_device_ids, &pdev->dev);
+ if (!id || !id->driver_data)
+ return 0;
+
+ if (acpi_bus_get_device(ACPI_HANDLE(&pdev->dev), &adev))
+ return 0;
+
+ pdata = acpi_driver_data(adev);
+ if (!pdata || !pdata->mmio_base)
+ return 0;
+
+ if (pdata->mmio_size < pdata->dev_desc->prv_offset + LPSS_LTR_SIZE) {
+ dev_err(&pdev->dev, "MMIO size insufficient to access LTR\n");
+ return 0;
+ }
+
+ switch (action) {
+ case BUS_NOTIFY_BOUND_DRIVER:
+ if (pdata->dev_desc->save_ctx)
+ pdev->dev.pm_domain = &acpi_lpss_pm_domain;
+ break;
+ case BUS_NOTIFY_UNBOUND_DRIVER:
+ if (pdata->dev_desc->save_ctx)
+ pdev->dev.pm_domain = NULL;
+ break;
+ case BUS_NOTIFY_ADD_DEVICE:
+ if (pdata->dev_desc->ltr_required)
+ return sysfs_create_group(&pdev->dev.kobj,
+ &lpss_attr_group);
+ case BUS_NOTIFY_DEL_DEVICE:
+ if (pdata->dev_desc->ltr_required)
+ sysfs_remove_group(&pdev->dev.kobj, &lpss_attr_group);
+ default:
+ break;
+ }
+
+ return 0;
+}
+
+static struct notifier_block acpi_lpss_nb = {
+ .notifier_call = acpi_lpss_platform_notify,
+};
+
+static void acpi_lpss_bind(struct device *dev)
+{
+ struct lpss_private_data *pdata = acpi_driver_data(ACPI_COMPANION(dev));
+
+ if (!pdata || !pdata->mmio_base || !pdata->dev_desc->ltr_required)
+ return;
+
+ if (pdata->mmio_size >= pdata->dev_desc->prv_offset + LPSS_LTR_SIZE)
+ dev->power.set_latency_tolerance = acpi_lpss_set_ltr;
+ else
+ dev_err(dev, "MMIO size insufficient to access LTR\n");
+}
+
+static void acpi_lpss_unbind(struct device *dev)
+{
+ dev->power.set_latency_tolerance = NULL;
+}
+
+static struct acpi_scan_handler lpss_handler = {
+ .ids = acpi_lpss_device_ids,
+ .attach = acpi_lpss_create_device,
+ .bind = acpi_lpss_bind,
+ .unbind = acpi_lpss_unbind,
+};
+
+void __init acpi_lpss_init(void)
+{
+ if (!lpt_clk_init()) {
+ bus_register_notifier(&platform_bus_type, &acpi_lpss_nb);
+ acpi_scan_add_handler(&lpss_handler);
+ }
+}
+
+#else
+
+static struct acpi_scan_handler lpss_handler = {
+ .ids = acpi_lpss_device_ids,
+};
+
+void __init acpi_lpss_init(void)
+{
+ acpi_scan_add_handler(&lpss_handler);
+}
+
+#endif /* CONFIG_X86_INTEL_LPSS */
diff --git a/drivers/acpi/acpi_memhotplug.c b/drivers/acpi/acpi_memhotplug.c
index 7a0f4aa4fa1..23e2319ead4 100644
--- a/drivers/acpi/acpi_memhotplug.c
+++ b/drivers/acpi/acpi_memhotplug.c
@@ -1,5 +1,7 @@
/*
- * Copyright (C) 2004 Intel Corporation <naveen.b.s@intel.com>
+ * Copyright (C) 2004, 2013 Intel Corporation
+ * Author: Naveen B S <naveen.b.s@intel.com>
+ * Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
*
* All rights reserved.
*
@@ -25,12 +27,11 @@
* ranges.
*/
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/types.h>
+#include <linux/acpi.h>
+#include <linux/memory.h>
#include <linux/memory_hotplug.h>
-#include <acpi/acpi_drivers.h>
+
+#include "internal.h"
#define ACPI_MEMORY_DEVICE_CLASS "memory"
#define ACPI_MEMORY_DEVICE_HID "PNP0C80"
@@ -38,35 +39,34 @@
#define _COMPONENT ACPI_MEMORY_DEVICE_COMPONENT
+#undef PREFIX
+#define PREFIX "ACPI:memory_hp:"
+
ACPI_MODULE_NAME("acpi_memhotplug");
-MODULE_AUTHOR("Naveen B S <naveen.b.s@intel.com>");
-MODULE_DESCRIPTION("Hotplug Mem Driver");
-MODULE_LICENSE("GPL");
+
+static const struct acpi_device_id memory_device_ids[] = {
+ {ACPI_MEMORY_DEVICE_HID, 0},
+ {"", 0},
+};
+
+#ifdef CONFIG_ACPI_HOTPLUG_MEMORY
/* Memory Device States */
#define MEMORY_INVALID_STATE 0
#define MEMORY_POWER_ON_STATE 1
#define MEMORY_POWER_OFF_STATE 2
-static int acpi_memory_device_add(struct acpi_device *device);
-static int acpi_memory_device_remove(struct acpi_device *device, int type);
-static int acpi_memory_device_start(struct acpi_device *device);
+static int acpi_memory_device_add(struct acpi_device *device,
+ const struct acpi_device_id *not_used);
+static void acpi_memory_device_remove(struct acpi_device *device);
-static const struct acpi_device_id memory_device_ids[] = {
- {ACPI_MEMORY_DEVICE_HID, 0},
- {"", 0},
-};
-MODULE_DEVICE_TABLE(acpi, memory_device_ids);
-
-static struct acpi_driver acpi_memory_device_driver = {
- .name = "acpi_memhotplug",
- .class = ACPI_MEMORY_DEVICE_CLASS,
+static struct acpi_scan_handler memory_device_handler = {
.ids = memory_device_ids,
- .ops = {
- .add = acpi_memory_device_add,
- .remove = acpi_memory_device_remove,
- .start = acpi_memory_device_start,
- },
+ .attach = acpi_memory_device_add,
+ .detach = acpi_memory_device_remove,
+ .hotplug = {
+ .enabled = true,
+ },
};
struct acpi_memory_info {
@@ -84,8 +84,6 @@ struct acpi_memory_device {
struct list_head res_list;
};
-static int acpi_hotmem_initialized;
-
static acpi_status
acpi_memory_get_resource(struct acpi_resource *resource, void *context)
{
@@ -123,71 +121,31 @@ acpi_memory_get_resource(struct acpi_resource *resource, void *context)
return AE_OK;
}
-static int
-acpi_memory_get_device_resources(struct acpi_memory_device *mem_device)
+static void
+acpi_memory_free_device_resources(struct acpi_memory_device *mem_device)
{
- acpi_status status;
struct acpi_memory_info *info, *n;
-
- if (!list_empty(&mem_device->res_list))
- return 0;
-
- status = acpi_walk_resources(mem_device->device->handle, METHOD_NAME__CRS,
- acpi_memory_get_resource, mem_device);
- if (ACPI_FAILURE(status)) {
- list_for_each_entry_safe(info, n, &mem_device->res_list, list)
- kfree(info);
- INIT_LIST_HEAD(&mem_device->res_list);
- return -EINVAL;
- }
-
- return 0;
+ list_for_each_entry_safe(info, n, &mem_device->res_list, list)
+ kfree(info);
+ INIT_LIST_HEAD(&mem_device->res_list);
}
static int
-acpi_memory_get_device(acpi_handle handle,
- struct acpi_memory_device **mem_device)
+acpi_memory_get_device_resources(struct acpi_memory_device *mem_device)
{
acpi_status status;
- acpi_handle phandle;
- struct acpi_device *device = NULL;
- struct acpi_device *pdevice = NULL;
+ if (!list_empty(&mem_device->res_list))
+ return 0;
- if (!acpi_bus_get_device(handle, &device) && device)
- goto end;
-
- status = acpi_get_parent(handle, &phandle);
- if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status, "Cannot find acpi parent"));
- return -EINVAL;
- }
-
- /* Get the parent device */
- status = acpi_bus_get_device(phandle, &pdevice);
- if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status, "Cannot get acpi bus device"));
- return -EINVAL;
- }
-
- /*
- * Now add the notified device. This creates the acpi_device
- * and invokes .add function
- */
- status = acpi_bus_add(&device, pdevice, handle, ACPI_BUS_TYPE_DEVICE);
+ status = acpi_walk_resources(mem_device->device->handle, METHOD_NAME__CRS,
+ acpi_memory_get_resource, mem_device);
if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status, "Cannot add acpi bus"));
+ acpi_memory_free_device_resources(mem_device);
return -EINVAL;
}
- end:
- *mem_device = acpi_driver_data(device);
- if (!(*mem_device)) {
- printk(KERN_ERR "\n driver data not found");
- return -ENODEV;
- }
-
return 0;
}
@@ -196,8 +154,9 @@ static int acpi_memory_check_device(struct acpi_memory_device *mem_device)
unsigned long long current_status;
/* Get device present/absent information from the _STA */
- if (ACPI_FAILURE(acpi_evaluate_integer(mem_device->device->handle, "_STA",
- NULL, &current_status)))
+ if (ACPI_FAILURE(acpi_evaluate_integer(mem_device->device->handle,
+ METHOD_NAME__STA, NULL,
+ &current_status)))
return -ENODEV;
/*
* Check for device status. Device should be
@@ -211,22 +170,49 @@ static int acpi_memory_check_device(struct acpi_memory_device *mem_device)
return 0;
}
+static unsigned long acpi_meminfo_start_pfn(struct acpi_memory_info *info)
+{
+ return PFN_DOWN(info->start_addr);
+}
+
+static unsigned long acpi_meminfo_end_pfn(struct acpi_memory_info *info)
+{
+ return PFN_UP(info->start_addr + info->length-1);
+}
+
+static int acpi_bind_memblk(struct memory_block *mem, void *arg)
+{
+ return acpi_bind_one(&mem->dev, arg);
+}
+
+static int acpi_bind_memory_blocks(struct acpi_memory_info *info,
+ struct acpi_device *adev)
+{
+ return walk_memory_range(acpi_meminfo_start_pfn(info),
+ acpi_meminfo_end_pfn(info), adev,
+ acpi_bind_memblk);
+}
+
+static int acpi_unbind_memblk(struct memory_block *mem, void *arg)
+{
+ acpi_unbind_one(&mem->dev);
+ return 0;
+}
+
+static void acpi_unbind_memory_blocks(struct acpi_memory_info *info)
+{
+ walk_memory_range(acpi_meminfo_start_pfn(info),
+ acpi_meminfo_end_pfn(info), NULL, acpi_unbind_memblk);
+}
+
static int acpi_memory_enable_device(struct acpi_memory_device *mem_device)
{
+ acpi_handle handle = mem_device->device->handle;
int result, num_enabled = 0;
struct acpi_memory_info *info;
int node;
-
- /* Get the range from the _CRS */
- result = acpi_memory_get_device_resources(mem_device);
- if (result) {
- printk(KERN_ERR PREFIX "get_device_resources failed\n");
- mem_device->state = MEMORY_INVALID_STATE;
- return result;
- }
-
- node = acpi_get_node(mem_device->device->handle);
+ node = acpi_get_node(handle);
/*
* Tell the VM there is more memory here...
* Note: Assume that this function returns zero on success
@@ -238,157 +224,90 @@ static int acpi_memory_enable_device(struct acpi_memory_device *mem_device)
num_enabled++;
continue;
}
-
+ /*
+ * If the memory block size is zero, please ignore it.
+ * Don't try to do the following memory hotplug flowchart.
+ */
+ if (!info->length)
+ continue;
if (node < 0)
node = memory_add_physaddr_to_nid(info->start_addr);
result = add_memory(node, info->start_addr, info->length);
- if (result)
+
+ /*
+ * If the memory block has been used by the kernel, add_memory()
+ * returns -EEXIST. If add_memory() returns the other error, it
+ * means that this memory block is not used by the kernel.
+ */
+ if (result && result != -EEXIST)
continue;
+
+ result = acpi_bind_memory_blocks(info, mem_device->device);
+ if (result) {
+ acpi_unbind_memory_blocks(info);
+ return -ENODEV;
+ }
+
info->enabled = 1;
+
+ /*
+ * Add num_enable even if add_memory() returns -EEXIST, so the
+ * device is bound to this driver.
+ */
num_enabled++;
}
if (!num_enabled) {
- printk(KERN_ERR PREFIX "add_memory failed\n");
+ dev_err(&mem_device->device->dev, "add_memory failed\n");
mem_device->state = MEMORY_INVALID_STATE;
return -EINVAL;
}
-
- return result;
-}
-
-static int acpi_memory_powerdown_device(struct acpi_memory_device *mem_device)
-{
- acpi_status status;
- struct acpi_object_list arg_list;
- union acpi_object arg;
- unsigned long long current_status;
-
-
- /* Issue the _EJ0 command */
- arg_list.count = 1;
- arg_list.pointer = &arg;
- arg.type = ACPI_TYPE_INTEGER;
- arg.integer.value = 1;
- status = acpi_evaluate_object(mem_device->device->handle,
- "_EJ0", &arg_list, NULL);
- /* Return on _EJ0 failure */
- if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status, "_EJ0 failed"));
- return -ENODEV;
- }
-
- /* Evalute _STA to check if the device is disabled */
- status = acpi_evaluate_integer(mem_device->device->handle, "_STA",
- NULL, &current_status);
- if (ACPI_FAILURE(status))
- return -ENODEV;
-
- /* Check for device status. Device should be disabled */
- if (current_status & ACPI_STA_DEVICE_ENABLED)
- return -EINVAL;
-
+ /*
+ * Sometimes the memory device will contain several memory blocks.
+ * When one memory block is hot-added to the system memory, it will
+ * be regarded as a success.
+ * Otherwise if the last memory block can't be hot-added to the system
+ * memory, it will be failure and the memory device can't be bound with
+ * driver.
+ */
return 0;
}
-static int acpi_memory_disable_device(struct acpi_memory_device *mem_device)
+static void acpi_memory_remove_memory(struct acpi_memory_device *mem_device)
{
- int result;
+ acpi_handle handle = mem_device->device->handle;
struct acpi_memory_info *info, *n;
+ int nid = acpi_get_node(handle);
-
- /*
- * Ask the VM to offline this memory range.
- * Note: Assume that this function returns zero on success
- */
list_for_each_entry_safe(info, n, &mem_device->res_list, list) {
- if (info->enabled) {
- result = remove_memory(info->start_addr, info->length);
- if (result)
- return result;
- }
- kfree(info);
- }
+ if (!info->enabled)
+ continue;
- /* Power-off and eject the device */
- result = acpi_memory_powerdown_device(mem_device);
- if (result) {
- /* Set the status of the device to invalid */
- mem_device->state = MEMORY_INVALID_STATE;
- return result;
- }
+ if (nid == NUMA_NO_NODE)
+ nid = memory_add_physaddr_to_nid(info->start_addr);
- mem_device->state = MEMORY_POWER_OFF_STATE;
- return result;
+ acpi_unbind_memory_blocks(info);
+ remove_memory(nid, info->start_addr, info->length);
+ list_del(&info->list);
+ kfree(info);
+ }
}
-static void acpi_memory_device_notify(acpi_handle handle, u32 event, void *data)
+static void acpi_memory_device_free(struct acpi_memory_device *mem_device)
{
- struct acpi_memory_device *mem_device;
- struct acpi_device *device;
-
-
- switch (event) {
- case ACPI_NOTIFY_BUS_CHECK:
- ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "\nReceived BUS CHECK notification for device\n"));
- /* Fall Through */
- case ACPI_NOTIFY_DEVICE_CHECK:
- if (event == ACPI_NOTIFY_DEVICE_CHECK)
- ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "\nReceived DEVICE CHECK notification for device\n"));
- if (acpi_memory_get_device(handle, &mem_device)) {
- printk(KERN_ERR PREFIX "Cannot find driver data\n");
- return;
- }
-
- if (!acpi_memory_check_device(mem_device)) {
- if (acpi_memory_enable_device(mem_device))
- printk(KERN_ERR PREFIX
- "Cannot enable memory device\n");
- }
- break;
- case ACPI_NOTIFY_EJECT_REQUEST:
- ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "\nReceived EJECT REQUEST notification for device\n"));
-
- if (acpi_bus_get_device(handle, &device)) {
- printk(KERN_ERR PREFIX "Device doesn't exist\n");
- break;
- }
- mem_device = acpi_driver_data(device);
- if (!mem_device) {
- printk(KERN_ERR PREFIX "Driver Data is NULL\n");
- break;
- }
-
- /*
- * Currently disabling memory device from kernel mode
- * TBD: Can also be disabled from user mode scripts
- * TBD: Can also be disabled by Callback registration
- * with generic sysfs driver
- */
- if (acpi_memory_disable_device(mem_device))
- printk(KERN_ERR PREFIX
- "Disable memory device\n");
- /*
- * TBD: Invoke acpi_bus_remove to cleanup data structures
- */
- break;
- default:
- ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "Unsupported event [0x%x]\n", event));
- break;
- }
+ if (!mem_device)
+ return;
- return;
+ acpi_memory_free_device_resources(mem_device);
+ mem_device->device->driver_data = NULL;
+ kfree(mem_device);
}
-static int acpi_memory_device_add(struct acpi_device *device)
+static int acpi_memory_device_add(struct acpi_device *device,
+ const struct acpi_device_id *not_used)
{
+ struct acpi_memory_device *mem_device;
int result;
- struct acpi_memory_device *mem_device = NULL;
-
if (!device)
return -EINVAL;
@@ -406,6 +325,7 @@ static int acpi_memory_device_add(struct acpi_device *device)
/* Get the range from the _CRS */
result = acpi_memory_get_device_resources(mem_device);
if (result) {
+ device->driver_data = NULL;
kfree(mem_device);
return result;
}
@@ -413,163 +333,63 @@ static int acpi_memory_device_add(struct acpi_device *device)
/* Set the device state */
mem_device->state = MEMORY_POWER_ON_STATE;
- printk(KERN_DEBUG "%s \n", acpi_device_name(device));
-
- return result;
-}
-
-static int acpi_memory_device_remove(struct acpi_device *device, int type)
-{
- struct acpi_memory_device *mem_device = NULL;
-
-
- if (!device || !acpi_driver_data(device))
- return -EINVAL;
-
- mem_device = acpi_driver_data(device);
- kfree(mem_device);
-
- return 0;
-}
-
-static int acpi_memory_device_start (struct acpi_device *device)
-{
- struct acpi_memory_device *mem_device;
- int result = 0;
-
- /*
- * Early boot code has recognized memory area by EFI/E820.
- * If DSDT shows these memory devices on boot, hotplug is not necessary
- * for them. So, it just returns until completion of this driver's
- * start up.
- */
- if (!acpi_hotmem_initialized)
+ result = acpi_memory_check_device(mem_device);
+ if (result) {
+ acpi_memory_device_free(mem_device);
return 0;
-
- mem_device = acpi_driver_data(device);
-
- if (!acpi_memory_check_device(mem_device)) {
- /* call add_memory func */
- result = acpi_memory_enable_device(mem_device);
- if (result)
- printk(KERN_ERR PREFIX
- "Error in acpi_memory_enable_device\n");
}
- return result;
-}
-/*
- * Helper function to check for memory device
- */
-static acpi_status is_memory_device(acpi_handle handle)
-{
- char *hardware_id;
- acpi_status status;
- struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
- struct acpi_device_info *info;
-
-
- status = acpi_get_object_info(handle, &buffer);
- if (ACPI_FAILURE(status))
- return status;
-
- info = buffer.pointer;
- if (!(info->valid & ACPI_VALID_HID)) {
- kfree(buffer.pointer);
- return AE_ERROR;
+ result = acpi_memory_enable_device(mem_device);
+ if (result) {
+ dev_err(&device->dev, "acpi_memory_enable_device() error\n");
+ acpi_memory_device_free(mem_device);
+ return result;
}
- hardware_id = info->hardware_id.value;
- if ((hardware_id == NULL) ||
- (strcmp(hardware_id, ACPI_MEMORY_DEVICE_HID)))
- status = AE_ERROR;
-
- kfree(buffer.pointer);
- return status;
+ dev_dbg(&device->dev, "Memory device configured by ACPI\n");
+ return 1;
}
-static acpi_status
-acpi_memory_register_notify_handler(acpi_handle handle,
- u32 level, void *ctxt, void **retv)
+static void acpi_memory_device_remove(struct acpi_device *device)
{
- acpi_status status;
-
+ struct acpi_memory_device *mem_device;
- status = is_memory_device(handle);
- if (ACPI_FAILURE(status))
- return AE_OK; /* continue */
+ if (!device || !acpi_driver_data(device))
+ return;
- status = acpi_install_notify_handler(handle, ACPI_SYSTEM_NOTIFY,
- acpi_memory_device_notify, NULL);
- /* continue */
- return AE_OK;
+ mem_device = acpi_driver_data(device);
+ acpi_memory_remove_memory(mem_device);
+ acpi_memory_device_free(mem_device);
}
-static acpi_status
-acpi_memory_deregister_notify_handler(acpi_handle handle,
- u32 level, void *ctxt, void **retv)
-{
- acpi_status status;
-
-
- status = is_memory_device(handle);
- if (ACPI_FAILURE(status))
- return AE_OK; /* continue */
+static bool __initdata acpi_no_memhotplug;
- status = acpi_remove_notify_handler(handle,
- ACPI_SYSTEM_NOTIFY,
- acpi_memory_device_notify);
-
- return AE_OK; /* continue */
-}
-
-static int __init acpi_memory_device_init(void)
+void __init acpi_memory_hotplug_init(void)
{
- int result;
- acpi_status status;
-
-
- result = acpi_bus_register_driver(&acpi_memory_device_driver);
-
- if (result < 0)
- return -ENODEV;
-
- status = acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX,
- acpi_memory_register_notify_handler,
- NULL, NULL);
-
- if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status, "walk_namespace failed"));
- acpi_bus_unregister_driver(&acpi_memory_device_driver);
- return -ENODEV;
+ if (acpi_no_memhotplug) {
+ memory_device_handler.attach = NULL;
+ acpi_scan_add_handler(&memory_device_handler);
+ return;
}
-
- acpi_hotmem_initialized = 1;
- return 0;
+ acpi_scan_add_handler_with_hotplug(&memory_device_handler, "memory");
}
-static void __exit acpi_memory_device_exit(void)
+static int __init disable_acpi_memory_hotplug(char *str)
{
- acpi_status status;
-
-
- /*
- * Adding this to un-install notification handlers for all the device
- * handles.
- */
- status = acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX,
- acpi_memory_deregister_notify_handler,
- NULL, NULL);
+ acpi_no_memhotplug = true;
+ return 1;
+}
+__setup("acpi_no_memhotplug", disable_acpi_memory_hotplug);
- if (ACPI_FAILURE(status))
- ACPI_EXCEPTION((AE_INFO, status, "walk_namespace failed"));
+#else
- acpi_bus_unregister_driver(&acpi_memory_device_driver);
+static struct acpi_scan_handler memory_device_handler = {
+ .ids = memory_device_ids,
+};
- return;
+void __init acpi_memory_hotplug_init(void)
+{
+ acpi_scan_add_handler(&memory_device_handler);
}
-module_init(acpi_memory_device_init);
-module_exit(acpi_memory_device_exit);
+#endif /* CONFIG_ACPI_HOTPLUG_MEMORY */
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
new file mode 100644
index 00000000000..f148a0580e0
--- /dev/null
+++ b/drivers/acpi/acpi_pad.c
@@ -0,0 +1,523 @@
+/*
+ * acpi_pad.c ACPI Processor Aggregator Driver
+ *
+ * Copyright (c) 2009, Intel Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/cpumask.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/types.h>
+#include <linux/kthread.h>
+#include <linux/freezer.h>
+#include <linux/cpu.h>
+#include <linux/clockchips.h>
+#include <linux/slab.h>
+#include <linux/acpi.h>
+#include <asm/mwait.h>
+
+#define ACPI_PROCESSOR_AGGREGATOR_CLASS "acpi_pad"
+#define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
+#define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80
+static DEFINE_MUTEX(isolated_cpus_lock);
+static DEFINE_MUTEX(round_robin_lock);
+
+static unsigned long power_saving_mwait_eax;
+
+static unsigned char tsc_detected_unstable;
+static unsigned char tsc_marked_unstable;
+static unsigned char lapic_detected_unstable;
+static unsigned char lapic_marked_unstable;
+
+static void power_saving_mwait_init(void)
+{
+ unsigned int eax, ebx, ecx, edx;
+ unsigned int highest_cstate = 0;
+ unsigned int highest_subcstate = 0;
+ int i;
+
+ if (!boot_cpu_has(X86_FEATURE_MWAIT))
+ return;
+ if (boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
+ return;
+
+ cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &edx);
+
+ if (!(ecx & CPUID5_ECX_EXTENSIONS_SUPPORTED) ||
+ !(ecx & CPUID5_ECX_INTERRUPT_BREAK))
+ return;
+
+ edx >>= MWAIT_SUBSTATE_SIZE;
+ for (i = 0; i < 7 && edx; i++, edx >>= MWAIT_SUBSTATE_SIZE) {
+ if (edx & MWAIT_SUBSTATE_MASK) {
+ highest_cstate = i;
+ highest_subcstate = edx & MWAIT_SUBSTATE_MASK;
+ }
+ }
+ power_saving_mwait_eax = (highest_cstate << MWAIT_SUBSTATE_SIZE) |
+ (highest_subcstate - 1);
+
+#if defined(CONFIG_X86)
+ switch (boot_cpu_data.x86_vendor) {
+ case X86_VENDOR_AMD:
+ case X86_VENDOR_INTEL:
+ /*
+ * AMD Fam10h TSC will tick in all
+ * C/P/S0/S1 states when this bit is set.
+ */
+ if (!boot_cpu_has(X86_FEATURE_NONSTOP_TSC))
+ tsc_detected_unstable = 1;
+ if (!boot_cpu_has(X86_FEATURE_ARAT))
+ lapic_detected_unstable = 1;
+ break;
+ default:
+ /* TSC & LAPIC could halt in idle */
+ tsc_detected_unstable = 1;
+ lapic_detected_unstable = 1;
+ }
+#endif
+}
+
+static unsigned long cpu_weight[NR_CPUS];
+static int tsk_in_cpu[NR_CPUS] = {[0 ... NR_CPUS-1] = -1};
+static DECLARE_BITMAP(pad_busy_cpus_bits, NR_CPUS);
+static void round_robin_cpu(unsigned int tsk_index)
+{
+ struct cpumask *pad_busy_cpus = to_cpumask(pad_busy_cpus_bits);
+ cpumask_var_t tmp;
+ int cpu;
+ unsigned long min_weight = -1;
+ unsigned long uninitialized_var(preferred_cpu);
+
+ if (!alloc_cpumask_var(&tmp, GFP_KERNEL))
+ return;
+
+ mutex_lock(&round_robin_lock);
+ cpumask_clear(tmp);
+ for_each_cpu(cpu, pad_busy_cpus)
+ cpumask_or(tmp, tmp, topology_thread_cpumask(cpu));
+ cpumask_andnot(tmp, cpu_online_mask, tmp);
+ /* avoid HT sibilings if possible */
+ if (cpumask_empty(tmp))
+ cpumask_andnot(tmp, cpu_online_mask, pad_busy_cpus);
+ if (cpumask_empty(tmp)) {
+ mutex_unlock(&round_robin_lock);
+ return;
+ }
+ for_each_cpu(cpu, tmp) {
+ if (cpu_weight[cpu] < min_weight) {
+ min_weight = cpu_weight[cpu];
+ preferred_cpu = cpu;
+ }
+ }
+
+ if (tsk_in_cpu[tsk_index] != -1)
+ cpumask_clear_cpu(tsk_in_cpu[tsk_index], pad_busy_cpus);
+ tsk_in_cpu[tsk_index] = preferred_cpu;
+ cpumask_set_cpu(preferred_cpu, pad_busy_cpus);
+ cpu_weight[preferred_cpu]++;
+ mutex_unlock(&round_robin_lock);
+
+ set_cpus_allowed_ptr(current, cpumask_of(preferred_cpu));
+}
+
+static void exit_round_robin(unsigned int tsk_index)
+{
+ struct cpumask *pad_busy_cpus = to_cpumask(pad_busy_cpus_bits);
+ cpumask_clear_cpu(tsk_in_cpu[tsk_index], pad_busy_cpus);
+ tsk_in_cpu[tsk_index] = -1;
+}
+
+static unsigned int idle_pct = 5; /* percentage */
+static unsigned int round_robin_time = 1; /* second */
+static int power_saving_thread(void *data)
+{
+ struct sched_param param = {.sched_priority = 1};
+ int do_sleep;
+ unsigned int tsk_index = (unsigned long)data;
+ u64 last_jiffies = 0;
+
+ sched_setscheduler(current, SCHED_RR, &param);
+
+ while (!kthread_should_stop()) {
+ int cpu;
+ unsigned long expire_time;
+
+ try_to_freeze();
+
+ /* round robin to cpus */
+ expire_time = last_jiffies + round_robin_time * HZ;
+ if (time_before(expire_time, jiffies)) {
+ last_jiffies = jiffies;
+ round_robin_cpu(tsk_index);
+ }
+
+ do_sleep = 0;
+
+ expire_time = jiffies + HZ * (100 - idle_pct) / 100;
+
+ while (!need_resched()) {
+ if (tsc_detected_unstable && !tsc_marked_unstable) {
+ /* TSC could halt in idle, so notify users */
+ mark_tsc_unstable("TSC halts in idle");
+ tsc_marked_unstable = 1;
+ }
+ if (lapic_detected_unstable && !lapic_marked_unstable) {
+ int i;
+ /* LAPIC could halt in idle, so notify users */
+ for_each_online_cpu(i)
+ clockevents_notify(
+ CLOCK_EVT_NOTIFY_BROADCAST_ON,
+ &i);
+ lapic_marked_unstable = 1;
+ }
+ local_irq_disable();
+ cpu = smp_processor_id();
+ if (lapic_marked_unstable)
+ clockevents_notify(
+ CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu);
+ stop_critical_timings();
+
+ mwait_idle_with_hints(power_saving_mwait_eax, 1);
+
+ start_critical_timings();
+ if (lapic_marked_unstable)
+ clockevents_notify(
+ CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu);
+ local_irq_enable();
+
+ if (time_before(expire_time, jiffies)) {
+ do_sleep = 1;
+ break;
+ }
+ }
+
+ /*
+ * current sched_rt has threshold for rt task running time.
+ * When a rt task uses 95% CPU time, the rt thread will be
+ * scheduled out for 5% CPU time to not starve other tasks. But
+ * the mechanism only works when all CPUs have RT task running,
+ * as if one CPU hasn't RT task, RT task from other CPUs will
+ * borrow CPU time from this CPU and cause RT task use > 95%
+ * CPU time. To make 'avoid starvation' work, takes a nap here.
+ */
+ if (unlikely(do_sleep))
+ schedule_timeout_killable(HZ * idle_pct / 100);
+
+ /* If an external event has set the need_resched flag, then
+ * we need to deal with it, or this loop will continue to
+ * spin without calling __mwait().
+ */
+ if (unlikely(need_resched()))
+ schedule();
+ }
+
+ exit_round_robin(tsk_index);
+ return 0;
+}
+
+static struct task_struct *ps_tsks[NR_CPUS];
+static unsigned int ps_tsk_num;
+static int create_power_saving_task(void)
+{
+ int rc;
+
+ ps_tsks[ps_tsk_num] = kthread_run(power_saving_thread,
+ (void *)(unsigned long)ps_tsk_num,
+ "acpi_pad/%d", ps_tsk_num);
+
+ if (IS_ERR(ps_tsks[ps_tsk_num])) {
+ rc = PTR_ERR(ps_tsks[ps_tsk_num]);
+ ps_tsks[ps_tsk_num] = NULL;
+ } else {
+ rc = 0;
+ ps_tsk_num++;
+ }
+
+ return rc;
+}
+
+static void destroy_power_saving_task(void)
+{
+ if (ps_tsk_num > 0) {
+ ps_tsk_num--;
+ kthread_stop(ps_tsks[ps_tsk_num]);
+ ps_tsks[ps_tsk_num] = NULL;
+ }
+}
+
+static void set_power_saving_task_num(unsigned int num)
+{
+ if (num > ps_tsk_num) {
+ while (ps_tsk_num < num) {
+ if (create_power_saving_task())
+ return;
+ }
+ } else if (num < ps_tsk_num) {
+ while (ps_tsk_num > num)
+ destroy_power_saving_task();
+ }
+}
+
+static void acpi_pad_idle_cpus(unsigned int num_cpus)
+{
+ get_online_cpus();
+
+ num_cpus = min_t(unsigned int, num_cpus, num_online_cpus());
+ set_power_saving_task_num(num_cpus);
+
+ put_online_cpus();
+}
+
+static uint32_t acpi_pad_idle_cpus_num(void)
+{
+ return ps_tsk_num;
+}
+
+static ssize_t acpi_pad_rrtime_store(struct device *dev,
+ struct device_attribute *attr, const char *buf, size_t count)
+{
+ unsigned long num;
+ if (kstrtoul(buf, 0, &num))
+ return -EINVAL;
+ if (num < 1 || num >= 100)
+ return -EINVAL;
+ mutex_lock(&isolated_cpus_lock);
+ round_robin_time = num;
+ mutex_unlock(&isolated_cpus_lock);
+ return count;
+}
+
+static ssize_t acpi_pad_rrtime_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ return scnprintf(buf, PAGE_SIZE, "%d\n", round_robin_time);
+}
+static DEVICE_ATTR(rrtime, S_IRUGO|S_IWUSR,
+ acpi_pad_rrtime_show,
+ acpi_pad_rrtime_store);
+
+static ssize_t acpi_pad_idlepct_store(struct device *dev,
+ struct device_attribute *attr, const char *buf, size_t count)
+{
+ unsigned long num;
+ if (kstrtoul(buf, 0, &num))
+ return -EINVAL;
+ if (num < 1 || num >= 100)
+ return -EINVAL;
+ mutex_lock(&isolated_cpus_lock);
+ idle_pct = num;
+ mutex_unlock(&isolated_cpus_lock);
+ return count;
+}
+
+static ssize_t acpi_pad_idlepct_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ return scnprintf(buf, PAGE_SIZE, "%d\n", idle_pct);
+}
+static DEVICE_ATTR(idlepct, S_IRUGO|S_IWUSR,
+ acpi_pad_idlepct_show,
+ acpi_pad_idlepct_store);
+
+static ssize_t acpi_pad_idlecpus_store(struct device *dev,
+ struct device_attribute *attr, const char *buf, size_t count)
+{
+ unsigned long num;
+ if (kstrtoul(buf, 0, &num))
+ return -EINVAL;
+ mutex_lock(&isolated_cpus_lock);
+ acpi_pad_idle_cpus(num);
+ mutex_unlock(&isolated_cpus_lock);
+ return count;
+}
+
+static ssize_t acpi_pad_idlecpus_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ int n = 0;
+ n = cpumask_scnprintf(buf, PAGE_SIZE-2, to_cpumask(pad_busy_cpus_bits));
+ buf[n++] = '\n';
+ buf[n] = '\0';
+ return n;
+}
+static DEVICE_ATTR(idlecpus, S_IRUGO|S_IWUSR,
+ acpi_pad_idlecpus_show,
+ acpi_pad_idlecpus_store);
+
+static int acpi_pad_add_sysfs(struct acpi_device *device)
+{
+ int result;
+
+ result = device_create_file(&device->dev, &dev_attr_idlecpus);
+ if (result)
+ return -ENODEV;
+ result = device_create_file(&device->dev, &dev_attr_idlepct);
+ if (result) {
+ device_remove_file(&device->dev, &dev_attr_idlecpus);
+ return -ENODEV;
+ }
+ result = device_create_file(&device->dev, &dev_attr_rrtime);
+ if (result) {
+ device_remove_file(&device->dev, &dev_attr_idlecpus);
+ device_remove_file(&device->dev, &dev_attr_idlepct);
+ return -ENODEV;
+ }
+ return 0;
+}
+
+static void acpi_pad_remove_sysfs(struct acpi_device *device)
+{
+ device_remove_file(&device->dev, &dev_attr_idlecpus);
+ device_remove_file(&device->dev, &dev_attr_idlepct);
+ device_remove_file(&device->dev, &dev_attr_rrtime);
+}
+
+/*
+ * Query firmware how many CPUs should be idle
+ * return -1 on failure
+ */
+static int acpi_pad_pur(acpi_handle handle)
+{
+ struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
+ union acpi_object *package;
+ int num = -1;
+
+ if (ACPI_FAILURE(acpi_evaluate_object(handle, "_PUR", NULL, &buffer)))
+ return num;
+
+ if (!buffer.length || !buffer.pointer)
+ return num;
+
+ package = buffer.pointer;
+
+ if (package->type == ACPI_TYPE_PACKAGE &&
+ package->package.count == 2 &&
+ package->package.elements[0].integer.value == 1) /* rev 1 */
+
+ num = package->package.elements[1].integer.value;
+
+ kfree(buffer.pointer);
+ return num;
+}
+
+static void acpi_pad_handle_notify(acpi_handle handle)
+{
+ int num_cpus;
+ uint32_t idle_cpus;
+ struct acpi_buffer param = {
+ .length = 4,
+ .pointer = (void *)&idle_cpus,
+ };
+
+ mutex_lock(&isolated_cpus_lock);
+ num_cpus = acpi_pad_pur(handle);
+ if (num_cpus < 0) {
+ mutex_unlock(&isolated_cpus_lock);
+ return;
+ }
+ acpi_pad_idle_cpus(num_cpus);
+ idle_cpus = acpi_pad_idle_cpus_num();
+ acpi_evaluate_ost(handle, ACPI_PROCESSOR_AGGREGATOR_NOTIFY, 0, &param);
+ mutex_unlock(&isolated_cpus_lock);
+}
+
+static void acpi_pad_notify(acpi_handle handle, u32 event,
+ void *data)
+{
+ struct acpi_device *device = data;
+
+ switch (event) {
+ case ACPI_PROCESSOR_AGGREGATOR_NOTIFY:
+ acpi_pad_handle_notify(handle);
+ acpi_bus_generate_netlink_event(device->pnp.device_class,
+ dev_name(&device->dev), event, 0);
+ break;
+ default:
+ pr_warn("Unsupported event [0x%x]\n", event);
+ break;
+ }
+}
+
+static int acpi_pad_add(struct acpi_device *device)
+{
+ acpi_status status;
+
+ strcpy(acpi_device_name(device), ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME);
+ strcpy(acpi_device_class(device), ACPI_PROCESSOR_AGGREGATOR_CLASS);
+
+ if (acpi_pad_add_sysfs(device))
+ return -ENODEV;
+
+ status = acpi_install_notify_handler(device->handle,
+ ACPI_DEVICE_NOTIFY, acpi_pad_notify, device);
+ if (ACPI_FAILURE(status)) {
+ acpi_pad_remove_sysfs(device);
+ return -ENODEV;
+ }
+
+ return 0;
+}
+
+static int acpi_pad_remove(struct acpi_device *device)
+{
+ mutex_lock(&isolated_cpus_lock);
+ acpi_pad_idle_cpus(0);
+ mutex_unlock(&isolated_cpus_lock);
+
+ acpi_remove_notify_handler(device->handle,
+ ACPI_DEVICE_NOTIFY, acpi_pad_notify);
+ acpi_pad_remove_sysfs(device);
+ return 0;
+}
+
+static const struct acpi_device_id pad_device_ids[] = {
+ {"ACPI000C", 0},
+ {"", 0},
+};
+MODULE_DEVICE_TABLE(acpi, pad_device_ids);
+
+static struct acpi_driver acpi_pad_driver = {
+ .name = "processor_aggregator",
+ .class = ACPI_PROCESSOR_AGGREGATOR_CLASS,
+ .ids = pad_device_ids,
+ .ops = {
+ .add = acpi_pad_add,
+ .remove = acpi_pad_remove,
+ },
+};
+
+static int __init acpi_pad_init(void)
+{
+ power_saving_mwait_init();
+ if (power_saving_mwait_eax == 0)
+ return -EINVAL;
+
+ return acpi_bus_register_driver(&acpi_pad_driver);
+}
+
+static void __exit acpi_pad_exit(void)
+{
+ acpi_bus_unregister_driver(&acpi_pad_driver);
+}
+
+module_init(acpi_pad_init);
+module_exit(acpi_pad_exit);
+MODULE_AUTHOR("Shaohua Li<shaohua.li@intel.com>");
+MODULE_DESCRIPTION("ACPI Processor Aggregator Driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/acpi/acpi_platform.c b/drivers/acpi/acpi_platform.c
new file mode 100644
index 00000000000..2bf9082f752
--- /dev/null
+++ b/drivers/acpi/acpi_platform.c
@@ -0,0 +1,115 @@
+/*
+ * ACPI support for platform bus type.
+ *
+ * Copyright (C) 2012, Intel Corporation
+ * Authors: Mika Westerberg <mika.westerberg@linux.intel.com>
+ * Mathias Nyman <mathias.nyman@linux.intel.com>
+ * Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/acpi.h>
+#include <linux/device.h>
+#include <linux/err.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+
+#include "internal.h"
+
+ACPI_MODULE_NAME("platform");
+
+static const struct acpi_device_id forbidden_id_list[] = {
+ {"PNP0000", 0}, /* PIC */
+ {"PNP0100", 0}, /* Timer */
+ {"PNP0200", 0}, /* AT DMA Controller */
+ {"", 0},
+};
+
+/**
+ * acpi_create_platform_device - Create platform device for ACPI device node
+ * @adev: ACPI device node to create a platform device for.
+ *
+ * Check if the given @adev can be represented as a platform device and, if
+ * that's the case, create and register a platform device, populate its common
+ * resources and returns a pointer to it. Otherwise, return %NULL.
+ *
+ * Name of the platform device will be the same as @adev's.
+ */
+struct platform_device *acpi_create_platform_device(struct acpi_device *adev)
+{
+ struct platform_device *pdev = NULL;
+ struct acpi_device *acpi_parent;
+ struct platform_device_info pdevinfo;
+ struct resource_list_entry *rentry;
+ struct list_head resource_list;
+ struct resource *resources = NULL;
+ int count;
+
+ /* If the ACPI node already has a physical device attached, skip it. */
+ if (adev->physical_node_count)
+ return NULL;
+
+ if (!acpi_match_device_ids(adev, forbidden_id_list))
+ return ERR_PTR(-EINVAL);
+
+ INIT_LIST_HEAD(&resource_list);
+ count = acpi_dev_get_resources(adev, &resource_list, NULL, NULL);
+ if (count < 0) {
+ return NULL;
+ } else if (count > 0) {
+ resources = kmalloc(count * sizeof(struct resource),
+ GFP_KERNEL);
+ if (!resources) {
+ dev_err(&adev->dev, "No memory for resources\n");
+ acpi_dev_free_resource_list(&resource_list);
+ return ERR_PTR(-ENOMEM);
+ }
+ count = 0;
+ list_for_each_entry(rentry, &resource_list, node)
+ resources[count++] = rentry->res;
+
+ acpi_dev_free_resource_list(&resource_list);
+ }
+
+ memset(&pdevinfo, 0, sizeof(pdevinfo));
+ /*
+ * If the ACPI node has a parent and that parent has a physical device
+ * attached to it, that physical device should be the parent of the
+ * platform device we are about to create.
+ */
+ pdevinfo.parent = NULL;
+ acpi_parent = adev->parent;
+ if (acpi_parent) {
+ struct acpi_device_physical_node *entry;
+ struct list_head *list;
+
+ mutex_lock(&acpi_parent->physical_node_lock);
+ list = &acpi_parent->physical_node_list;
+ if (!list_empty(list)) {
+ entry = list_first_entry(list,
+ struct acpi_device_physical_node,
+ node);
+ pdevinfo.parent = entry->dev;
+ }
+ mutex_unlock(&acpi_parent->physical_node_lock);
+ }
+ pdevinfo.name = dev_name(&adev->dev);
+ pdevinfo.id = -1;
+ pdevinfo.res = resources;
+ pdevinfo.num_res = count;
+ pdevinfo.acpi_node.companion = adev;
+ pdev = platform_device_register_full(&pdevinfo);
+ if (IS_ERR(pdev))
+ dev_err(&adev->dev, "platform device creation failed: %ld\n",
+ PTR_ERR(pdev));
+ else
+ dev_dbg(&adev->dev, "created platform device %s\n",
+ dev_name(&pdev->dev));
+
+ kfree(resources);
+ return pdev;
+}
diff --git a/drivers/acpi/acpi_pnp.c b/drivers/acpi/acpi_pnp.c
new file mode 100644
index 00000000000..4ddb0dca56f
--- /dev/null
+++ b/drivers/acpi/acpi_pnp.c
@@ -0,0 +1,397 @@
+/*
+ * ACPI support for PNP bus type
+ *
+ * Copyright (C) 2014, Intel Corporation
+ * Authors: Zhang Rui <rui.zhang@intel.com>
+ * Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/acpi.h>
+#include <linux/module.h>
+
+static const struct acpi_device_id acpi_pnp_device_ids[] = {
+ /* soc_button_array */
+ {"PNP0C40"},
+ /* pata_isapnp */
+ {"PNP0600"}, /* Generic ESDI/IDE/ATA compatible hard disk controller */
+ /* floppy */
+ {"PNP0700"},
+ /* ipmi_si */
+ {"IPI0001"},
+ /* tpm_inf_pnp */
+ {"IFX0101"}, /* Infineon TPMs */
+ {"IFX0102"}, /* Infineon TPMs */
+ /*tpm_tis */
+ {"PNP0C31"}, /* TPM */
+ {"ATM1200"}, /* Atmel */
+ {"IFX0102"}, /* Infineon */
+ {"BCM0101"}, /* Broadcom */
+ {"BCM0102"}, /* Broadcom */
+ {"NSC1200"}, /* National */
+ {"ICO0102"}, /* Intel */
+ /* ide */
+ {"PNP0600"}, /* Generic ESDI/IDE/ATA compatible hard disk controller */
+ /* ns558 */
+ {"ASB16fd"}, /* AdLib NSC16 */
+ {"AZT3001"}, /* AZT1008 */
+ {"CDC0001"}, /* Opl3-SAx */
+ {"CSC0001"}, /* CS4232 */
+ {"CSC000f"}, /* CS4236 */
+ {"CSC0101"}, /* CS4327 */
+ {"CTL7001"}, /* SB16 */
+ {"CTL7002"}, /* AWE64 */
+ {"CTL7005"}, /* Vibra16 */
+ {"ENS2020"}, /* SoundscapeVIVO */
+ {"ESS0001"}, /* ES1869 */
+ {"ESS0005"}, /* ES1878 */
+ {"ESS6880"}, /* ES688 */
+ {"IBM0012"}, /* CS4232 */
+ {"OPT0001"}, /* OPTi Audio16 */
+ {"YMH0006"}, /* Opl3-SA */
+ {"YMH0022"}, /* Opl3-SAx */
+ {"PNPb02f"}, /* Generic */
+ /* i8042 kbd */
+ {"PNP0300"},
+ {"PNP0301"},
+ {"PNP0302"},
+ {"PNP0303"},
+ {"PNP0304"},
+ {"PNP0305"},
+ {"PNP0306"},
+ {"PNP0309"},
+ {"PNP030a"},
+ {"PNP030b"},
+ {"PNP0320"},
+ {"PNP0343"},
+ {"PNP0344"},
+ {"PNP0345"},
+ {"CPQA0D7"},
+ /* i8042 aux */
+ {"AUI0200"},
+ {"FJC6000"},
+ {"FJC6001"},
+ {"PNP0f03"},
+ {"PNP0f0b"},
+ {"PNP0f0e"},
+ {"PNP0f12"},
+ {"PNP0f13"},
+ {"PNP0f19"},
+ {"PNP0f1c"},
+ {"SYN0801"},
+ /* fcpnp */
+ {"AVM0900"},
+ /* radio-cadet */
+ {"MSM0c24"}, /* ADS Cadet AM/FM Radio Card */
+ /* radio-gemtek */
+ {"ADS7183"}, /* AOpen FX-3D/Pro Radio */
+ /* radio-sf16fmr2 */
+ {"MFRad13"}, /* tuner subdevice of SF16-FMD2 */
+ /* ene_ir */
+ {"ENE0100"},
+ {"ENE0200"},
+ {"ENE0201"},
+ {"ENE0202"},
+ /* fintek-cir */
+ {"FIT0002"}, /* CIR */
+ /* ite-cir */
+ {"ITE8704"}, /* Default model */
+ {"ITE8713"}, /* CIR found in EEEBox 1501U */
+ {"ITE8708"}, /* Bridged IT8512 */
+ {"ITE8709"}, /* SRAM-Bridged IT8512 */
+ /* nuvoton-cir */
+ {"WEC0530"}, /* CIR */
+ {"NTN0530"}, /* CIR for new chip's pnp id */
+ /* Winbond CIR */
+ {"WEC1022"},
+ /* wbsd */
+ {"WEC0517"},
+ {"WEC0518"},
+ /* Winbond CIR */
+ {"TCM5090"}, /* 3Com Etherlink III (TP) */
+ {"TCM5091"}, /* 3Com Etherlink III */
+ {"TCM5094"}, /* 3Com Etherlink III (combo) */
+ {"TCM5095"}, /* 3Com Etherlink III (TPO) */
+ {"TCM5098"}, /* 3Com Etherlink III (TPC) */
+ {"PNP80f7"}, /* 3Com Etherlink III compatible */
+ {"PNP80f8"}, /* 3Com Etherlink III compatible */
+ /* nsc-ircc */
+ {"NSC6001"},
+ {"HWPC224"},
+ {"IBM0071"},
+ /* smsc-ircc2 */
+ {"SMCf010"},
+ /* sb1000 */
+ {"GIC1000"},
+ /* parport_pc */
+ {"PNP0400"}, /* Standard LPT Printer Port */
+ {"PNP0401"}, /* ECP Printer Port */
+ /* apple-gmux */
+ {"APP000B"},
+ /* fujitsu-laptop.c */
+ {"FUJ02bf"},
+ {"FUJ02B1"},
+ {"FUJ02E3"},
+ /* system */
+ {"PNP0c02"}, /* General ID for reserving resources */
+ {"PNP0c01"}, /* memory controller */
+ /* rtc_cmos */
+ {"PNP0b00"},
+ {"PNP0b01"},
+ {"PNP0b02"},
+ /* c6xdigio */
+ {"PNP0400"}, /* Standard LPT Printer Port */
+ {"PNP0401"}, /* ECP Printer Port */
+ /* ni_atmio.c */
+ {"NIC1900"},
+ {"NIC2400"},
+ {"NIC2500"},
+ {"NIC2600"},
+ {"NIC2700"},
+ /* serial */
+ {"AAC000F"}, /* Archtek America Corp. Archtek SmartLink Modem 3334BT Plug & Play */
+ {"ADC0001"}, /* Anchor Datacomm BV. SXPro 144 External Data Fax Modem Plug & Play */
+ {"ADC0002"}, /* SXPro 288 External Data Fax Modem Plug & Play */
+ {"AEI0250"}, /* PROLiNK 1456VH ISA PnP K56flex Fax Modem */
+ {"AEI1240"}, /* Actiontec ISA PNP 56K X2 Fax Modem */
+ {"AKY1021"}, /* Rockwell 56K ACF II Fax+Data+Voice Modem */
+ {"AZT4001"}, /* AZT3005 PnP SOUND DEVICE */
+ {"BDP3336"}, /* Best Data Products Inc. Smart One 336F PnP Modem */
+ {"BRI0A49"}, /* Boca Complete Ofc Communicator 14.4 Data-FAX */
+ {"BRI1400"}, /* Boca Research 33,600 ACF Modem */
+ {"BRI3400"}, /* Boca 33.6 Kbps Internal FD34FSVD */
+ {"BRI0A49"}, /* Boca 33.6 Kbps Internal FD34FSVD */
+ {"BDP3336"}, /* Best Data Products Inc. Smart One 336F PnP Modem */
+ {"CPI4050"}, /* Computer Peripherals Inc. EuroViVa CommCenter-33.6 SP PnP */
+ {"CTL3001"}, /* Creative Labs Phone Blaster 28.8 DSVD PnP Voice */
+ {"CTL3011"}, /* Creative Labs Modem Blaster 28.8 DSVD PnP Voice */
+ {"DAV0336"}, /* Davicom ISA 33.6K Modem */
+ {"DMB1032"}, /* Creative Modem Blaster Flash56 DI5601-1 */
+ {"DMB2001"}, /* Creative Modem Blaster V.90 DI5660 */
+ {"ETT0002"}, /* E-Tech CyberBULLET PC56RVP */
+ {"FUJ0202"}, /* Fujitsu 33600 PnP-I2 R Plug & Play */
+ {"FUJ0205"}, /* Fujitsu FMV-FX431 Plug & Play */
+ {"FUJ0206"}, /* Fujitsu 33600 PnP-I4 R Plug & Play */
+ {"FUJ0209"}, /* Fujitsu Fax Voice 33600 PNP-I5 R Plug & Play */
+ {"GVC000F"}, /* Archtek SmartLink Modem 3334BT Plug & Play */
+ {"GVC0303"}, /* Archtek SmartLink Modem 3334BRV 33.6K Data Fax Voice */
+ {"HAY0001"}, /* Hayes Optima 288 V.34-V.FC + FAX + Voice Plug & Play */
+ {"HAY000C"}, /* Hayes Optima 336 V.34 + FAX + Voice PnP */
+ {"HAY000D"}, /* Hayes Optima 336B V.34 + FAX + Voice PnP */
+ {"HAY5670"}, /* Hayes Accura 56K Ext Fax Modem PnP */
+ {"HAY5674"}, /* Hayes Accura 56K Ext Fax Modem PnP */
+ {"HAY5675"}, /* Hayes Accura 56K Fax Modem PnP */
+ {"HAYF000"}, /* Hayes 288, V.34 + FAX */
+ {"HAYF001"}, /* Hayes Optima 288 V.34 + FAX + Voice, Plug & Play */
+ {"IBM0033"}, /* IBM Thinkpad 701 Internal Modem Voice */
+ {"PNP4972"}, /* Intermec CV60 touchscreen port */
+ {"IXDC801"}, /* Intertex 28k8 33k6 Voice EXT PnP */
+ {"IXDC901"}, /* Intertex 33k6 56k Voice EXT PnP */
+ {"IXDD801"}, /* Intertex 28k8 33k6 Voice SP EXT PnP */
+ {"IXDD901"}, /* Intertex 33k6 56k Voice SP EXT PnP */
+ {"IXDF401"}, /* Intertex 28k8 33k6 Voice SP INT PnP */
+ {"IXDF801"}, /* Intertex 28k8 33k6 Voice SP EXT PnP */
+ {"IXDF901"}, /* Intertex 33k6 56k Voice SP EXT PnP */
+ {"KOR4522"}, /* KORTEX 28800 Externe PnP */
+ {"KORF661"}, /* KXPro 33.6 Vocal ASVD PnP */
+ {"LAS4040"}, /* LASAT Internet 33600 PnP */
+ {"LAS4540"}, /* Lasat Safire 560 PnP */
+ {"LAS5440"}, /* Lasat Safire 336 PnP */
+ {"MNP0281"}, /* Microcom TravelPorte FAST V.34 Plug & Play */
+ {"MNP0336"}, /* Microcom DeskPorte V.34 FAST or FAST+ Plug & Play */
+ {"MNP0339"}, /* Microcom DeskPorte FAST EP 28.8 Plug & Play */
+ {"MNP0342"}, /* Microcom DeskPorte 28.8P Plug & Play */
+ {"MNP0500"}, /* Microcom DeskPorte FAST ES 28.8 Plug & Play */
+ {"MNP0501"}, /* Microcom DeskPorte FAST ES 28.8 Plug & Play */
+ {"MNP0502"}, /* Microcom DeskPorte 28.8S Internal Plug & Play */
+ {"MOT1105"}, /* Motorola BitSURFR Plug & Play */
+ {"MOT1111"}, /* Motorola TA210 Plug & Play */
+ {"MOT1114"}, /* Motorola HMTA 200 (ISDN) Plug & Play */
+ {"MOT1115"}, /* Motorola BitSURFR Plug & Play */
+ {"MOT1190"}, /* Motorola Lifestyle 28.8 Internal */
+ {"MOT1501"}, /* Motorola V.3400 Plug & Play */
+ {"MOT1502"}, /* Motorola Lifestyle 28.8 V.34 Plug & Play */
+ {"MOT1505"}, /* Motorola Power 28.8 V.34 Plug & Play */
+ {"MOT1509"}, /* Motorola ModemSURFR External 28.8 Plug & Play */
+ {"MOT150A"}, /* Motorola Premier 33.6 Desktop Plug & Play */
+ {"MOT150F"}, /* Motorola VoiceSURFR 56K External PnP */
+ {"MOT1510"}, /* Motorola ModemSURFR 56K External PnP */
+ {"MOT1550"}, /* Motorola ModemSURFR 56K Internal PnP */
+ {"MOT1560"}, /* Motorola ModemSURFR Internal 28.8 Plug & Play */
+ {"MOT1580"}, /* Motorola Premier 33.6 Internal Plug & Play */
+ {"MOT15B0"}, /* Motorola OnlineSURFR 28.8 Internal Plug & Play */
+ {"MOT15F0"}, /* Motorola VoiceSURFR 56K Internal PnP */
+ {"MVX00A1"}, /* Deskline K56 Phone System PnP */
+ {"MVX00F2"}, /* PC Rider K56 Phone System PnP */
+ {"nEC8241"}, /* NEC 98NOTE SPEAKER PHONE FAX MODEM(33600bps) */
+ {"PMC2430"}, /* Pace 56 Voice Internal Plug & Play Modem */
+ {"PNP0500"}, /* Generic standard PC COM port */
+ {"PNP0501"}, /* Generic 16550A-compatible COM port */
+ {"PNPC000"}, /* Compaq 14400 Modem */
+ {"PNPC001"}, /* Compaq 2400/9600 Modem */
+ {"PNPC031"}, /* Dial-Up Networking Serial Cable between 2 PCs */
+ {"PNPC032"}, /* Dial-Up Networking Parallel Cable between 2 PCs */
+ {"PNPC100"}, /* Standard 9600 bps Modem */
+ {"PNPC101"}, /* Standard 14400 bps Modem */
+ {"PNPC102"}, /* Standard 28800 bps Modem */
+ {"PNPC103"}, /* Standard Modem */
+ {"PNPC104"}, /* Standard 9600 bps Modem */
+ {"PNPC105"}, /* Standard 14400 bps Modem */
+ {"PNPC106"}, /* Standard 28800 bps Modem */
+ {"PNPC107"}, /* Standard Modem */
+ {"PNPC108"}, /* Standard 9600 bps Modem */
+ {"PNPC109"}, /* Standard 14400 bps Modem */
+ {"PNPC10A"}, /* Standard 28800 bps Modem */
+ {"PNPC10B"}, /* Standard Modem */
+ {"PNPC10C"}, /* Standard 9600 bps Modem */
+ {"PNPC10D"}, /* Standard 14400 bps Modem */
+ {"PNPC10E"}, /* Standard 28800 bps Modem */
+ {"PNPC10F"}, /* Standard Modem */
+ {"PNP2000"}, /* Standard PCMCIA Card Modem */
+ {"ROK0030"}, /* Rockwell 33.6 DPF Internal PnP, Modular Technology 33.6 Internal PnP */
+ {"ROK0100"}, /* KORTEX 14400 Externe PnP */
+ {"ROK4120"}, /* Rockwell 28.8 */
+ {"ROK4920"}, /* Viking 28.8 INTERNAL Fax+Data+Voice PnP */
+ {"RSS00A0"}, /* Rockwell 33.6 DPF External PnP, BT Prologue 33.6 External PnP, Modular Technology 33.6 External PnP */
+ {"RSS0262"}, /* Viking 56K FAX INT */
+ {"RSS0250"}, /* K56 par,VV,Voice,Speakphone,AudioSpan,PnP */
+ {"SUP1310"}, /* SupraExpress 28.8 Data/Fax PnP modem */
+ {"SUP1381"}, /* SupraExpress 336i PnP Voice Modem */
+ {"SUP1421"}, /* SupraExpress 33.6 Data/Fax PnP modem */
+ {"SUP1590"}, /* SupraExpress 33.6 Data/Fax PnP modem */
+ {"SUP1620"}, /* SupraExpress 336i Sp ASVD */
+ {"SUP1760"}, /* SupraExpress 33.6 Data/Fax PnP modem */
+ {"SUP2171"}, /* SupraExpress 56i Sp Intl */
+ {"TEX0011"}, /* Phoebe Micro 33.6 Data Fax 1433VQH Plug & Play */
+ {"UAC000F"}, /* Archtek SmartLink Modem 3334BT Plug & Play */
+ {"USR0000"}, /* 3Com Corp. Gateway Telepath IIvi 33.6 */
+ {"USR0002"}, /* U.S. Robotics Sporster 33.6K Fax INT PnP */
+ {"USR0004"}, /* Sportster Vi 14.4 PnP FAX Voicemail */
+ {"USR0006"}, /* U.S. Robotics 33.6K Voice INT PnP */
+ {"USR0007"}, /* U.S. Robotics 33.6K Voice EXT PnP */
+ {"USR0009"}, /* U.S. Robotics Courier V.Everything INT PnP */
+ {"USR2002"}, /* U.S. Robotics 33.6K Voice INT PnP */
+ {"USR2070"}, /* U.S. Robotics 56K Voice INT PnP */
+ {"USR2080"}, /* U.S. Robotics 56K Voice EXT PnP */
+ {"USR3031"}, /* U.S. Robotics 56K FAX INT */
+ {"USR3050"}, /* U.S. Robotics 56K FAX INT */
+ {"USR3070"}, /* U.S. Robotics 56K Voice INT PnP */
+ {"USR3080"}, /* U.S. Robotics 56K Voice EXT PnP */
+ {"USR3090"}, /* U.S. Robotics 56K Voice INT PnP */
+ {"USR9100"}, /* U.S. Robotics 56K Message */
+ {"USR9160"}, /* U.S. Robotics 56K FAX EXT PnP */
+ {"USR9170"}, /* U.S. Robotics 56K FAX INT PnP */
+ {"USR9180"}, /* U.S. Robotics 56K Voice EXT PnP */
+ {"USR9190"}, /* U.S. Robotics 56K Voice INT PnP */
+ {"WACFXXX"}, /* Wacom tablets */
+ {"FPI2002"}, /* Compaq touchscreen */
+ {"FUJ02B2"}, /* Fujitsu Stylistic touchscreens */
+ {"FUJ02B3"},
+ {"FUJ02B4"}, /* Fujitsu Stylistic LT touchscreens */
+ {"FUJ02B6"}, /* Passive Fujitsu Stylistic touchscreens */
+ {"FUJ02B7"},
+ {"FUJ02B8"},
+ {"FUJ02B9"},
+ {"FUJ02BC"},
+ {"FUJ02E5"}, /* Fujitsu Wacom Tablet PC device */
+ {"FUJ02E6"}, /* Fujitsu P-series tablet PC device */
+ {"FUJ02E7"}, /* Fujitsu Wacom 2FGT Tablet PC device */
+ {"FUJ02E9"}, /* Fujitsu Wacom 1FGT Tablet PC device */
+ {"LTS0001"}, /* LG C1 EXPRESS DUAL (C1-PB11A3) touch screen (actually a FUJ02E6 in disguise) */
+ {"WCI0003"}, /* Rockwell's (PORALiNK) 33600 INT PNP */
+ {"WEC1022"}, /* Winbond CIR port, should not be probed. We should keep track of it to prevent the legacy serial driver from probing it */
+ /* scl200wdt */
+ {"NSC0800"}, /* National Semiconductor PC87307/PC97307 watchdog component */
+ /* mpu401 */
+ {"PNPb006"},
+ /* cs423x-pnpbios */
+ {"CSC0100"},
+ {"CSC0000"},
+ {"GIM0100"}, /* Guillemot Turtlebeach something appears to be cs4232 compatible */
+ /* es18xx-pnpbios */
+ {"ESS1869"},
+ {"ESS1879"},
+ /* snd-opl3sa2-pnpbios */
+ {"YMH0021"},
+ {"NMX2210"}, /* Gateway Solo 2500 */
+ {""},
+};
+
+static bool is_hex_digit(char c)
+{
+ return (c >= 0 && c <= '9') || (c >= 'A' && c <= 'F');
+}
+
+static bool matching_id(char *idstr, char *list_id)
+{
+ int i;
+
+ if (memcmp(idstr, list_id, 3))
+ return false;
+
+ for (i = 3; i < 7; i++) {
+ char c = toupper(idstr[i]);
+
+ if (!is_hex_digit(c)
+ || (list_id[i] != 'X' && c != toupper(list_id[i])))
+ return false;
+ }
+ return true;
+}
+
+static bool acpi_pnp_match(char *idstr, const struct acpi_device_id **matchid)
+{
+ const struct acpi_device_id *devid;
+
+ for (devid = acpi_pnp_device_ids; devid->id[0]; devid++)
+ if (matching_id(idstr, (char *)devid->id)) {
+ if (matchid)
+ *matchid = devid;
+
+ return true;
+ }
+
+ return false;
+}
+
+static int acpi_pnp_attach(struct acpi_device *adev,
+ const struct acpi_device_id *id)
+{
+ return 1;
+}
+
+static struct acpi_scan_handler acpi_pnp_handler = {
+ .ids = acpi_pnp_device_ids,
+ .match = acpi_pnp_match,
+ .attach = acpi_pnp_attach,
+};
+
+/*
+ * For CMOS RTC devices, the PNP ACPI scan handler does not work, because
+ * there is a CMOS RTC ACPI scan handler installed already, so we need to
+ * check those devices and enumerate them to the PNP bus directly.
+ */
+static int is_cmos_rtc_device(struct acpi_device *adev)
+{
+ struct acpi_device_id ids[] = {
+ { "PNP0B00" },
+ { "PNP0B01" },
+ { "PNP0B02" },
+ {""},
+ };
+ return !acpi_match_device_ids(adev, ids);
+}
+
+bool acpi_is_pnp_device(struct acpi_device *adev)
+{
+ return adev->handler == &acpi_pnp_handler || is_cmos_rtc_device(adev);
+}
+EXPORT_SYMBOL_GPL(acpi_is_pnp_device);
+
+void __init acpi_pnp_init(void)
+{
+ acpi_scan_add_handler(&acpi_pnp_handler);
+}
diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processor.c
new file mode 100644
index 00000000000..1c085742644
--- /dev/null
+++ b/drivers/acpi/acpi_processor.c
@@ -0,0 +1,500 @@
+/*
+ * acpi_processor.c - ACPI processor enumeration support
+ *
+ * Copyright (C) 2001, 2002 Andy Grover <andrew.grover@intel.com>
+ * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
+ * Copyright (C) 2004 Dominik Brodowski <linux@brodo.de>
+ * Copyright (C) 2004 Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
+ * Copyright (C) 2013, Intel Corporation
+ * Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation.
+ */
+
+#include <linux/acpi.h>
+#include <linux/device.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/pci.h>
+
+#include <acpi/processor.h>
+
+#include <asm/cpu.h>
+
+#include "internal.h"
+
+#define _COMPONENT ACPI_PROCESSOR_COMPONENT
+
+ACPI_MODULE_NAME("processor");
+
+DEFINE_PER_CPU(struct acpi_processor *, processors);
+EXPORT_PER_CPU_SYMBOL(processors);
+
+/* --------------------------------------------------------------------------
+ Errata Handling
+ -------------------------------------------------------------------------- */
+
+struct acpi_processor_errata errata __read_mostly;
+EXPORT_SYMBOL_GPL(errata);
+
+static int acpi_processor_errata_piix4(struct pci_dev *dev)
+{
+ u8 value1 = 0;
+ u8 value2 = 0;
+
+
+ if (!dev)
+ return -EINVAL;
+
+ /*
+ * Note that 'dev' references the PIIX4 ACPI Controller.
+ */
+
+ switch (dev->revision) {
+ case 0:
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Found PIIX4 A-step\n"));
+ break;
+ case 1:
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Found PIIX4 B-step\n"));
+ break;
+ case 2:
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Found PIIX4E\n"));
+ break;
+ case 3:
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Found PIIX4M\n"));
+ break;
+ default:
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Found unknown PIIX4\n"));
+ break;
+ }
+
+ switch (dev->revision) {
+
+ case 0: /* PIIX4 A-step */
+ case 1: /* PIIX4 B-step */
+ /*
+ * See specification changes #13 ("Manual Throttle Duty Cycle")
+ * and #14 ("Enabling and Disabling Manual Throttle"), plus
+ * erratum #5 ("STPCLK# Deassertion Time") from the January
+ * 2002 PIIX4 specification update. Applies to only older
+ * PIIX4 models.
+ */
+ errata.piix4.throttle = 1;
+
+ case 2: /* PIIX4E */
+ case 3: /* PIIX4M */
+ /*
+ * See erratum #18 ("C3 Power State/BMIDE and Type-F DMA
+ * Livelock") from the January 2002 PIIX4 specification update.
+ * Applies to all PIIX4 models.
+ */
+
+ /*
+ * BM-IDE
+ * ------
+ * Find the PIIX4 IDE Controller and get the Bus Master IDE
+ * Status register address. We'll use this later to read
+ * each IDE controller's DMA status to make sure we catch all
+ * DMA activity.
+ */
+ dev = pci_get_subsys(PCI_VENDOR_ID_INTEL,
+ PCI_DEVICE_ID_INTEL_82371AB,
+ PCI_ANY_ID, PCI_ANY_ID, NULL);
+ if (dev) {
+ errata.piix4.bmisx = pci_resource_start(dev, 4);
+ pci_dev_put(dev);
+ }
+
+ /*
+ * Type-F DMA
+ * ----------
+ * Find the PIIX4 ISA Controller and read the Motherboard
+ * DMA controller's status to see if Type-F (Fast) DMA mode
+ * is enabled (bit 7) on either channel. Note that we'll
+ * disable C3 support if this is enabled, as some legacy
+ * devices won't operate well if fast DMA is disabled.
+ */
+ dev = pci_get_subsys(PCI_VENDOR_ID_INTEL,
+ PCI_DEVICE_ID_INTEL_82371AB_0,
+ PCI_ANY_ID, PCI_ANY_ID, NULL);
+ if (dev) {
+ pci_read_config_byte(dev, 0x76, &value1);
+ pci_read_config_byte(dev, 0x77, &value2);
+ if ((value1 & 0x80) || (value2 & 0x80))
+ errata.piix4.fdma = 1;
+ pci_dev_put(dev);
+ }
+
+ break;
+ }
+
+ if (errata.piix4.bmisx)
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "Bus master activity detection (BM-IDE) erratum enabled\n"));
+ if (errata.piix4.fdma)
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "Type-F DMA livelock erratum (C3 disabled)\n"));
+
+ return 0;
+}
+
+static int acpi_processor_errata(void)
+{
+ int result = 0;
+ struct pci_dev *dev = NULL;
+
+ /*
+ * PIIX4
+ */
+ dev = pci_get_subsys(PCI_VENDOR_ID_INTEL,
+ PCI_DEVICE_ID_INTEL_82371AB_3, PCI_ANY_ID,
+ PCI_ANY_ID, NULL);
+ if (dev) {
+ result = acpi_processor_errata_piix4(dev);
+ pci_dev_put(dev);
+ }
+
+ return result;
+}
+
+/* --------------------------------------------------------------------------
+ Initialization
+ -------------------------------------------------------------------------- */
+
+#ifdef CONFIG_ACPI_HOTPLUG_CPU
+static int acpi_processor_hotadd_init(struct acpi_processor *pr)
+{
+ unsigned long long sta;
+ acpi_status status;
+ int ret;
+
+ if (pr->apic_id == -1)
+ return -ENODEV;
+
+ status = acpi_evaluate_integer(pr->handle, "_STA", NULL, &sta);
+ if (ACPI_FAILURE(status) || !(sta & ACPI_STA_DEVICE_PRESENT))
+ return -ENODEV;
+
+ cpu_maps_update_begin();
+ cpu_hotplug_begin();
+
+ ret = acpi_map_lsapic(pr->handle, pr->apic_id, &pr->id);
+ if (ret)
+ goto out;
+
+ ret = arch_register_cpu(pr->id);
+ if (ret) {
+ acpi_unmap_lsapic(pr->id);
+ goto out;
+ }
+
+ /*
+ * CPU got hot-added, but cpu_data is not initialized yet. Set a flag
+ * to delay cpu_idle/throttling initialization and do it when the CPU
+ * gets online for the first time.
+ */
+ pr_info("CPU%d has been hot-added\n", pr->id);
+ pr->flags.need_hotplug_init = 1;
+
+out:
+ cpu_hotplug_done();
+ cpu_maps_update_done();
+ return ret;
+}
+#else
+static inline int acpi_processor_hotadd_init(struct acpi_processor *pr)
+{
+ return -ENODEV;
+}
+#endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+static int acpi_processor_get_info(struct acpi_device *device)
+{
+ union acpi_object object = { 0 };
+ struct acpi_buffer buffer = { sizeof(union acpi_object), &object };
+ struct acpi_processor *pr = acpi_driver_data(device);
+ int apic_id, cpu_index, device_declaration = 0;
+ acpi_status status = AE_OK;
+ static int cpu0_initialized;
+ unsigned long long value;
+
+ acpi_processor_errata();
+
+ /*
+ * Check to see if we have bus mastering arbitration control. This
+ * is required for proper C3 usage (to maintain cache coherency).
+ */
+ if (acpi_gbl_FADT.pm2_control_block && acpi_gbl_FADT.pm2_control_length) {
+ pr->flags.bm_control = 1;
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "Bus mastering arbitration control present\n"));
+ } else
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "No bus mastering arbitration control\n"));
+
+ if (!strcmp(acpi_device_hid(device), ACPI_PROCESSOR_OBJECT_HID)) {
+ /* Declared with "Processor" statement; match ProcessorID */
+ status = acpi_evaluate_object(pr->handle, NULL, NULL, &buffer);
+ if (ACPI_FAILURE(status)) {
+ dev_err(&device->dev,
+ "Failed to evaluate processor object (0x%x)\n",
+ status);
+ return -ENODEV;
+ }
+
+ pr->acpi_id = object.processor.proc_id;
+ } else {
+ /*
+ * Declared with "Device" statement; match _UID.
+ * Note that we don't handle string _UIDs yet.
+ */
+ status = acpi_evaluate_integer(pr->handle, METHOD_NAME__UID,
+ NULL, &value);
+ if (ACPI_FAILURE(status)) {
+ dev_err(&device->dev,
+ "Failed to evaluate processor _UID (0x%x)\n",
+ status);
+ return -ENODEV;
+ }
+ device_declaration = 1;
+ pr->acpi_id = value;
+ }
+
+ apic_id = acpi_get_apicid(pr->handle, device_declaration, pr->acpi_id);
+ if (apic_id < 0)
+ acpi_handle_debug(pr->handle, "failed to get CPU APIC ID.\n");
+ pr->apic_id = apic_id;
+
+ cpu_index = acpi_map_cpuid(pr->apic_id, pr->acpi_id);
+ if (!cpu0_initialized && !acpi_lapic) {
+ cpu0_initialized = 1;
+ /* Handle UP system running SMP kernel, with no LAPIC in MADT */
+ if ((cpu_index == -1) && (num_online_cpus() == 1))
+ cpu_index = 0;
+ }
+ pr->id = cpu_index;
+
+ /*
+ * Extra Processor objects may be enumerated on MP systems with
+ * less than the max # of CPUs. They should be ignored _iff
+ * they are physically not present.
+ */
+ if (pr->id == -1) {
+ int ret = acpi_processor_hotadd_init(pr);
+ if (ret)
+ return ret;
+ }
+
+ /*
+ * On some boxes several processors use the same processor bus id.
+ * But they are located in different scope. For example:
+ * \_SB.SCK0.CPU0
+ * \_SB.SCK1.CPU0
+ * Rename the processor device bus id. And the new bus id will be
+ * generated as the following format:
+ * CPU+CPU ID.
+ */
+ sprintf(acpi_device_bid(device), "CPU%X", pr->id);
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Processor [%d:%d]\n", pr->id,
+ pr->acpi_id));
+
+ if (!object.processor.pblk_address)
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No PBLK (NULL address)\n"));
+ else if (object.processor.pblk_length != 6)
+ dev_err(&device->dev, "Invalid PBLK length [%d]\n",
+ object.processor.pblk_length);
+ else {
+ pr->throttling.address = object.processor.pblk_address;
+ pr->throttling.duty_offset = acpi_gbl_FADT.duty_offset;
+ pr->throttling.duty_width = acpi_gbl_FADT.duty_width;
+
+ pr->pblk = object.processor.pblk_address;
+
+ /*
+ * We don't care about error returns - we just try to mark
+ * these reserved so that nobody else is confused into thinking
+ * that this region might be unused..
+ *
+ * (In particular, allocating the IO range for Cardbus)
+ */
+ request_region(pr->throttling.address, 6, "ACPI CPU throttle");
+ }
+
+ /*
+ * If ACPI describes a slot number for this CPU, we can use it to
+ * ensure we get the right value in the "physical id" field
+ * of /proc/cpuinfo
+ */
+ status = acpi_evaluate_integer(pr->handle, "_SUN", NULL, &value);
+ if (ACPI_SUCCESS(status))
+ arch_fix_phys_package_id(pr->id, value);
+
+ return 0;
+}
+
+/*
+ * Do not put anything in here which needs the core to be online.
+ * For example MSR access or setting up things which check for cpuinfo_x86
+ * (cpu_data(cpu)) values, like CPU feature flags, family, model, etc.
+ * Such things have to be put in and set up by the processor driver's .probe().
+ */
+static DEFINE_PER_CPU(void *, processor_device_array);
+
+static int acpi_processor_add(struct acpi_device *device,
+ const struct acpi_device_id *id)
+{
+ struct acpi_processor *pr;
+ struct device *dev;
+ int result = 0;
+
+ pr = kzalloc(sizeof(struct acpi_processor), GFP_KERNEL);
+ if (!pr)
+ return -ENOMEM;
+
+ if (!zalloc_cpumask_var(&pr->throttling.shared_cpu_map, GFP_KERNEL)) {
+ result = -ENOMEM;
+ goto err_free_pr;
+ }
+
+ pr->handle = device->handle;
+ strcpy(acpi_device_name(device), ACPI_PROCESSOR_DEVICE_NAME);
+ strcpy(acpi_device_class(device), ACPI_PROCESSOR_CLASS);
+ device->driver_data = pr;
+
+ result = acpi_processor_get_info(device);
+ if (result) /* Processor is not physically present or unavailable */
+ return 0;
+
+#ifdef CONFIG_SMP
+ if (pr->id >= setup_max_cpus && pr->id != 0)
+ return 0;
+#endif
+
+ BUG_ON(pr->id >= nr_cpu_ids);
+
+ /*
+ * Buggy BIOS check.
+ * ACPI id of processors can be reported wrongly by the BIOS.
+ * Don't trust it blindly
+ */
+ if (per_cpu(processor_device_array, pr->id) != NULL &&
+ per_cpu(processor_device_array, pr->id) != device) {
+ dev_warn(&device->dev,
+ "BIOS reported wrong ACPI id %d for the processor\n",
+ pr->id);
+ /* Give up, but do not abort the namespace scan. */
+ goto err;
+ }
+ /*
+ * processor_device_array is not cleared on errors to allow buggy BIOS
+ * checks.
+ */
+ per_cpu(processor_device_array, pr->id) = device;
+ per_cpu(processors, pr->id) = pr;
+
+ dev = get_cpu_device(pr->id);
+ if (!dev) {
+ result = -ENODEV;
+ goto err;
+ }
+
+ result = acpi_bind_one(dev, device);
+ if (result)
+ goto err;
+
+ pr->dev = dev;
+
+ /* Trigger the processor driver's .probe() if present. */
+ if (device_attach(dev) >= 0)
+ return 1;
+
+ dev_err(dev, "Processor driver could not be attached\n");
+ acpi_unbind_one(dev);
+
+ err:
+ free_cpumask_var(pr->throttling.shared_cpu_map);
+ device->driver_data = NULL;
+ per_cpu(processors, pr->id) = NULL;
+ err_free_pr:
+ kfree(pr);
+ return result;
+}
+
+#ifdef CONFIG_ACPI_HOTPLUG_CPU
+/* --------------------------------------------------------------------------
+ Removal
+ -------------------------------------------------------------------------- */
+
+static void acpi_processor_remove(struct acpi_device *device)
+{
+ struct acpi_processor *pr;
+
+ if (!device || !acpi_driver_data(device))
+ return;
+
+ pr = acpi_driver_data(device);
+ if (pr->id >= nr_cpu_ids)
+ goto out;
+
+ /*
+ * The only reason why we ever get here is CPU hot-removal. The CPU is
+ * already offline and the ACPI device removal locking prevents it from
+ * being put back online at this point.
+ *
+ * Unbind the driver from the processor device and detach it from the
+ * ACPI companion object.
+ */
+ device_release_driver(pr->dev);
+ acpi_unbind_one(pr->dev);
+
+ /* Clean up. */
+ per_cpu(processor_device_array, pr->id) = NULL;
+ per_cpu(processors, pr->id) = NULL;
+
+ cpu_maps_update_begin();
+ cpu_hotplug_begin();
+
+ /* Remove the CPU. */
+ arch_unregister_cpu(pr->id);
+ acpi_unmap_lsapic(pr->id);
+
+ cpu_hotplug_done();
+ cpu_maps_update_done();
+
+ try_offline_node(cpu_to_node(pr->id));
+
+ out:
+ free_cpumask_var(pr->throttling.shared_cpu_map);
+ kfree(pr);
+}
+#endif /* CONFIG_ACPI_HOTPLUG_CPU */
+
+/*
+ * The following ACPI IDs are known to be suitable for representing as
+ * processor devices.
+ */
+static const struct acpi_device_id processor_device_ids[] = {
+
+ { ACPI_PROCESSOR_OBJECT_HID, },
+ { ACPI_PROCESSOR_DEVICE_HID, },
+
+ { }
+};
+
+static struct acpi_scan_handler __refdata processor_handler = {
+ .ids = processor_device_ids,
+ .attach = acpi_processor_add,
+#ifdef CONFIG_ACPI_HOTPLUG_CPU
+ .detach = acpi_processor_remove,
+#endif
+ .hotplug = {
+ .enabled = true,
+ },
+};
+
+void __init acpi_processor_init(void)
+{
+ acpi_scan_add_handler_with_hotplug(&processor_handler, "processor");
+}
diff --git a/drivers/acpi/acpica/Makefile b/drivers/acpi/acpica/Makefile
index 3f23298ee3f..8bb43f06e11 100644
--- a/drivers/acpi/acpica/Makefile
+++ b/drivers/acpi/acpica/Makefile
@@ -5,40 +5,175 @@
ccflags-y := -Os
ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
-obj-y := dsfield.o dsmthdat.o dsopcode.o dswexec.o dswscope.o \
- dsmethod.o dsobject.o dsutils.o dswload.o dswstate.o \
- dsinit.o
+# use acpi.o to put all files here into acpi.o modparam namespace
+obj-y += acpi.o
-obj-y += evevent.o evregion.o evsci.o evxfevnt.o \
- evmisc.o evrgnini.o evxface.o evxfregn.o \
- evgpe.o evgpeblk.o
+acpi-y := \
+ dsargs.o \
+ dscontrol.o \
+ dsfield.o \
+ dsinit.o \
+ dsmethod.o \
+ dsmthdat.o \
+ dsobject.o \
+ dsopcode.o \
+ dsutils.o \
+ dswexec.o \
+ dswload.o \
+ dswload2.o \
+ dswscope.o \
+ dswstate.o
-obj-y += exconfig.o exfield.o exnames.o exoparg6.o exresolv.o exstorob.o\
- exconvrt.o exfldio.o exoparg1.o exprep.o exresop.o exsystem.o\
- excreate.o exmisc.o exoparg2.o exregion.o exstore.o exutils.o \
- exdump.o exmutex.o exoparg3.o exresnte.o exstoren.o
+acpi-y += \
+ evevent.o \
+ evgpe.o \
+ evgpeblk.o \
+ evgpeinit.o \
+ evgpeutil.o \
+ evglock.o \
+ evhandler.o \
+ evmisc.o \
+ evregion.o \
+ evrgnini.o \
+ evsci.o \
+ evxface.o \
+ evxfevnt.o \
+ evxfgpe.o \
+ evxfregn.o
-obj-y += hwacpi.o hwgpe.o hwregs.o hwsleep.o hwxface.o
+acpi-y += \
+ exconfig.o \
+ exconvrt.o \
+ excreate.o \
+ exdebug.o \
+ exdump.o \
+ exfield.o \
+ exfldio.o \
+ exmutex.o \
+ exnames.o \
+ exoparg1.o \
+ exoparg2.o \
+ exoparg3.o \
+ exoparg6.o \
+ exprep.o \
+ exmisc.o \
+ exregion.o \
+ exresnte.o \
+ exresolv.o \
+ exresop.o \
+ exstore.o \
+ exstoren.o \
+ exstorob.o \
+ exsystem.o \
+ exutils.o
-obj-$(ACPI_FUTURE_USAGE) += hwtimer.o
+acpi-y += \
+ hwacpi.o \
+ hwesleep.o \
+ hwgpe.o \
+ hwpci.o \
+ hwregs.o \
+ hwsleep.o \
+ hwvalid.o \
+ hwxface.o \
+ hwxfsleep.o
-obj-y += nsaccess.o nsload.o nssearch.o nsxfeval.o \
- nsalloc.o nseval.o nsnames.o nsutils.o nsxfname.o \
- nsdump.o nsinit.o nsobject.o nswalk.o nsxfobj.o \
- nsparse.o nspredef.o
+acpi-$(ACPI_FUTURE_USAGE) += hwtimer.o
-obj-$(ACPI_FUTURE_USAGE) += nsdumpdv.o
+acpi-y += \
+ nsaccess.o \
+ nsalloc.o \
+ nsarguments.o \
+ nsconvert.o \
+ nsdump.o \
+ nseval.o \
+ nsinit.o \
+ nsload.o \
+ nsnames.o \
+ nsobject.o \
+ nsparse.o \
+ nspredef.o \
+ nsprepkg.o \
+ nsrepair.o \
+ nsrepair2.o \
+ nssearch.o \
+ nsutils.o \
+ nswalk.o \
+ nsxfeval.o \
+ nsxfname.o \
+ nsxfobj.o
-obj-y += psargs.o psparse.o psloop.o pstree.o pswalk.o \
- psopcode.o psscope.o psutils.o psxface.o
+acpi-$(ACPI_FUTURE_USAGE) += nsdumpdv.o
-obj-y += rsaddr.o rscreate.o rsinfo.o rsio.o rslist.o rsmisc.o rsxface.o \
- rscalc.o rsirq.o rsmemory.o rsutils.o
+acpi-y += \
+ psargs.o \
+ psloop.o \
+ psobject.o \
+ psopcode.o \
+ psopinfo.o \
+ psparse.o \
+ psscope.o \
+ pstree.o \
+ psutils.o \
+ pswalk.o \
+ psxface.o
-obj-$(ACPI_FUTURE_USAGE) += rsdump.o
+acpi-y += \
+ rsaddr.o \
+ rscalc.o \
+ rscreate.o \
+ rsdump.o \
+ rsdumpinfo.o \
+ rsinfo.o \
+ rsio.o \
+ rsirq.o \
+ rslist.o \
+ rsmemory.o \
+ rsmisc.o \
+ rsserial.o \
+ rsutils.o \
+ rsxface.o
-obj-y += tbxface.o tbinstal.o tbutils.o tbfind.o tbfadt.o tbxfroot.o
+acpi-y += \
+ tbdata.o \
+ tbfadt.o \
+ tbfind.o \
+ tbinstal.o \
+ tbprint.o \
+ tbutils.o \
+ tbxface.o \
+ tbxfload.o \
+ tbxfroot.o
+
+acpi-y += \
+ utaddress.o \
+ utalloc.o \
+ utbuffer.o \
+ utcopy.o \
+ utexcep.o \
+ utdebug.o \
+ utdecode.o \
+ utdelete.o \
+ uterror.o \
+ uteval.o \
+ utglobal.o \
+ utids.o \
+ utinit.o \
+ utlock.o \
+ utmath.o \
+ utmisc.o \
+ utmutex.o \
+ utobject.o \
+ utosi.o \
+ utownerid.o \
+ utpredef.o \
+ utresrc.o \
+ utstate.o \
+ utstring.o \
+ utxface.o \
+ utxfinit.o \
+ utxferror.o \
+ utxfmutex.o
+
+acpi-$(ACPI_FUTURE_USAGE) += uttrack.o utcache.o
-obj-y += utalloc.o utdebug.o uteval.o utinit.o utmisc.o utxface.o \
- utcopy.o utdelete.o utglobal.o utmath.o utobject.o \
- utstate.o utmutex.o utobject.o utresrc.o
diff --git a/drivers/acpi/acpica/acapps.h b/drivers/acpi/acpica/acapps.h
new file mode 100644
index 00000000000..8698ffba6f3
--- /dev/null
+++ b/drivers/acpi/acpica/acapps.h
@@ -0,0 +1,170 @@
+/******************************************************************************
+ *
+ * Module Name: acapps - common include for ACPI applications/tools
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#ifndef _ACAPPS
+#define _ACAPPS
+
+/* Common info for tool signons */
+
+#define ACPICA_NAME "Intel ACPI Component Architecture"
+#define ACPICA_COPYRIGHT "Copyright (c) 2000 - 2014 Intel Corporation"
+
+#if ACPI_MACHINE_WIDTH == 64
+#define ACPI_WIDTH "-64"
+
+#elif ACPI_MACHINE_WIDTH == 32
+#define ACPI_WIDTH "-32"
+
+#else
+#error unknown ACPI_MACHINE_WIDTH
+#define ACPI_WIDTH "-??"
+
+#endif
+
+/* Macros for signons and file headers */
+
+#define ACPI_COMMON_SIGNON(utility_name) \
+ "\n%s\n%s version %8.8X%s [%s]\n%s\n\n", \
+ ACPICA_NAME, \
+ utility_name, ((u32) ACPI_CA_VERSION), ACPI_WIDTH, __DATE__, \
+ ACPICA_COPYRIGHT
+
+#define ACPI_COMMON_HEADER(utility_name, prefix) \
+ "%s%s\n%s%s version %8.8X%s [%s]\n%s%s\n%s\n", \
+ prefix, ACPICA_NAME, \
+ prefix, utility_name, ((u32) ACPI_CA_VERSION), ACPI_WIDTH, __DATE__, \
+ prefix, ACPICA_COPYRIGHT, \
+ prefix
+
+/* Macros for usage messages */
+
+#define ACPI_USAGE_HEADER(usage) \
+ printf ("Usage: %s\nOptions:\n", usage);
+
+#define ACPI_OPTION(name, description) \
+ printf (" %-18s%s\n", name, description);
+
+#define FILE_SUFFIX_DISASSEMBLY "dsl"
+#define ACPI_TABLE_FILE_SUFFIX ".dat"
+
+/*
+ * getopt
+ */
+int acpi_getopt(int argc, char **argv, char *opts);
+
+int acpi_getopt_argument(int argc, char **argv);
+
+extern int acpi_gbl_optind;
+extern int acpi_gbl_opterr;
+extern int acpi_gbl_sub_opt_char;
+extern char *acpi_gbl_optarg;
+
+/*
+ * cmfsize - Common get file size function
+ */
+u32 cm_get_file_size(FILE * file);
+
+#ifndef ACPI_DUMP_APP
+/*
+ * adisasm
+ */
+acpi_status
+ad_aml_disassemble(u8 out_to_file,
+ char *filename, char *prefix, char **out_filename);
+
+void ad_print_statistics(void);
+
+acpi_status ad_find_dsdt(u8 **dsdt_ptr, u32 *dsdt_length);
+
+void ad_dump_tables(void);
+
+acpi_status ad_get_local_tables(void);
+
+acpi_status
+ad_parse_table(struct acpi_table_header *table,
+ acpi_owner_id * owner_id, u8 load_table, u8 external);
+
+acpi_status ad_display_tables(char *filename, struct acpi_table_header *table);
+
+acpi_status ad_display_statistics(void);
+
+/*
+ * adwalk
+ */
+void
+acpi_dm_cross_reference_namespace(union acpi_parse_object *parse_tree_root,
+ struct acpi_namespace_node *namespace_root,
+ acpi_owner_id owner_id);
+
+void acpi_dm_dump_tree(union acpi_parse_object *origin);
+
+void acpi_dm_find_orphan_methods(union acpi_parse_object *origin);
+
+void
+acpi_dm_finish_namespace_load(union acpi_parse_object *parse_tree_root,
+ struct acpi_namespace_node *namespace_root,
+ acpi_owner_id owner_id);
+
+void
+acpi_dm_convert_resource_indexes(union acpi_parse_object *parse_tree_root,
+ struct acpi_namespace_node *namespace_root);
+
+/*
+ * adfile
+ */
+acpi_status ad_initialize(void);
+
+char *fl_generate_filename(char *input_filename, char *suffix);
+
+acpi_status
+fl_split_input_pathname(char *input_path,
+ char **out_directory_path, char **out_filename);
+
+char *ad_generate_filename(char *prefix, char *table_id);
+
+void
+ad_write_table(struct acpi_table_header *table,
+ u32 length, char *table_name, char *oem_table_id);
+#endif
+
+#endif /* _ACAPPS */
diff --git a/drivers/acpi/acpica/accommon.h b/drivers/acpi/acpica/accommon.h
index 3b20786cbb0..6f1c616910a 100644
--- a/drivers/acpi/acpica/accommon.h
+++ b/drivers/acpi/acpica/accommon.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -51,7 +51,7 @@
*
* Note: The order of these include files is important.
*/
-#include "acconfig.h" /* Global configuration constants */
+#include <acpi/acconfig.h> /* Global configuration constants */
#include "acmacros.h" /* C macros */
#include "aclocal.h" /* Internal data types */
#include "acobject.h" /* ACPI internal object */
diff --git a/drivers/acpi/acpica/acconfig.h b/drivers/acpi/acpica/acconfig.h
deleted file mode 100644
index e6777fb883d..00000000000
--- a/drivers/acpi/acpica/acconfig.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/******************************************************************************
- *
- * Name: acconfig.h - Global configuration constants
- *
- *****************************************************************************/
-
-/*
- * Copyright (C) 2000 - 2008, Intel Corp.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions, and the following disclaimer,
- * without modification.
- * 2. Redistributions in binary form must reproduce at minimum a disclaimer
- * substantially similar to the "NO WARRANTY" disclaimer below
- * ("Disclaimer") and any redistribution must be conditioned upon
- * including a substantially similar Disclaimer requirement for further
- * binary redistribution.
- * 3. Neither the names of the above-listed copyright holders nor the names
- * of any contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * Alternatively, this software may be distributed under the terms of the
- * GNU General Public License ("GPL") version 2 as published by the Free
- * Software Foundation.
- *
- * NO WARRANTY
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGES.
- */
-
-#ifndef _ACCONFIG_H
-#define _ACCONFIG_H
-
-/******************************************************************************
- *
- * Configuration options
- *
- *****************************************************************************/
-
-/*
- * ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the
- * ACPI subsystem. This includes the DEBUG_PRINT output
- * statements. When disabled, all DEBUG_PRINT
- * statements are compiled out.
- *
- * ACPI_APPLICATION - Use this switch if the subsystem is going to be run
- * at the application level.
- *
- */
-
-/*
- * OS name, used for the _OS object. The _OS object is essentially obsolete,
- * but there is a large base of ASL/AML code in existing machines that check
- * for the string below. The use of this string usually guarantees that
- * the ASL will execute down the most tested code path. Also, there is some
- * code that will not execute the _OSI method unless _OS matches the string
- * below. Therefore, change this string at your own risk.
- */
-#define ACPI_OS_NAME "Microsoft Windows NT"
-
-/* Maximum objects in the various object caches */
-
-#define ACPI_MAX_STATE_CACHE_DEPTH 96 /* State objects */
-#define ACPI_MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */
-#define ACPI_MAX_EXTPARSE_CACHE_DEPTH 96 /* Parse tree objects */
-#define ACPI_MAX_OBJECT_CACHE_DEPTH 96 /* Interpreter operand objects */
-#define ACPI_MAX_NAMESPACE_CACHE_DEPTH 96 /* Namespace objects */
-
-/*
- * Should the subsystem abort the loading of an ACPI table if the
- * table checksum is incorrect?
- */
-#define ACPI_CHECKSUM_ABORT FALSE
-
-/******************************************************************************
- *
- * Subsystem Constants
- *
- *****************************************************************************/
-
-/* Version of ACPI supported */
-
-#define ACPI_CA_SUPPORT_LEVEL 3
-
-/* Maximum count for a semaphore object */
-
-#define ACPI_MAX_SEMAPHORE_COUNT 256
-
-/* Maximum object reference count (detects object deletion issues) */
-
-#define ACPI_MAX_REFERENCE_COUNT 0x1000
-
-/* Size of cached memory mapping for system memory operation region */
-
-#define ACPI_SYSMEM_REGION_WINDOW_SIZE 4096
-
-/* owner_id tracking. 8 entries allows for 255 owner_ids */
-
-#define ACPI_NUM_OWNERID_MASKS 8
-
-/* Size of the root table array is increased by this increment */
-
-#define ACPI_ROOT_TABLE_SIZE_INCREMENT 4
-
-/* Maximum number of While() loop iterations before forced abort */
-
-#define ACPI_MAX_LOOP_ITERATIONS 0xFFFF
-
-/******************************************************************************
- *
- * ACPI Specification constants (Do not change unless the specification changes)
- *
- *****************************************************************************/
-
-/* Number of distinct GPE register blocks and register width */
-
-#define ACPI_MAX_GPE_BLOCKS 2
-#define ACPI_GPE_REGISTER_WIDTH 8
-
-/* Method info (in WALK_STATE), containing local variables and argumetns */
-
-#define ACPI_METHOD_NUM_LOCALS 8
-#define ACPI_METHOD_MAX_LOCAL 7
-
-#define ACPI_METHOD_NUM_ARGS 7
-#define ACPI_METHOD_MAX_ARG 6
-
-/* Length of _HID, _UID, _CID, and UUID values */
-
-#define ACPI_DEVICE_ID_LENGTH 0x09
-#define ACPI_MAX_CID_LENGTH 48
-#define ACPI_UUID_LENGTH 16
-
-/*
- * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
- */
-#define ACPI_OBJ_NUM_OPERANDS 8
-#define ACPI_OBJ_MAX_OPERAND 7
-
-/* Number of elements in the Result Stack frame, can be an arbitrary value */
-
-#define ACPI_RESULTS_FRAME_OBJ_NUM 8
-
-/*
- * Maximal number of elements the Result Stack can contain,
- * it may be an arbitray value not exceeding the types of
- * result_size and result_count (now u8).
- */
-#define ACPI_RESULTS_OBJ_NUM_MAX 255
-
-/* Names within the namespace are 4 bytes long */
-
-#define ACPI_NAME_SIZE 4
-#define ACPI_PATH_SEGMENT_LENGTH 5 /* 4 chars for name + 1 char for separator */
-#define ACPI_PATH_SEPARATOR '.'
-
-/* Sizes for ACPI table headers */
-
-#define ACPI_OEM_ID_SIZE 6
-#define ACPI_OEM_TABLE_ID_SIZE 8
-
-/* Constants used in searching for the RSDP in low memory */
-
-#define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */
-#define ACPI_EBDA_PTR_LENGTH 2
-#define ACPI_EBDA_WINDOW_SIZE 1024
-#define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */
-#define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000
-#define ACPI_RSDP_SCAN_STEP 16
-
-/* Operation regions */
-
-#define ACPI_NUM_PREDEFINED_REGIONS 8
-#define ACPI_USER_REGION_BEGIN 0x80
-
-/* Maximum space_ids for Operation Regions */
-
-#define ACPI_MAX_ADDRESS_SPACE 255
-
-/* Array sizes. Used for range checking also */
-
-#define ACPI_MAX_MATCH_OPCODE 5
-
-/* RSDP checksums */
-
-#define ACPI_RSDP_CHECKSUM_LENGTH 20
-#define ACPI_RSDP_XCHECKSUM_LENGTH 36
-
-/* SMBus bidirectional buffer size */
-
-#define ACPI_SMBUS_BUFFER_SIZE 34
-
-/******************************************************************************
- *
- * ACPI AML Debugger
- *
- *****************************************************************************/
-
-#define ACPI_DEBUGGER_MAX_ARGS 8 /* Must be max method args + 1 */
-
-#define ACPI_DEBUGGER_COMMAND_PROMPT '-'
-#define ACPI_DEBUGGER_EXECUTE_PROMPT '%'
-
-#endif /* _ACCONFIG_H */
diff --git a/drivers/acpi/acpica/acdebug.h b/drivers/acpi/acpica/acdebug.h
index 62c59df3b86..68a91eb0fa4 100644
--- a/drivers/acpi/acpica/acdebug.h
+++ b/drivers/acpi/acpica/acdebug.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -44,17 +44,28 @@
#ifndef __ACDEBUG_H__
#define __ACDEBUG_H__
-#define ACPI_DEBUG_BUFFER_SIZE 4196
+#define ACPI_DEBUG_BUFFER_SIZE 0x4000 /* 16K buffer for return objects */
-struct command_info {
+struct acpi_db_command_info {
char *name; /* Command Name */
u8 min_args; /* Minimum arguments required */
};
-struct argument_info {
+struct acpi_db_command_help {
+ u8 line_count; /* Number of help lines */
+ char *invocation; /* Command Invocation */
+ char *description; /* Command Description */
+};
+
+struct acpi_db_argument_info {
char *name; /* Argument Name */
};
+struct acpi_db_execute_walk {
+ u32 count;
+ u32 max_count;
+};
+
#define PARAM_LIST(pl) pl
#define DBTEST_OUTPUT_LEVEL(lvl) if (acpi_gbl_db_opt_verbose)
#define VERBOSE_PRINT(fp) DBTEST_OUTPUT_LEVEL(lvl) {\
@@ -77,12 +88,53 @@ acpi_db_single_step(struct acpi_walk_state *walk_state,
/*
* dbcmds - debug commands and output routines
*/
-acpi_status acpi_db_disassemble_method(char *name);
+struct acpi_namespace_node *acpi_db_convert_to_node(char *in_string);
void acpi_db_display_table_info(char *table_arg);
-void acpi_db_unload_acpi_table(char *table_arg, char *instance_arg);
+void acpi_db_display_template(char *buffer_arg);
+
+void acpi_db_unload_acpi_table(char *name);
+
+void acpi_db_send_notify(char *name, u32 value);
+
+void acpi_db_display_interfaces(char *action_arg, char *interface_name_arg);
+
+acpi_status acpi_db_sleep(char *object_arg);
+
+void acpi_db_display_locks(void);
+
+void acpi_db_display_resources(char *object_arg);
+
+ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_db_display_gpes(void))
+
+void acpi_db_display_handlers(void);
+ACPI_HW_DEPENDENT_RETURN_VOID(void
+ acpi_db_generate_gpe(char *gpe_arg,
+ char *block_arg))
+ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_db_generate_sci(void))
+
+void acpi_db_execute_test(char *type_arg);
+
+/*
+ * dbconvert - miscellaneous conversion routines
+ */
+acpi_status acpi_db_hex_char_to_value(int hex_char, u8 *return_value);
+
+acpi_status acpi_db_convert_to_package(char *string, union acpi_object *object);
+
+acpi_status
+acpi_db_convert_to_object(acpi_object_type type,
+ char *string, union acpi_object *object);
+
+u8 *acpi_db_encode_pld_buffer(struct acpi_pld_info *pld_info);
+
+void acpi_db_dump_pld_buffer(union acpi_object *obj_desc);
+
+/*
+ * dbmethod - control method commands
+ */
void
acpi_db_set_method_breakpoint(char *location,
struct acpi_walk_state *walk_state,
@@ -90,42 +142,37 @@ acpi_db_set_method_breakpoint(char *location,
void acpi_db_set_method_call_breakpoint(union acpi_parse_object *op);
-void acpi_db_get_bus_info(void);
+void acpi_db_set_method_data(char *type_arg, char *index_arg, char *value_arg);
+
+acpi_status acpi_db_disassemble_method(char *name);
void acpi_db_disassemble_aml(char *statements, union acpi_parse_object *op);
-void acpi_db_dump_namespace(char *start_arg, char *depth_arg);
+void acpi_db_batch_execute(char *count_arg);
-void acpi_db_dump_namespace_by_owner(char *owner_arg, char *depth_arg);
+/*
+ * dbnames - namespace commands
+ */
+void acpi_db_set_scope(char *name);
-void acpi_db_send_notify(char *name, u32 value);
+void acpi_db_dump_namespace(char *start_arg, char *depth_arg);
-void acpi_db_set_method_data(char *type_arg, char *index_arg, char *value_arg);
+void acpi_db_dump_namespace_paths(void);
-acpi_status
-acpi_db_display_objects(char *obj_type_arg, char *display_count_arg);
+void acpi_db_dump_namespace_by_owner(char *owner_arg, char *depth_arg);
acpi_status acpi_db_find_name_in_namespace(char *name_arg);
-void acpi_db_set_scope(char *name);
-
-acpi_status acpi_db_sleep(char *object_arg);
-
-void acpi_db_find_references(char *object_arg);
-
-void acpi_db_display_locks(void);
-
-void acpi_db_display_resources(char *object_arg);
+void acpi_db_check_predefined_names(void);
-void acpi_db_display_gpes(void);
+acpi_status
+acpi_db_display_objects(char *obj_type_arg, char *display_count_arg);
void acpi_db_check_integrity(void);
-void acpi_db_generate_gpe(char *gpe_arg, char *block_arg);
-
-void acpi_db_check_predefined_names(void);
+void acpi_db_find_references(char *object_arg);
-void acpi_db_batch_execute(void);
+void acpi_db_get_bus_info(void);
/*
* dbdisply - debug display commands
@@ -154,19 +201,18 @@ void
acpi_db_display_argument_object(union acpi_operand_object *obj_desc,
struct acpi_walk_state *walk_state);
-void acpi_db_check_predefined_names(void);
-
-void acpi_db_batch_execute(void);
-
/*
* dbexec - debugger control method execution
*/
-void acpi_db_execute(char *name, char **args, u32 flags);
+void
+acpi_db_execute(char *name, char **args, acpi_object_type * types, u32 flags);
void
acpi_db_create_execution_threads(char *num_threads_arg,
char *num_loops_arg, char *method_name_arg);
+void acpi_db_delete_objects(u32 count, union acpi_object *objects);
+
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
u32 acpi_db_get_cache_info(struct acpi_memory_list *cache);
#endif
@@ -175,7 +221,8 @@ u32 acpi_db_get_cache_info(struct acpi_memory_list *cache);
* dbfileio - Debugger file I/O commands
*/
acpi_object_type
-acpi_db_match_argument(char *user_argument, struct argument_info *arguments);
+acpi_db_match_argument(char *user_argument,
+ struct acpi_db_argument_info *arguments);
void acpi_db_close_debug_file(void);
@@ -198,6 +245,8 @@ void acpi_db_display_history(void);
char *acpi_db_get_from_history(char *command_num_arg);
+char *acpi_db_get_history_by_index(u32 commandd_num);
+
/*
* dbinput - user front-end to the AML debugger
*/
@@ -208,6 +257,11 @@ acpi_db_command_dispatch(char *input_buffer,
void ACPI_SYSTEM_XFACE acpi_db_execute_thread(void *context);
+acpi_status acpi_db_user_commands(char prompt, union acpi_parse_object *op);
+
+char *acpi_db_get_next_token(char *string,
+ char **next, acpi_object_type * return_type);
+
/*
* dbstats - Generation and display of ACPI table statistics
*/
diff --git a/drivers/acpi/acpica/acdispat.h b/drivers/acpi/acpica/acdispat.h
index 6291904be01..d3e2cc395d7 100644
--- a/drivers/acpi/acpica/acdispat.h
+++ b/drivers/acpi/acpica/acdispat.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -48,7 +48,7 @@
#define NAMEOF_ARG_NTE "__A0"
/*
- * dsopcode - support for late evaluation
+ * dsargs - execution of dynamic arguments for static objects
*/
acpi_status
acpi_ds_get_buffer_field_arguments(union acpi_operand_object *obj_desc);
@@ -62,6 +62,20 @@ acpi_status acpi_ds_get_buffer_arguments(union acpi_operand_object *obj_desc);
acpi_status acpi_ds_get_package_arguments(union acpi_operand_object *obj_desc);
+/*
+ * dscontrol - support for execution control opcodes
+ */
+acpi_status
+acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,
+ union acpi_parse_object *op);
+
+acpi_status
+acpi_ds_exec_end_control_op(struct acpi_walk_state *walk_state,
+ union acpi_parse_object *op);
+
+/*
+ * dsopcode - support for late operand evaluation
+ */
acpi_status
acpi_ds_eval_buffer_field_operands(struct acpi_walk_state *walk_state,
union acpi_parse_object *op);
@@ -86,17 +100,6 @@ acpi_ds_eval_bank_field_operands(struct acpi_walk_state *walk_state,
acpi_status acpi_ds_initialize_region(acpi_handle obj_handle);
/*
- * dsctrl - Parser/Interpreter interface, control stack routines
- */
-acpi_status
-acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,
- union acpi_parse_object *op);
-
-acpi_status
-acpi_ds_exec_end_control_op(struct acpi_walk_state *walk_state,
- union acpi_parse_object *op);
-
-/*
* dsexec - Parser/Interpreter interface, method execution callbacks
*/
acpi_status
@@ -136,23 +139,27 @@ acpi_ds_init_field_objects(union acpi_parse_object *op,
struct acpi_walk_state *walk_state);
/*
- * dsload - Parser/Interpreter interface, namespace load callbacks
+ * dsload - Parser/Interpreter interface
*/
acpi_status
+acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number);
+
+/* dsload - pass 1 namespace load callbacks */
+
+acpi_status
acpi_ds_load1_begin_op(struct acpi_walk_state *walk_state,
union acpi_parse_object **out_op);
acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state);
+/* dsload - pass 2 namespace load callbacks */
+
acpi_status
acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state,
union acpi_parse_object **out_op);
acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state);
-acpi_status
-acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number);
-
/*
* dsmthdat - method data (locals/args)
*/
@@ -194,7 +201,9 @@ void acpi_ds_method_data_init(struct acpi_walk_state *walk_state);
/*
* dsmethod - Parser/Interpreter interface - control method parsing
*/
-acpi_status acpi_ds_parse_method(struct acpi_namespace_node *node);
+acpi_status
+acpi_ds_auto_serialize_method(struct acpi_namespace_node *node,
+ union acpi_operand_object *obj_desc);
acpi_status
acpi_ds_call_control_method(struct acpi_thread_state *thread,
@@ -303,10 +312,13 @@ acpi_ds_obj_stack_push(void *object, struct acpi_walk_state *walk_state);
acpi_status
acpi_ds_obj_stack_pop(u32 pop_count, struct acpi_walk_state *walk_state);
-struct acpi_walk_state *acpi_ds_create_walk_state(acpi_owner_id owner_id, union acpi_parse_object
- *origin, union acpi_operand_object
- *mth_desc, struct acpi_thread_state
- *thread);
+struct acpi_walk_state * acpi_ds_create_walk_state(acpi_owner_id owner_id,
+ union acpi_parse_object
+ *origin,
+ union acpi_operand_object
+ *mth_desc,
+ struct acpi_thread_state
+ *thread);
acpi_status
acpi_ds_init_aml_walk(struct acpi_walk_state *walk_state,
diff --git a/drivers/acpi/acpica/acevents.h b/drivers/acpi/acpica/acevents.h
index 07e20135f01..7a7811a9fc2 100644
--- a/drivers/acpi/acpica/acevents.h
+++ b/drivers/acpi/acpica/acevents.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -51,8 +51,6 @@ acpi_status acpi_ev_initialize_events(void);
acpi_status acpi_ev_install_xrupt_handlers(void);
-acpi_status acpi_ev_install_fadt_gpes(void);
-
u32 acpi_ev_fixed_event_detect(void);
/*
@@ -60,12 +58,6 @@ u32 acpi_ev_fixed_event_detect(void);
*/
u8 acpi_ev_is_notify_object(struct acpi_namespace_node *node);
-acpi_status acpi_ev_acquire_global_lock(u16 timeout);
-
-acpi_status acpi_ev_release_global_lock(void);
-
-acpi_status acpi_ev_init_global_lock_handler(void);
-
u32 acpi_ev_get_gpe_number_index(u32 gpe_number);
acpi_status
@@ -73,74 +65,126 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node *node,
u32 notify_value);
/*
- * evgpe - GPE handling and dispatch
+ * evglock - Global Lock support
*/
+acpi_status acpi_ev_init_global_lock_handler(void);
+
+ACPI_HW_DEPENDENT_RETURN_OK(acpi_status
+ acpi_ev_acquire_global_lock(u16 timeout))
+ACPI_HW_DEPENDENT_RETURN_OK(acpi_status acpi_ev_release_global_lock(void))
+acpi_status acpi_ev_remove_global_lock_handler(void);
+
+/*
+ * evgpe - Low-level GPE support
+ */
+u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info *gpe_xrupt_list);
+
acpi_status
-acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info,
- u8 type);
+acpi_ev_update_gpe_enable_mask(struct acpi_gpe_event_info *gpe_event_info);
+
+acpi_status acpi_ev_enable_gpe(struct acpi_gpe_event_info *gpe_event_info);
acpi_status
-acpi_ev_enable_gpe(struct acpi_gpe_event_info *gpe_event_info,
- u8 write_to_hardware);
+acpi_ev_add_gpe_reference(struct acpi_gpe_event_info *gpe_event_info);
-acpi_status acpi_ev_disable_gpe(struct acpi_gpe_event_info *gpe_event_info);
+acpi_status
+acpi_ev_remove_gpe_reference(struct acpi_gpe_event_info *gpe_event_info);
struct acpi_gpe_event_info *acpi_ev_get_gpe_event_info(acpi_handle gpe_device,
u32 gpe_number);
-/*
- * evgpeblk
- */
-u8 acpi_ev_valid_gpe_event(struct acpi_gpe_event_info *gpe_event_info);
+struct acpi_gpe_event_info *acpi_ev_low_get_gpe_info(u32 gpe_number,
+ struct acpi_gpe_block_info
+ *gpe_block);
-acpi_status
-acpi_ev_walk_gpe_list(acpi_gpe_callback gpe_walk_callback, void *context);
-
-acpi_status
-acpi_ev_delete_gpe_handlers(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
- struct acpi_gpe_block_info *gpe_block,
- void *context);
+acpi_status acpi_ev_finish_gpe(struct acpi_gpe_event_info *gpe_event_info);
+/*
+ * evgpeblk - Upper-level GPE block support
+ */
acpi_status
acpi_ev_create_gpe_block(struct acpi_namespace_node *gpe_device,
- struct acpi_generic_address *gpe_block_address,
+ u64 address,
+ u8 space_id,
u32 register_count,
- u8 gpe_block_base_number,
+ u16 gpe_block_base_number,
u32 interrupt_number,
struct acpi_gpe_block_info **return_gpe_block);
acpi_status
-acpi_ev_initialize_gpe_block(struct acpi_namespace_node *gpe_device,
- struct acpi_gpe_block_info *gpe_block);
+acpi_ev_initialize_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
+ struct acpi_gpe_block_info *gpe_block,
+ void *context);
-acpi_status acpi_ev_delete_gpe_block(struct acpi_gpe_block_info *gpe_block);
+ACPI_HW_DEPENDENT_RETURN_OK(acpi_status
+ acpi_ev_delete_gpe_block(struct acpi_gpe_block_info
+ *gpe_block))
u32
-acpi_ev_gpe_dispatch(struct acpi_gpe_event_info *gpe_event_info,
+acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,
+ struct acpi_gpe_event_info *gpe_event_info,
u32 gpe_number);
-u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info *gpe_xrupt_list);
+/*
+ * evgpeinit - GPE initialization and update
+ */
+acpi_status acpi_ev_gpe_initialize(void);
+
+ACPI_HW_DEPENDENT_RETURN_VOID(void
+ acpi_ev_update_gpes(acpi_owner_id table_owner_id))
acpi_status
-acpi_ev_set_gpe_type(struct acpi_gpe_event_info *gpe_event_info, u8 type);
+acpi_ev_match_gpe_method(acpi_handle obj_handle,
+ u32 level, void *context, void **return_value);
+/*
+ * evgpeutil - GPE utilities
+ */
acpi_status
-acpi_ev_check_for_wake_only_gpe(struct acpi_gpe_event_info *gpe_event_info);
+acpi_ev_walk_gpe_list(acpi_gpe_callback gpe_walk_callback, void *context);
-acpi_status acpi_ev_gpe_initialize(void);
+u8 acpi_ev_valid_gpe_event(struct acpi_gpe_event_info *gpe_event_info);
+
+acpi_status
+acpi_ev_get_gpe_device(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
+ struct acpi_gpe_block_info *gpe_block, void *context);
+
+acpi_status
+acpi_ev_get_gpe_xrupt_block(u32 interrupt_number,
+ struct acpi_gpe_xrupt_info **gpe_xrupt_block);
+
+acpi_status acpi_ev_delete_gpe_xrupt(struct acpi_gpe_xrupt_info *gpe_xrupt);
+
+acpi_status
+acpi_ev_delete_gpe_handlers(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
+ struct acpi_gpe_block_info *gpe_block,
+ void *context);
/*
- * evregion - Address Space handling
+ * evhandler - Address space handling
*/
+u8
+acpi_ev_has_default_handler(struct acpi_namespace_node *node,
+ acpi_adr_space_type space_id);
+
acpi_status acpi_ev_install_region_handlers(void);
+acpi_status
+acpi_ev_install_space_handler(struct acpi_namespace_node *node,
+ acpi_adr_space_type space_id,
+ acpi_adr_space_handler handler,
+ acpi_adr_space_setup setup, void *context);
+
+/*
+ * evregion - Operation region support
+ */
acpi_status acpi_ev_initialize_op_regions(void);
acpi_status
acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
+ union acpi_operand_object *field_obj,
u32 function,
- acpi_physical_address address,
- u32 bit_width, acpi_integer * value);
+ u32 region_offset, u32 bit_width, u64 *value);
acpi_status
acpi_ev_attach_region(union acpi_operand_object *handler_obj,
@@ -152,12 +196,6 @@ acpi_ev_detach_region(union acpi_operand_object *region_obj,
u8 acpi_ns_is_locked);
acpi_status
-acpi_ev_install_space_handler(struct acpi_namespace_node *node,
- acpi_adr_space_type space_id,
- acpi_adr_space_handler handler,
- acpi_adr_space_setup setup, void *context);
-
-acpi_status
acpi_ev_execute_reg_methods(struct acpi_namespace_node *node,
acpi_adr_space_type space_id);
@@ -207,12 +245,11 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,
*/
u32 ACPI_SYSTEM_XFACE acpi_ev_gpe_xrupt_handler(void *context);
-u32 acpi_ev_install_sci_handler(void);
-
-acpi_status acpi_ev_remove_sci_handler(void);
+u32 acpi_ev_sci_dispatch(void);
-u32 acpi_ev_initialize_sCI(u32 program_sCI);
+u32 acpi_ev_install_sci_handler(void);
-void acpi_ev_terminate(void);
+acpi_status acpi_ev_remove_all_sci_handlers(void);
+ACPI_HW_DEPENDENT_RETURN_VOID(void acpi_ev_terminate(void))
#endif /* __ACEVENTS_H__ */
diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h
index ddb40f5c68f..115eedcade1 100644
--- a/drivers/acpi/acpica/acglobal.h
+++ b/drivers/acpi/acpica/acglobal.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -44,127 +44,46 @@
#ifndef __ACGLOBAL_H__
#define __ACGLOBAL_H__
-/*
- * Ensure that the globals are actually defined and initialized only once.
- *
- * The use of these macros allows a single list of globals (here) in order
- * to simplify maintenance of the code.
- */
-#ifdef DEFINE_ACPI_GLOBALS
-#define ACPI_EXTERN
-#define ACPI_INIT_GLOBAL(a,b) a=b
-#else
-#define ACPI_EXTERN extern
-#define ACPI_INIT_GLOBAL(a,b) a
-#endif
-
/*****************************************************************************
*
- * Runtime configuration (static defaults that can be overriden at runtime)
+ * Globals related to the ACPI tables
*
****************************************************************************/
-/*
- * Enable "slack" in the AML interpreter? Default is FALSE, and the
- * interpreter strictly follows the ACPI specification. Setting to TRUE
- * allows the interpreter to ignore certain errors and/or bad AML constructs.
- *
- * Currently, these features are enabled by this flag:
- *
- * 1) Allow "implicit return" of last value in a control method
- * 2) Allow access beyond the end of an operation region
- * 3) Allow access to uninitialized locals/args (auto-init to integer 0)
- * 4) Allow ANY object type to be a source operand for the Store() operator
- * 5) Allow unresolved references (invalid target name) in package objects
- * 6) Enable warning messages for behavior that is not ACPI spec compliant
- */
-ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_enable_interpreter_slack, FALSE);
+/* Master list of all ACPI tables that were found in the RSDT/XSDT */
-/*
- * Automatically serialize ALL control methods? Default is FALSE, meaning
- * to use the Serialized/not_serialized method flags on a per method basis.
- * Only change this if the ASL code is poorly written and cannot handle
- * reentrancy even though methods are marked "NotSerialized".
- */
-ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_all_methods_serialized, FALSE);
+ACPI_GLOBAL(struct acpi_table_list, acpi_gbl_root_table_list);
-/*
- * Create the predefined _OSI method in the namespace? Default is TRUE
- * because ACPI CA is fully compatible with other ACPI implementations.
- * Changing this will revert ACPI CA (and machine ASL) to pre-OSI behavior.
- */
-ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_create_osi_method, TRUE);
+/* DSDT information. Used to check for DSDT corruption */
-/*
- * Disable wakeup GPEs during runtime? Default is TRUE because WAKE and
- * RUNTIME GPEs should never be shared, and WAKE GPEs should typically only
- * be enabled just before going to sleep.
- */
-ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_leave_wake_gpes_disabled, TRUE);
+ACPI_GLOBAL(struct acpi_table_header *, acpi_gbl_DSDT);
+ACPI_GLOBAL(struct acpi_table_header, acpi_gbl_original_dsdt_header);
-/*
- * Optionally use default values for the ACPI register widths. Set this to
- * TRUE to use the defaults, if an FADT contains incorrect widths/lengths.
- */
-ACPI_EXTERN u8 ACPI_INIT_GLOBAL(acpi_gbl_use_default_register_widths, TRUE);
+#if (!ACPI_REDUCED_HARDWARE)
+ACPI_GLOBAL(struct acpi_table_facs *, acpi_gbl_FACS);
-/*****************************************************************************
- *
- * Debug support
- *
- ****************************************************************************/
+#endif /* !ACPI_REDUCED_HARDWARE */
-/* Runtime configuration of debug print levels */
+/* These addresses are calculated from the FADT Event Block addresses */
-extern u32 acpi_dbg_level;
-extern u32 acpi_dbg_layer;
+ACPI_GLOBAL(struct acpi_generic_address, acpi_gbl_xpm1a_status);
+ACPI_GLOBAL(struct acpi_generic_address, acpi_gbl_xpm1a_enable);
-/* Procedure nesting level for debug output */
-
-extern u32 acpi_gbl_nesting_level;
-
-/* Support for dynamic control method tracing mechanism */
-
-ACPI_EXTERN u32 acpi_gbl_original_dbg_level;
-ACPI_EXTERN u32 acpi_gbl_original_dbg_layer;
-ACPI_EXTERN acpi_name acpi_gbl_trace_method_name;
-ACPI_EXTERN u32 acpi_gbl_trace_dbg_level;
-ACPI_EXTERN u32 acpi_gbl_trace_dbg_layer;
-ACPI_EXTERN u32 acpi_gbl_trace_flags;
-
-/*****************************************************************************
- *
- * ACPI Table globals
- *
- ****************************************************************************/
-
-/*
- * acpi_gbl_root_table_list is the master list of ACPI tables found in the
- * RSDT/XSDT.
- *
- * acpi_gbl_FADT is a local copy of the FADT, converted to a common format.
- */
-ACPI_EXTERN struct acpi_internal_rsdt acpi_gbl_root_table_list;
-ACPI_EXTERN struct acpi_table_fadt acpi_gbl_FADT;
-ACPI_EXTERN struct acpi_table_facs *acpi_gbl_FACS;
-
-/* These addresses are calculated from FADT address values */
-
-ACPI_EXTERN struct acpi_generic_address acpi_gbl_xpm1a_enable;
-ACPI_EXTERN struct acpi_generic_address acpi_gbl_xpm1b_enable;
+ACPI_GLOBAL(struct acpi_generic_address, acpi_gbl_xpm1b_status);
+ACPI_GLOBAL(struct acpi_generic_address, acpi_gbl_xpm1b_enable);
/*
- * Handle both ACPI 1.0 and ACPI 2.0 Integer widths. The integer width is
+ * Handle both ACPI 1.0 and ACPI 2.0+ Integer widths. The integer width is
* determined by the revision of the DSDT: If the DSDT revision is less than
* 2, use only the lower 32 bits of the internal 64-bit Integer.
*/
-ACPI_EXTERN u8 acpi_gbl_integer_bit_width;
-ACPI_EXTERN u8 acpi_gbl_integer_byte_width;
-ACPI_EXTERN u8 acpi_gbl_integer_nybble_width;
+ACPI_GLOBAL(u8, acpi_gbl_integer_bit_width);
+ACPI_GLOBAL(u8, acpi_gbl_integer_byte_width);
+ACPI_GLOBAL(u8, acpi_gbl_integer_nybble_width);
/*****************************************************************************
*
- * Mutual exlusion within ACPICA subsystem
+ * Mutual exclusion within ACPICA subsystem
*
****************************************************************************/
@@ -173,26 +92,36 @@ ACPI_EXTERN u8 acpi_gbl_integer_nybble_width;
* actual OS mutex handles, indexed by the local ACPI_MUTEX_HANDLEs.
* (The table maps local handles to the real OS handles)
*/
-ACPI_EXTERN struct acpi_mutex_info acpi_gbl_mutex_info[ACPI_NUM_MUTEX];
+ACPI_GLOBAL(struct acpi_mutex_info, acpi_gbl_mutex_info[ACPI_NUM_MUTEX]);
/*
* Global lock mutex is an actual AML mutex object
- * Global lock semaphore works in conjunction with the HW global lock
+ * Global lock semaphore works in conjunction with the actual global lock
+ * Global lock spinlock is used for "pending" handshake
*/
-ACPI_EXTERN union acpi_operand_object *acpi_gbl_global_lock_mutex;
-ACPI_EXTERN acpi_semaphore acpi_gbl_global_lock_semaphore;
-ACPI_EXTERN u16 acpi_gbl_global_lock_handle;
-ACPI_EXTERN u8 acpi_gbl_global_lock_acquired;
-ACPI_EXTERN u8 acpi_gbl_global_lock_present;
+ACPI_GLOBAL(union acpi_operand_object *, acpi_gbl_global_lock_mutex);
+ACPI_GLOBAL(acpi_semaphore, acpi_gbl_global_lock_semaphore);
+ACPI_GLOBAL(acpi_spinlock, acpi_gbl_global_lock_pending_lock);
+ACPI_GLOBAL(u16, acpi_gbl_global_lock_handle);
+ACPI_GLOBAL(u8, acpi_gbl_global_lock_acquired);
+ACPI_GLOBAL(u8, acpi_gbl_global_lock_present);
+ACPI_GLOBAL(u8, acpi_gbl_global_lock_pending);
/*
* Spinlocks are used for interfaces that can be possibly called at
* interrupt level
*/
-ACPI_EXTERN spinlock_t _acpi_gbl_gpe_lock; /* For GPE data structs and registers */
-ACPI_EXTERN spinlock_t _acpi_gbl_hardware_lock; /* For ACPI H/W except GPE registers */
-#define acpi_gbl_gpe_lock &_acpi_gbl_gpe_lock
-#define acpi_gbl_hardware_lock &_acpi_gbl_hardware_lock
+ACPI_GLOBAL(acpi_spinlock, acpi_gbl_gpe_lock); /* For GPE data structs and registers */
+ACPI_GLOBAL(acpi_spinlock, acpi_gbl_hardware_lock); /* For ACPI H/W except GPE registers */
+ACPI_GLOBAL(acpi_spinlock, acpi_gbl_reference_count_lock);
+
+/* Mutex for _OSI support */
+
+ACPI_GLOBAL(acpi_mutex, acpi_gbl_osi_mutex);
+
+/* Reader/Writer lock is used for namespace walk and dynamic table unload */
+
+ACPI_GLOBAL(struct acpi_rw_lock, acpi_gbl_namespace_rw_lock);
/*****************************************************************************
*
@@ -200,72 +129,70 @@ ACPI_EXTERN spinlock_t _acpi_gbl_hardware_lock; /* For ACPI H/W except GPE regis
*
****************************************************************************/
-#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-
-/* Lists for tracking memory allocations */
+/* Object caches */
-ACPI_EXTERN struct acpi_memory_list *acpi_gbl_global_list;
-ACPI_EXTERN struct acpi_memory_list *acpi_gbl_ns_node_list;
-ACPI_EXTERN u8 acpi_gbl_display_final_mem_stats;
-#endif
+ACPI_GLOBAL(acpi_cache_t *, acpi_gbl_namespace_cache);
+ACPI_GLOBAL(acpi_cache_t *, acpi_gbl_state_cache);
+ACPI_GLOBAL(acpi_cache_t *, acpi_gbl_ps_node_cache);
+ACPI_GLOBAL(acpi_cache_t *, acpi_gbl_ps_node_ext_cache);
+ACPI_GLOBAL(acpi_cache_t *, acpi_gbl_operand_cache);
-/* Object caches */
+/* System */
-ACPI_EXTERN acpi_cache_t *acpi_gbl_namespace_cache;
-ACPI_EXTERN acpi_cache_t *acpi_gbl_state_cache;
-ACPI_EXTERN acpi_cache_t *acpi_gbl_ps_node_cache;
-ACPI_EXTERN acpi_cache_t *acpi_gbl_ps_node_ext_cache;
-ACPI_EXTERN acpi_cache_t *acpi_gbl_operand_cache;
+ACPI_INIT_GLOBAL(u32, acpi_gbl_startup_flags, 0);
+ACPI_INIT_GLOBAL(u8, acpi_gbl_shutdown, TRUE);
/* Global handlers */
-ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_device_notify;
-ACPI_EXTERN struct acpi_object_notify_handler acpi_gbl_system_notify;
-ACPI_EXTERN acpi_exception_handler acpi_gbl_exception_handler;
-ACPI_EXTERN acpi_init_handler acpi_gbl_init_handler;
-ACPI_EXTERN acpi_tbl_handler acpi_gbl_table_handler;
-ACPI_EXTERN void *acpi_gbl_table_handler_context;
-ACPI_EXTERN struct acpi_walk_state *acpi_gbl_breakpoint_walk;
+ACPI_GLOBAL(struct acpi_global_notify_handler, acpi_gbl_global_notify[2]);
+ACPI_GLOBAL(acpi_exception_handler, acpi_gbl_exception_handler);
+ACPI_GLOBAL(acpi_init_handler, acpi_gbl_init_handler);
+ACPI_GLOBAL(acpi_table_handler, acpi_gbl_table_handler);
+ACPI_GLOBAL(void *, acpi_gbl_table_handler_context);
+ACPI_GLOBAL(acpi_interface_handler, acpi_gbl_interface_handler);
+ACPI_GLOBAL(struct acpi_sci_handler_info *, acpi_gbl_sci_handler_list);
/* Owner ID support */
-ACPI_EXTERN u32 acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS];
-ACPI_EXTERN u8 acpi_gbl_last_owner_id_index;
-ACPI_EXTERN u8 acpi_gbl_next_owner_id_offset;
+ACPI_GLOBAL(u32, acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS]);
+ACPI_GLOBAL(u8, acpi_gbl_last_owner_id_index);
+ACPI_GLOBAL(u8, acpi_gbl_next_owner_id_offset);
-/* Misc */
+/* Initialization sequencing */
-ACPI_EXTERN u32 acpi_gbl_original_mode;
-ACPI_EXTERN u32 acpi_gbl_rsdp_original_location;
-ACPI_EXTERN u32 acpi_gbl_ns_lookup_count;
-ACPI_EXTERN u32 acpi_gbl_ps_find_count;
-ACPI_EXTERN u16 acpi_gbl_pm1_enable_register_save;
-ACPI_EXTERN u8 acpi_gbl_debugger_configuration;
-ACPI_EXTERN u8 acpi_gbl_step_to_next_call;
-ACPI_EXTERN u8 acpi_gbl_acpi_hardware_present;
-ACPI_EXTERN u8 acpi_gbl_events_initialized;
-ACPI_EXTERN u8 acpi_gbl_system_awake_and_running;
+ACPI_GLOBAL(u8, acpi_gbl_reg_methods_executed);
-#ifndef DEFINE_ACPI_GLOBALS
+/* Misc */
+
+ACPI_GLOBAL(u32, acpi_gbl_original_mode);
+ACPI_GLOBAL(u32, acpi_gbl_ns_lookup_count);
+ACPI_GLOBAL(u32, acpi_gbl_ps_find_count);
+ACPI_GLOBAL(u16, acpi_gbl_pm1_enable_register_save);
+ACPI_GLOBAL(u8, acpi_gbl_debugger_configuration);
+ACPI_GLOBAL(u8, acpi_gbl_step_to_next_call);
+ACPI_GLOBAL(u8, acpi_gbl_acpi_hardware_present);
+ACPI_GLOBAL(u8, acpi_gbl_events_initialized);
+ACPI_GLOBAL(struct acpi_interface_info *, acpi_gbl_supported_interfaces);
+ACPI_GLOBAL(struct acpi_address_range *,
+ acpi_gbl_address_range_list[ACPI_ADDRESS_RANGE_MAX]);
-/* Other miscellaneous */
+/* Other miscellaneous, declared and initialized in utglobal */
-extern u8 acpi_gbl_shutdown;
-extern u32 acpi_gbl_startup_flags;
extern const char *acpi_gbl_sleep_state_names[ACPI_S_STATE_COUNT];
-extern const char *acpi_gbl_highest_dstate_names[4];
-extern const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES];
+extern const char *acpi_gbl_lowest_dstate_names[ACPI_NUM_sx_w_METHODS];
+extern const char *acpi_gbl_highest_dstate_names[ACPI_NUM_sx_d_METHODS];
extern const char *acpi_gbl_region_types[ACPI_NUM_PREDEFINED_REGIONS];
+extern const struct acpi_opcode_info acpi_gbl_aml_op_info[AML_NUM_OPCODES];
-#endif
+#ifdef ACPI_DBG_TRACK_ALLOCATIONS
-/* Exception codes */
+/* Lists for tracking memory allocations (debug only) */
-extern char const *acpi_gbl_exception_names_env[];
-extern char const *acpi_gbl_exception_names_pgm[];
-extern char const *acpi_gbl_exception_names_tbl[];
-extern char const *acpi_gbl_exception_names_aml[];
-extern char const *acpi_gbl_exception_names_ctrl[];
+ACPI_GLOBAL(struct acpi_memory_list *, acpi_gbl_global_list);
+ACPI_GLOBAL(struct acpi_memory_list *, acpi_gbl_ns_node_list);
+ACPI_GLOBAL(u8, acpi_gbl_display_final_mem_stats);
+ACPI_GLOBAL(u8, acpi_gbl_disable_mem_tracking);
+#endif
/*****************************************************************************
*
@@ -279,21 +206,23 @@ extern char const *acpi_gbl_exception_names_ctrl[];
#define NUM_PREDEFINED_NAMES 9
#endif
-ACPI_EXTERN struct acpi_namespace_node acpi_gbl_root_node_struct;
-ACPI_EXTERN struct acpi_namespace_node *acpi_gbl_root_node;
-ACPI_EXTERN struct acpi_namespace_node *acpi_gbl_fadt_gpe_device;
+ACPI_GLOBAL(struct acpi_namespace_node, acpi_gbl_root_node_struct);
+ACPI_GLOBAL(struct acpi_namespace_node *, acpi_gbl_root_node);
+ACPI_GLOBAL(struct acpi_namespace_node *, acpi_gbl_fadt_gpe_device);
+ACPI_GLOBAL(union acpi_operand_object *, acpi_gbl_module_code_list);
extern const u8 acpi_gbl_ns_properties[ACPI_NUM_NS_TYPES];
extern const struct acpi_predefined_names
acpi_gbl_pre_defined_names[NUM_PREDEFINED_NAMES];
#ifdef ACPI_DEBUG_OUTPUT
-ACPI_EXTERN u32 acpi_gbl_current_node_count;
-ACPI_EXTERN u32 acpi_gbl_current_node_size;
-ACPI_EXTERN u32 acpi_gbl_max_concurrent_node_count;
-ACPI_EXTERN acpi_size *acpi_gbl_entry_stack_pointer;
-ACPI_EXTERN acpi_size *acpi_gbl_lowest_stack_pointer;
-ACPI_EXTERN u32 acpi_gbl_deepest_nesting;
+ACPI_GLOBAL(u32, acpi_gbl_current_node_count);
+ACPI_GLOBAL(u32, acpi_gbl_current_node_size);
+ACPI_GLOBAL(u32, acpi_gbl_max_concurrent_node_count);
+ACPI_GLOBAL(acpi_size *, acpi_gbl_entry_stack_pointer);
+ACPI_GLOBAL(acpi_size *, acpi_gbl_lowest_stack_pointer);
+ACPI_GLOBAL(u32, acpi_gbl_deepest_nesting);
+ACPI_INIT_GLOBAL(u32, acpi_gbl_nesting_level, 0);
#endif
/*****************************************************************************
@@ -302,11 +231,11 @@ ACPI_EXTERN u32 acpi_gbl_deepest_nesting;
*
****************************************************************************/
-ACPI_EXTERN struct acpi_thread_state *acpi_gbl_current_walk_list;
+ACPI_GLOBAL(struct acpi_thread_state *, acpi_gbl_current_walk_list);
/* Control method single step flag */
-ACPI_EXTERN u8 acpi_gbl_cm_single_step;
+ACPI_GLOBAL(u8, acpi_gbl_cm_single_step);
/*****************************************************************************
*
@@ -316,8 +245,9 @@ ACPI_EXTERN u8 acpi_gbl_cm_single_step;
extern struct acpi_bit_register_info
acpi_gbl_bit_register_info[ACPI_NUM_BITREG];
-ACPI_EXTERN u8 acpi_gbl_sleep_type_a;
-ACPI_EXTERN u8 acpi_gbl_sleep_type_b;
+
+ACPI_GLOBAL(u8, acpi_gbl_sleep_type_a);
+ACPI_GLOBAL(u8, acpi_gbl_sleep_type_b);
/*****************************************************************************
*
@@ -325,70 +255,123 @@ ACPI_EXTERN u8 acpi_gbl_sleep_type_b;
*
****************************************************************************/
+#if (!ACPI_REDUCED_HARDWARE)
+
+ACPI_GLOBAL(u8, acpi_gbl_all_gpes_initialized);
+ACPI_GLOBAL(struct acpi_gpe_xrupt_info *, acpi_gbl_gpe_xrupt_list_head);
+ACPI_GLOBAL(struct acpi_gpe_block_info *,
+ acpi_gbl_gpe_fadt_blocks[ACPI_MAX_GPE_BLOCKS]);
+ACPI_GLOBAL(acpi_gbl_event_handler, acpi_gbl_global_event_handler);
+ACPI_GLOBAL(void *, acpi_gbl_global_event_handler_context);
+ACPI_GLOBAL(struct acpi_fixed_event_handler,
+ acpi_gbl_fixed_event_handlers[ACPI_NUM_FIXED_EVENTS]);
+
extern struct acpi_fixed_event_info
acpi_gbl_fixed_event_info[ACPI_NUM_FIXED_EVENTS];
-ACPI_EXTERN struct acpi_fixed_event_handler
- acpi_gbl_fixed_event_handlers[ACPI_NUM_FIXED_EVENTS];
-ACPI_EXTERN struct acpi_gpe_xrupt_info *acpi_gbl_gpe_xrupt_list_head;
-ACPI_EXTERN struct acpi_gpe_block_info
-*acpi_gbl_gpe_fadt_blocks[ACPI_MAX_GPE_BLOCKS];
-ACPI_EXTERN u32 acpi_current_gpe_count;
+
+#endif /* !ACPI_REDUCED_HARDWARE */
/*****************************************************************************
*
- * Debugger globals
+ * Debug support
*
****************************************************************************/
-ACPI_EXTERN u8 acpi_gbl_db_output_flags;
+/* Event counters */
+
+ACPI_GLOBAL(u32, acpi_method_count);
+ACPI_GLOBAL(u32, acpi_gpe_count);
+ACPI_GLOBAL(u32, acpi_sci_count);
+ACPI_GLOBAL(u32, acpi_fixed_event_count[ACPI_NUM_FIXED_EVENTS]);
+
+/* Support for dynamic control method tracing mechanism */
+
+ACPI_GLOBAL(u32, acpi_gbl_original_dbg_level);
+ACPI_GLOBAL(u32, acpi_gbl_original_dbg_layer);
+ACPI_GLOBAL(u32, acpi_gbl_trace_dbg_level);
+ACPI_GLOBAL(u32, acpi_gbl_trace_dbg_layer);
+
+/*****************************************************************************
+ *
+ * Debugger and Disassembler globals
+ *
+ ****************************************************************************/
+
+ACPI_GLOBAL(u8, acpi_gbl_db_output_flags);
#ifdef ACPI_DISASSEMBLER
-ACPI_EXTERN u8 acpi_gbl_db_opt_disasm;
-ACPI_EXTERN u8 acpi_gbl_db_opt_verbose;
+/* Do not disassemble buffers to resource descriptors */
+
+ACPI_INIT_GLOBAL(u8, acpi_gbl_no_resource_disassembly, FALSE);
+ACPI_INIT_GLOBAL(u8, acpi_gbl_ignore_noop_operator, FALSE);
+
+ACPI_GLOBAL(u8, acpi_gbl_db_opt_disasm);
+ACPI_GLOBAL(u8, acpi_gbl_db_opt_verbose);
+ACPI_GLOBAL(u8, acpi_gbl_num_external_methods);
+ACPI_GLOBAL(u32, acpi_gbl_resolved_external_methods);
+ACPI_GLOBAL(struct acpi_external_list *, acpi_gbl_external_list);
+ACPI_GLOBAL(struct acpi_external_file *, acpi_gbl_external_file_list);
#endif
#ifdef ACPI_DEBUGGER
-extern u8 acpi_gbl_method_executing;
-extern u8 acpi_gbl_abort_method;
-extern u8 acpi_gbl_db_terminate_threads;
-
-ACPI_EXTERN int optind;
-ACPI_EXTERN char *optarg;
-
-ACPI_EXTERN u8 acpi_gbl_db_opt_tables;
-ACPI_EXTERN u8 acpi_gbl_db_opt_stats;
-ACPI_EXTERN u8 acpi_gbl_db_opt_ini_methods;
-
-ACPI_EXTERN char *acpi_gbl_db_args[ACPI_DEBUGGER_MAX_ARGS];
-ACPI_EXTERN char acpi_gbl_db_line_buf[80];
-ACPI_EXTERN char acpi_gbl_db_parsed_buf[80];
-ACPI_EXTERN char acpi_gbl_db_scope_buf[40];
-ACPI_EXTERN char acpi_gbl_db_debug_filename[40];
-ACPI_EXTERN u8 acpi_gbl_db_output_to_file;
-ACPI_EXTERN char *acpi_gbl_db_buffer;
-ACPI_EXTERN char *acpi_gbl_db_filename;
-ACPI_EXTERN u32 acpi_gbl_db_debug_level;
-ACPI_EXTERN u32 acpi_gbl_db_console_debug_level;
-ACPI_EXTERN struct acpi_table_header *acpi_gbl_db_table_ptr;
-ACPI_EXTERN struct acpi_namespace_node *acpi_gbl_db_scope_node;
+ACPI_INIT_GLOBAL(u8, acpi_gbl_db_terminate_threads, FALSE);
+ACPI_INIT_GLOBAL(u8, acpi_gbl_abort_method, FALSE);
+ACPI_INIT_GLOBAL(u8, acpi_gbl_method_executing, FALSE);
+
+ACPI_GLOBAL(u8, acpi_gbl_db_opt_tables);
+ACPI_GLOBAL(u8, acpi_gbl_db_opt_stats);
+ACPI_GLOBAL(u8, acpi_gbl_db_opt_ini_methods);
+ACPI_GLOBAL(u8, acpi_gbl_db_opt_no_region_support);
+ACPI_GLOBAL(u8, acpi_gbl_db_output_to_file);
+ACPI_GLOBAL(char *, acpi_gbl_db_buffer);
+ACPI_GLOBAL(char *, acpi_gbl_db_filename);
+ACPI_GLOBAL(u32, acpi_gbl_db_debug_level);
+ACPI_GLOBAL(u32, acpi_gbl_db_console_debug_level);
+ACPI_GLOBAL(struct acpi_namespace_node *, acpi_gbl_db_scope_node);
+
+ACPI_GLOBAL(char *, acpi_gbl_db_args[ACPI_DEBUGGER_MAX_ARGS]);
+ACPI_GLOBAL(acpi_object_type, acpi_gbl_db_arg_types[ACPI_DEBUGGER_MAX_ARGS]);
+
+/* These buffers should all be the same size */
+
+ACPI_GLOBAL(char, acpi_gbl_db_line_buf[ACPI_DB_LINE_BUFFER_SIZE]);
+ACPI_GLOBAL(char, acpi_gbl_db_parsed_buf[ACPI_DB_LINE_BUFFER_SIZE]);
+ACPI_GLOBAL(char, acpi_gbl_db_scope_buf[ACPI_DB_LINE_BUFFER_SIZE]);
+ACPI_GLOBAL(char, acpi_gbl_db_debug_filename[ACPI_DB_LINE_BUFFER_SIZE]);
/*
* Statistic globals
*/
-ACPI_EXTERN u16 acpi_gbl_obj_type_count[ACPI_TYPE_NS_NODE_MAX + 1];
-ACPI_EXTERN u16 acpi_gbl_node_type_count[ACPI_TYPE_NS_NODE_MAX + 1];
-ACPI_EXTERN u16 acpi_gbl_obj_type_count_misc;
-ACPI_EXTERN u16 acpi_gbl_node_type_count_misc;
-ACPI_EXTERN u32 acpi_gbl_num_nodes;
-ACPI_EXTERN u32 acpi_gbl_num_objects;
-
-ACPI_EXTERN u32 acpi_gbl_size_of_parse_tree;
-ACPI_EXTERN u32 acpi_gbl_size_of_method_trees;
-ACPI_EXTERN u32 acpi_gbl_size_of_node_entries;
-ACPI_EXTERN u32 acpi_gbl_size_of_acpi_objects;
+ACPI_GLOBAL(u16, acpi_gbl_obj_type_count[ACPI_TYPE_NS_NODE_MAX + 1]);
+ACPI_GLOBAL(u16, acpi_gbl_node_type_count[ACPI_TYPE_NS_NODE_MAX + 1]);
+ACPI_GLOBAL(u16, acpi_gbl_obj_type_count_misc);
+ACPI_GLOBAL(u16, acpi_gbl_node_type_count_misc);
+ACPI_GLOBAL(u32, acpi_gbl_num_nodes);
+ACPI_GLOBAL(u32, acpi_gbl_num_objects);
#endif /* ACPI_DEBUGGER */
+/*****************************************************************************
+ *
+ * Application globals
+ *
+ ****************************************************************************/
+
+#ifdef ACPI_APPLICATION
+
+ACPI_INIT_GLOBAL(ACPI_FILE, acpi_gbl_debug_file, NULL);
+
+#endif /* ACPI_APPLICATION */
+
+/*****************************************************************************
+ *
+ * Info/help support
+ *
+ ****************************************************************************/
+
+extern const struct ah_predefined_name asl_predefined_info[];
+extern const struct ah_device_id asl_device_ids[];
+
#endif /* __ACGLOBAL_H__ */
diff --git a/drivers/acpi/acpica/achware.h b/drivers/acpi/acpica/achware.h
index 58c69dc49ab..2ad2351a983 100644
--- a/drivers/acpi/acpica/achware.h
+++ b/drivers/acpi/acpica/achware.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -62,22 +62,58 @@ u32 acpi_hw_get_mode(void);
/*
* hwregs - ACPI Register I/O
*/
+acpi_status
+acpi_hw_validate_register(struct acpi_generic_address *reg,
+ u8 max_bit_width, u64 *address);
+
+acpi_status acpi_hw_read(u32 *value, struct acpi_generic_address *reg);
+
+acpi_status acpi_hw_write(u32 value, struct acpi_generic_address *reg);
+
struct acpi_bit_register_info *acpi_hw_get_bit_register_info(u32 register_id);
-acpi_status
-acpi_hw_register_read(u32 register_id, u32 * return_value);
+acpi_status acpi_hw_write_pm1_control(u32 pm1a_control, u32 pm1b_control);
+
+acpi_status acpi_hw_register_read(u32 register_id, u32 *return_value);
acpi_status acpi_hw_register_write(u32 register_id, u32 value);
acpi_status acpi_hw_clear_acpi_status(void);
/*
+ * hwsleep - sleep/wake support (Legacy sleep registers)
+ */
+acpi_status acpi_hw_legacy_sleep(u8 sleep_state);
+
+acpi_status acpi_hw_legacy_wake_prep(u8 sleep_state);
+
+acpi_status acpi_hw_legacy_wake(u8 sleep_state);
+
+/*
+ * hwesleep - sleep/wake support (Extended FADT-V5 sleep registers)
+ */
+void acpi_hw_execute_sleep_method(char *method_name, u32 integer_argument);
+
+acpi_status acpi_hw_extended_sleep(u8 sleep_state);
+
+acpi_status acpi_hw_extended_wake_prep(u8 sleep_state);
+
+acpi_status acpi_hw_extended_wake(u8 sleep_state);
+
+/*
+ * hwvalid - Port I/O with validation
+ */
+acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width);
+
+acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width);
+
+/*
* hwgpe - GPE support
*/
-acpi_status acpi_hw_low_disable_gpe(struct acpi_gpe_event_info *gpe_event_info);
+u32 acpi_hw_get_gpe_register_bit(struct acpi_gpe_event_info *gpe_event_info);
acpi_status
-acpi_hw_write_gpe_enable_reg(struct acpi_gpe_event_info *gpe_event_info);
+acpi_hw_low_set_gpe(struct acpi_gpe_event_info *gpe_event_info, u32 action);
acpi_status
acpi_hw_disable_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
@@ -104,16 +140,11 @@ acpi_hw_enable_runtime_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
struct acpi_gpe_block_info *gpe_block,
void *context);
-#ifdef ACPI_FUTURE_USAGE
/*
- * hwtimer - ACPI Timer prototypes
+ * hwpci - PCI configuration support
*/
-acpi_status acpi_get_timer_resolution(u32 * resolution);
-
-acpi_status acpi_get_timer(u32 * ticks);
-
acpi_status
-acpi_get_timer_duration(u32 start_ticks, u32 end_ticks, u32 * time_elapsed);
-#endif /* ACPI_FUTURE_USAGE */
+acpi_hw_derive_pci_id(struct acpi_pci_id *pci_id,
+ acpi_handle root_pci_device, acpi_handle pci_region);
#endif /* __ACHWARE_H__ */
diff --git a/drivers/acpi/acpica/acinterp.h b/drivers/acpi/acpica/acinterp.h
index e8db7a3143a..b01f71ce052 100644
--- a/drivers/acpi/acpica/acinterp.h
+++ b/drivers/acpi/acpica/acinterp.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -87,6 +87,10 @@ typedef const struct acpi_exdump_info {
#define ACPI_EXD_PACKAGE 11
#define ACPI_EXD_FIELD 12
#define ACPI_EXD_REFERENCE 13
+#define ACPI_EXD_LIST 14 /* Operand object list */
+#define ACPI_EXD_HDLR_LIST 15 /* Address Handler list */
+#define ACPI_EXD_RGN_LIST 16 /* Region list */
+#define ACPI_EXD_NODE 17 /* Namespace Node */
/* restore default alignment */
@@ -121,6 +125,13 @@ acpi_ex_convert_to_target_type(acpi_object_type destination_type,
struct acpi_walk_state *walk_state);
/*
+ * exdebug - AML debug object
+ */
+void
+acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
+ u32 level, u32 index);
+
+/*
* exfield - ACPI AML (p-code) execution - field manipulation
*/
acpi_status
@@ -129,18 +140,17 @@ acpi_ex_common_buffer_setup(union acpi_operand_object *obj_desc,
acpi_status
acpi_ex_write_with_update_rule(union acpi_operand_object *obj_desc,
- acpi_integer mask,
- acpi_integer field_value,
- u32 field_datum_byte_offset);
+ u64 mask,
+ u64 field_value, u32 field_datum_byte_offset);
void
-acpi_ex_get_buffer_datum(acpi_integer * datum,
+acpi_ex_get_buffer_datum(u64 *datum,
void *buffer,
u32 buffer_length,
u32 byte_granularity, u32 buffer_offset);
void
-acpi_ex_set_buffer_datum(acpi_integer merged_datum,
+acpi_ex_set_buffer_datum(u64 merged_datum,
void *buffer,
u32 buffer_length,
u32 byte_granularity, u32 buffer_offset);
@@ -168,8 +178,7 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
acpi_status
acpi_ex_access_region(union acpi_operand_object *obj_desc,
- u32 field_datum_byte_offset,
- acpi_integer * value, u32 read_write);
+ u32 field_datum_byte_offset, u64 *value, u32 read_write);
/*
* exmisc - misc support routines
@@ -193,16 +202,14 @@ acpi_ex_do_concatenate(union acpi_operand_object *obj_desc,
acpi_status
acpi_ex_do_logical_numeric_op(u16 opcode,
- acpi_integer integer0,
- acpi_integer integer1, u8 * logical_result);
+ u64 integer0, u64 integer1, u8 *logical_result);
acpi_status
acpi_ex_do_logical_op(u16 opcode,
union acpi_operand_object *operand0,
- union acpi_operand_object *operand1, u8 * logical_result);
+ union acpi_operand_object *operand1, u8 *logical_result);
-acpi_integer
-acpi_ex_do_math_op(u16 opcode, acpi_integer operand0, acpi_integer operand1);
+u64 acpi_ex_do_math_op(u16 opcode, u64 operand0, u64 operand1);
acpi_status acpi_ex_create_mutex(struct acpi_walk_state *walk_state);
@@ -278,7 +285,7 @@ acpi_status
acpi_ex_system_do_notify_op(union acpi_operand_object *value,
union acpi_operand_object *obj_desc);
-acpi_status acpi_ex_system_do_suspend(acpi_integer time);
+acpi_status acpi_ex_system_do_sleep(u64 time);
acpi_status acpi_ex_system_do_stall(u32 time);
@@ -451,19 +458,17 @@ void acpi_ex_enter_interpreter(void);
void acpi_ex_exit_interpreter(void);
-void acpi_ex_reacquire_interpreter(void);
-
-void acpi_ex_relinquish_interpreter(void);
-
-void acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc);
+u8 acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc);
void acpi_ex_acquire_global_lock(u32 rule);
void acpi_ex_release_global_lock(u32 rule);
-void acpi_ex_eisa_id_to_string(u32 numeric_id, char *out_string);
+void acpi_ex_eisa_id_to_string(char *dest, u64 compressed_id);
+
+void acpi_ex_integer_to_string(char *dest, u64 value);
-void acpi_ex_unsigned_integer_to_string(acpi_integer value, char *out_string);
+u8 acpi_is_valid_space_id(u8 space_id);
/*
* exregion - default op_region handlers
@@ -472,7 +477,7 @@ acpi_status
acpi_ex_system_memory_space_handler(u32 function,
acpi_physical_address address,
u32 bit_width,
- acpi_integer * value,
+ u64 *value,
void *handler_context,
void *region_context);
@@ -480,35 +485,35 @@ acpi_status
acpi_ex_system_io_space_handler(u32 function,
acpi_physical_address address,
u32 bit_width,
- acpi_integer * value,
+ u64 *value,
void *handler_context, void *region_context);
acpi_status
acpi_ex_pci_config_space_handler(u32 function,
acpi_physical_address address,
u32 bit_width,
- acpi_integer * value,
+ u64 *value,
void *handler_context, void *region_context);
acpi_status
acpi_ex_cmos_space_handler(u32 function,
acpi_physical_address address,
u32 bit_width,
- acpi_integer * value,
+ u64 *value,
void *handler_context, void *region_context);
acpi_status
acpi_ex_pci_bar_space_handler(u32 function,
acpi_physical_address address,
u32 bit_width,
- acpi_integer * value,
+ u64 *value,
void *handler_context, void *region_context);
acpi_status
acpi_ex_embedded_controller_space_handler(u32 function,
acpi_physical_address address,
u32 bit_width,
- acpi_integer * value,
+ u64 *value,
void *handler_context,
void *region_context);
@@ -516,14 +521,14 @@ acpi_status
acpi_ex_sm_bus_space_handler(u32 function,
acpi_physical_address address,
u32 bit_width,
- acpi_integer * value,
+ u64 *value,
void *handler_context, void *region_context);
acpi_status
acpi_ex_data_table_space_handler(u32 function,
acpi_physical_address address,
u32 bit_width,
- acpi_integer * value,
+ u64 *value,
void *handler_context, void *region_context);
#endif /* __INTERP_H__ */
diff --git a/drivers/acpi/acpica/aclocal.h b/drivers/acpi/acpica/aclocal.h
index 492d02761bb..91f801a2e68 100644
--- a/drivers/acpi/acpica/aclocal.h
+++ b/drivers/acpi/acpica/aclocal.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -53,7 +53,7 @@ typedef u32 acpi_mutex_handle;
/* Total number of aml opcodes defined */
-#define AML_NUM_OPCODES 0x7F
+#define AML_NUM_OPCODES 0x81
/* Forward declarations */
@@ -89,25 +89,14 @@ union acpi_parse_object;
#define ACPI_MAX_MUTEX 7
#define ACPI_NUM_MUTEX ACPI_MAX_MUTEX+1
-#if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
-#ifdef DEFINE_ACPI_GLOBALS
+/* Lock structure for reader/writer interfaces */
-/* Debug names for the mutexes above */
-
-static char *acpi_gbl_mutex_names[ACPI_NUM_MUTEX] = {
- "ACPI_MTX_Interpreter",
- "ACPI_MTX_Namespace",
- "ACPI_MTX_Tables",
- "ACPI_MTX_Events",
- "ACPI_MTX_Caches",
- "ACPI_MTX_Memory",
- "ACPI_MTX_CommandComplete",
- "ACPI_MTX_CommandReady"
+struct acpi_rw_lock {
+ acpi_mutex writer_mutex;
+ acpi_mutex reader_mutex;
+ u32 num_readers;
};
-#endif
-#endif
-
/*
* Predefined handles for spinlocks used within the subsystem.
* These spinlocks are created by acpi_ut_mutex_initialize
@@ -176,8 +165,9 @@ struct acpi_namespace_node {
u8 flags; /* Miscellaneous flags */
acpi_owner_id owner_id; /* Node creator */
union acpi_name_union name; /* ACPI Name, always 4 chars per ACPI spec */
+ struct acpi_namespace_node *parent; /* Parent node */
struct acpi_namespace_node *child; /* First child */
- struct acpi_namespace_node *peer; /* Peer. Parent if ANOBJ_END_OF_PEER_LIST set */
+ struct acpi_namespace_node *peer; /* First peer */
/*
* The following fields are used by the ASL compiler and disassembler only
@@ -191,25 +181,25 @@ struct acpi_namespace_node {
/* Namespace Node flags */
-#define ANOBJ_END_OF_PEER_LIST 0x01 /* End-of-list, Peer field points to parent */
+#define ANOBJ_RESERVED 0x01 /* Available for use */
#define ANOBJ_TEMPORARY 0x02 /* Node is create by a method and is temporary */
#define ANOBJ_METHOD_ARG 0x04 /* Node is a method argument */
#define ANOBJ_METHOD_LOCAL 0x08 /* Node is a method local */
#define ANOBJ_SUBTREE_HAS_INI 0x10 /* Used to optimize device initialization */
#define ANOBJ_EVALUATED 0x20 /* Set on first evaluation of node */
+#define ANOBJ_ALLOCATED_BUFFER 0x40 /* Method AML buffer is dynamic (install_method) */
-#define ANOBJ_IS_EXTERNAL 0x08 /* i_aSL only: This object created via External() */
-#define ANOBJ_METHOD_NO_RETVAL 0x10 /* i_aSL only: Method has no return value */
-#define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* i_aSL only: Method has at least one return value */
-#define ANOBJ_IS_BIT_OFFSET 0x40 /* i_aSL only: Reference is a bit offset */
-#define ANOBJ_IS_REFERENCED 0x80 /* i_aSL only: Object was referenced */
+#define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */
+#define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */
+#define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */
+#define ANOBJ_IS_REFERENCED 0x80 /* iASL only: Object was referenced */
-/* One internal RSDT for table management */
+/* Internal ACPI table management - master table list */
-struct acpi_internal_rsdt {
- struct acpi_table_desc *tables;
- u32 count;
- u32 size;
+struct acpi_table_list {
+ struct acpi_table_desc *tables; /* Table descriptor array */
+ u32 current_table_count; /* Tables currently in the array */
+ u32 max_table_count; /* Max tables array will hold */
u8 flags;
};
@@ -258,19 +248,23 @@ struct acpi_create_field_info {
struct acpi_namespace_node *field_node;
struct acpi_namespace_node *register_node;
struct acpi_namespace_node *data_register_node;
+ struct acpi_namespace_node *connection_node;
+ u8 *resource_buffer;
u32 bank_value;
u32 field_bit_position;
u32 field_bit_length;
+ u16 resource_length;
u8 field_flags;
u8 attribute;
u8 field_type;
+ u8 access_length;
};
typedef
-acpi_status(*ACPI_INTERNAL_METHOD) (struct acpi_walk_state * walk_state);
+acpi_status(*acpi_internal_method) (struct acpi_walk_state * walk_state);
/*
- * Bitmapped ACPI types. Used internally only
+ * Bitmapped ACPI types. Used internally only
*/
#define ACPI_BTYPE_ANY 0x00000000
#define ACPI_BTYPE_INTEGER 0x00000001
@@ -300,17 +294,19 @@ acpi_status(*ACPI_INTERNAL_METHOD) (struct acpi_walk_state * walk_state);
#define ACPI_BTYPE_OBJECTS_AND_REFS 0x0001FFFF /* ARG or LOCAL */
#define ACPI_BTYPE_ALL_OBJECTS 0x0000FFFF
+#pragma pack(1)
+
/*
* Information structure for ACPI predefined names.
* Each entry in the table contains the following items:
*
- * Name - The ACPI reserved name
+ * name - The ACPI reserved name
* param_count - Number of arguments to the method
* expected_return_btypes - Allowed type(s) for the return value
*/
struct acpi_name_info {
char name[ACPI_NAME_SIZE];
- u8 param_count;
+ u16 argument_list;
u8 expected_btypes;
};
@@ -324,7 +320,8 @@ struct acpi_name_info {
/*
* Used for ACPI_PTYPE1_FIXED, ACPI_PTYPE1_VAR, ACPI_PTYPE2,
- * ACPI_PTYPE2_MIN, ACPI_PTYPE2_PKG_COUNT, ACPI_PTYPE2_COUNT
+ * ACPI_PTYPE2_MIN, ACPI_PTYPE2_PKG_COUNT, ACPI_PTYPE2_COUNT,
+ * ACPI_PTYPE2_FIX_VAR
*/
struct acpi_package_info {
u8 type;
@@ -332,7 +329,7 @@ struct acpi_package_info {
u8 count1;
u8 object_type2;
u8 count2;
- u8 reserved;
+ u16 reserved;
};
/* Used for ACPI_PTYPE2_FIXED */
@@ -341,6 +338,7 @@ struct acpi_package_info2 {
u8 type;
u8 count;
u8 object_type[4];
+ u8 reserved;
};
/* Used for ACPI_PTYPE1_OPTION */
@@ -350,7 +348,7 @@ struct acpi_package_info3 {
u8 count;
u8 object_type[2];
u8 tail_object_type;
- u8 reserved;
+ u16 reserved;
};
union acpi_predefined_info {
@@ -360,6 +358,24 @@ union acpi_predefined_info {
struct acpi_package_info3 ret_info3;
};
+/* Reset to default packing */
+
+#pragma pack()
+
+/* Return object auto-repair info */
+
+typedef acpi_status(*acpi_object_converter) (union acpi_operand_object
+ *original_object,
+ union acpi_operand_object
+ **converted_object);
+
+struct acpi_simple_repair_info {
+ char name[ACPI_NAME_SIZE];
+ u32 unexpected_btypes;
+ u32 package_index;
+ acpi_object_converter object_converter;
+};
+
/*
* Bitmapped return value types
* Note: the actual data types must be contiguous, a loop in nspredef.c
@@ -382,17 +398,39 @@ union acpi_predefined_info {
*
****************************************************************************/
+/* Dispatch info for each host-installed SCI handler */
+
+struct acpi_sci_handler_info {
+ struct acpi_sci_handler_info *next;
+ acpi_sci_handler address; /* Address of handler */
+ void *context; /* Context to be passed to handler */
+};
+
/* Dispatch info for each GPE -- either a method or handler, cannot be both */
-struct acpi_handler_info {
- acpi_event_handler address; /* Address of handler, if any */
+struct acpi_gpe_handler_info {
+ acpi_gpe_handler address; /* Address of handler, if any */
void *context; /* Context to be passed to handler */
struct acpi_namespace_node *method_node; /* Method node for this GPE level (saved) */
+ u8 original_flags; /* Original (pre-handler) GPE info */
+ u8 originally_enabled; /* True if GPE was originally enabled */
};
+/* Notify info for implicit notify, multiple device objects */
+
+struct acpi_gpe_notify_info {
+ struct acpi_namespace_node *device_node; /* Device to be notified */
+ struct acpi_gpe_notify_info *next;
+};
+
+/*
+ * GPE dispatch info. At any time, the GPE can have at most one type
+ * of dispatch - Method, Handler, or Implicit Notify.
+ */
union acpi_gpe_dispatch_info {
struct acpi_namespace_node *method_node; /* Method node for this GPE level */
- struct acpi_handler_info *handler;
+ struct acpi_gpe_handler_info *handler; /* Installed GPE handler */
+ struct acpi_gpe_notify_info *notify_list; /* List of _PRW devices for implicit notifies */
};
/*
@@ -400,10 +438,11 @@ union acpi_gpe_dispatch_info {
* NOTE: Important to keep this struct as small as possible.
*/
struct acpi_gpe_event_info {
- union acpi_gpe_dispatch_info dispatch; /* Either Method or Handler */
+ union acpi_gpe_dispatch_info dispatch; /* Either Method, Handler, or notify_list */
struct acpi_gpe_register_info *register_info; /* Backpointer to register info */
u8 flags; /* Misc info about this GPE */
u8 gpe_number; /* This GPE */
+ u8 runtime_count; /* References to a run GPE */
};
/* Information about a GPE register pair, one per each status/enable pair in an array */
@@ -411,9 +450,9 @@ struct acpi_gpe_event_info {
struct acpi_gpe_register_info {
struct acpi_generic_address status_address; /* Address of status reg */
struct acpi_generic_address enable_address; /* Address of enable reg */
+ u16 base_gpe_number; /* Base GPE number for this register */
u8 enable_for_wake; /* GPEs to keep enabled when sleeping */
u8 enable_for_run; /* GPEs to keep enabled when running */
- u8 base_gpe_number; /* Base GPE number for this register */
};
/*
@@ -427,9 +466,12 @@ struct acpi_gpe_block_info {
struct acpi_gpe_xrupt_info *xrupt_block; /* Backpointer to interrupt block */
struct acpi_gpe_register_info *register_info; /* One per GPE register pair */
struct acpi_gpe_event_info *event_info; /* One for each GPE */
- struct acpi_generic_address block_address; /* Base address of the block */
+ u64 address; /* Base address of the block */
u32 register_count; /* Number of register pairs in block */
- u8 block_base_number; /* Base GPE number for this block */
+ u16 gpe_count; /* Number of individual GPEs in block */
+ u16 block_base_number; /* Base GPE number for this block */
+ u8 space_id;
+ u8 initialized; /* TRUE if this block is initialized */
};
/* Information about GPE interrupt handlers, one per each interrupt level used for GPEs */
@@ -444,6 +486,9 @@ struct acpi_gpe_xrupt_info {
struct acpi_gpe_walk_info {
struct acpi_namespace_node *gpe_device;
struct acpi_gpe_block_info *gpe_block;
+ u16 count;
+ acpi_owner_id owner_id;
+ u8 execute_by_owner_id;
};
struct acpi_gpe_device_info {
@@ -453,8 +498,10 @@ struct acpi_gpe_device_info {
struct acpi_namespace_node *gpe_device;
};
-typedef acpi_status(*acpi_gpe_callback) (struct acpi_gpe_xrupt_info *gpe_xrupt_info,
- struct acpi_gpe_block_info *gpe_block, void *context);
+typedef acpi_status(*acpi_gpe_callback) (struct acpi_gpe_xrupt_info *
+ gpe_xrupt_info,
+ struct acpi_gpe_block_info *gpe_block,
+ void *context);
/* Information about each particular fixed event */
@@ -549,7 +596,7 @@ struct acpi_pscope_state {
};
/*
- * Thread state - one per thread across multiple walk states. Multiple walk
+ * Thread state - one per thread across multiple walk states. Multiple walk
* states are created when there are nested control methods executing.
*/
struct acpi_thread_state {
@@ -574,13 +621,22 @@ acpi_status(*acpi_parse_downwards) (struct acpi_walk_state * walk_state,
typedef acpi_status(*acpi_parse_upwards) (struct acpi_walk_state * walk_state);
+/* Global handlers for AML Notifies */
+
+struct acpi_global_notify_handler {
+ acpi_notify_handler handler;
+ void *context;
+};
+
/*
* Notify info - used to pass info to the deferred notify
* handler/dispatcher.
*/
struct acpi_notify_info {
- ACPI_STATE_COMMON struct acpi_namespace_node *node;
- union acpi_operand_object *handler_obj;
+ ACPI_STATE_COMMON u8 handler_list_id;
+ struct acpi_namespace_node *node;
+ union acpi_operand_object *handler_list_head;
+ struct acpi_global_notify_handler *global;
};
/* Generic state is union of structs above */
@@ -603,7 +659,16 @@ union acpi_generic_state {
*
****************************************************************************/
-typedef acpi_status(*ACPI_EXECUTE_OP) (struct acpi_walk_state * walk_state);
+typedef acpi_status(*acpi_execute_op) (struct acpi_walk_state * walk_state);
+
+/* Address Range info block */
+
+struct acpi_address_range {
+ struct acpi_address_range *next;
+ struct acpi_namespace_node *region_node;
+ acpi_physical_address start_address;
+ acpi_physical_address end_address;
+};
/*****************************************************************************
*
@@ -626,9 +691,10 @@ struct acpi_opcode_info {
u8 type; /* Opcode type */
};
+/* Value associated with the parse object */
+
union acpi_parse_value {
- acpi_integer integer; /* Integer constant (Up to 64 bits) */
- struct uint64_struct integer64; /* Structure overlay for 2 32-bit Dwords */
+ u64 integer; /* Integer constant (Up to 64 bits) */
u32 size; /* bytelist or field size */
char *string; /* NULL terminated string */
u8 *buffer; /* buffer or string */
@@ -657,15 +723,19 @@ union acpi_parse_value {
u8 disasm_opcode; /* Subtype used for disassembly */\
char aml_op_name[16]) /* Op name (debug only) */
-#define ACPI_DASM_BUFFER 0x00
-#define ACPI_DASM_RESOURCE 0x01
-#define ACPI_DASM_STRING 0x02
-#define ACPI_DASM_UNICODE 0x03
-#define ACPI_DASM_EISAID 0x04
-#define ACPI_DASM_MATCHOP 0x05
-#define ACPI_DASM_LNOT_PREFIX 0x06
-#define ACPI_DASM_LNOT_SUFFIX 0x07
-#define ACPI_DASM_IGNORE 0x08
+/* Flags for disasm_flags field above */
+
+#define ACPI_DASM_BUFFER 0x00 /* Buffer is a simple data buffer */
+#define ACPI_DASM_RESOURCE 0x01 /* Buffer is a Resource Descriptor */
+#define ACPI_DASM_STRING 0x02 /* Buffer is a ASCII string */
+#define ACPI_DASM_UNICODE 0x03 /* Buffer is a Unicode string */
+#define ACPI_DASM_PLD_METHOD 0x04 /* Buffer is a _PLD method bit-packed buffer */
+#define ACPI_DASM_EISAID 0x05 /* Integer is an EISAID */
+#define ACPI_DASM_MATCHOP 0x06 /* Parent opcode is a Match() operator */
+#define ACPI_DASM_LNOT_PREFIX 0x07 /* Start of a Lnot_equal (etc.) pair of opcodes */
+#define ACPI_DASM_LNOT_SUFFIX 0x08 /* End of a Lnot_equal (etc.) pair of opcodes */
+#define ACPI_DASM_HID_STRING 0x09 /* String is a _HID or _CID */
+#define ACPI_DASM_IGNORE 0x0A /* Not used at this time */
/*
* Generic operation (for example: If, While, Store)
@@ -684,7 +754,7 @@ struct acpi_parse_obj_named {
u32 name; /* 4-byte name or zero if no name */
};
-/* This version is used by the i_aSL compiler only */
+/* This version is used by the iASL compiler only */
#define ACPI_MAX_PARSEOP_NAME 20
@@ -753,6 +823,7 @@ struct acpi_parse_state {
#define ACPI_PARSEOP_IGNORE 0x01
#define ACPI_PARSEOP_PARAMLIST 0x02
#define ACPI_PARSEOP_EMPTY_TERMLIST 0x04
+#define ACPI_PARSEOP_PREDEF_CHECKED 0x08
#define ACPI_PARSEOP_SPECIAL 0x10
/*****************************************************************************
@@ -772,7 +843,27 @@ struct acpi_bit_register_info {
* must be preserved.
*/
#define ACPI_PM1_STATUS_PRESERVED_BITS 0x0800 /* Bit 11 */
-#define ACPI_PM1_CONTROL_PRESERVED_BITS 0x0200 /* Bit 9 (whatever) */
+
+/* Write-only bits must be zeroed by software */
+
+#define ACPI_PM1_CONTROL_WRITEONLY_BITS 0x2004 /* Bits 13, 2 */
+
+/* For control registers, both ignored and reserved bits must be preserved */
+
+/*
+ * For PM1 control, the SCI enable bit (bit 0, SCI_EN) is defined by the
+ * ACPI specification to be a "preserved" bit - "OSPM always preserves this
+ * bit position", section 4.7.3.2.1. However, on some machines the OS must
+ * write a one to this bit after resume for the machine to work properly.
+ * To enable this, we no longer attempt to preserve this bit. No machines
+ * are known to fail if the bit is not preserved. (May 2009)
+ */
+#define ACPI_PM1_CONTROL_IGNORED_BITS 0x0200 /* Bit 9 */
+#define ACPI_PM1_CONTROL_RESERVED_BITS 0xC1F8 /* Bits 14-15, 3-8 */
+#define ACPI_PM1_CONTROL_PRESERVED_BITS \
+ (ACPI_PM1_CONTROL_IGNORED_BITS | ACPI_PM1_CONTROL_RESERVED_BITS)
+
+#define ACPI_PM2_CONTROL_PRESERVED_BITS 0xFFFFFFFE /* All except bit 0 */
/*
* Register IDs
@@ -781,12 +872,10 @@ struct acpi_bit_register_info {
#define ACPI_REGISTER_PM1_STATUS 0x01
#define ACPI_REGISTER_PM1_ENABLE 0x02
#define ACPI_REGISTER_PM1_CONTROL 0x03
-#define ACPI_REGISTER_PM1A_CONTROL 0x04
-#define ACPI_REGISTER_PM1B_CONTROL 0x05
-#define ACPI_REGISTER_PM2_CONTROL 0x06
-#define ACPI_REGISTER_PM_TIMER 0x07
-#define ACPI_REGISTER_PROCESSOR_BLOCK 0x08
-#define ACPI_REGISTER_SMI_COMMAND_BLOCK 0x09
+#define ACPI_REGISTER_PM2_CONTROL 0x04
+#define ACPI_REGISTER_PM_TIMER 0x05
+#define ACPI_REGISTER_PROCESSOR_BLOCK 0x06
+#define ACPI_REGISTER_SMI_COMMAND_BLOCK 0x07
/* Masks used to access the bit_registers */
@@ -806,6 +895,7 @@ struct acpi_bit_register_info {
ACPI_BITMASK_POWER_BUTTON_STATUS | \
ACPI_BITMASK_SLEEP_BUTTON_STATUS | \
ACPI_BITMASK_RT_CLOCK_STATUS | \
+ ACPI_BITMASK_PCIEXP_WAKE_STATUS | \
ACPI_BITMASK_WAKE_STATUS)
#define ACPI_BITMASK_TIMER_ENABLE 0x0001
@@ -818,7 +908,7 @@ struct acpi_bit_register_info {
#define ACPI_BITMASK_SCI_ENABLE 0x0001
#define ACPI_BITMASK_BUS_MASTER_RLD 0x0002
#define ACPI_BITMASK_GLOBAL_LOCK_RELEASE 0x0004
-#define ACPI_BITMASK_SLEEP_TYPE_X 0x1C00
+#define ACPI_BITMASK_SLEEP_TYPE 0x1C00
#define ACPI_BITMASK_SLEEP_ENABLE 0x2000
#define ACPI_BITMASK_ARB_DISABLE 0x0001
@@ -844,11 +934,35 @@ struct acpi_bit_register_info {
#define ACPI_BITPOSITION_SCI_ENABLE 0x00
#define ACPI_BITPOSITION_BUS_MASTER_RLD 0x01
#define ACPI_BITPOSITION_GLOBAL_LOCK_RELEASE 0x02
-#define ACPI_BITPOSITION_SLEEP_TYPE_X 0x0A
+#define ACPI_BITPOSITION_SLEEP_TYPE 0x0A
#define ACPI_BITPOSITION_SLEEP_ENABLE 0x0D
#define ACPI_BITPOSITION_ARB_DISABLE 0x00
+/* Structs and definitions for _OSI support and I/O port validation */
+
+#define ACPI_ALWAYS_ILLEGAL 0x00
+
+struct acpi_interface_info {
+ char *name;
+ struct acpi_interface_info *next;
+ u8 flags;
+ u8 value;
+};
+
+#define ACPI_OSI_INVALID 0x01
+#define ACPI_OSI_DYNAMIC 0x02
+#define ACPI_OSI_FEATURE 0x04
+#define ACPI_OSI_DEFAULT_INVALID 0x08
+#define ACPI_OSI_OPTIONAL_FEATURE (ACPI_OSI_FEATURE | ACPI_OSI_DEFAULT_INVALID | ACPI_OSI_INVALID)
+
+struct acpi_port_info {
+ char *name;
+ u16 start;
+ u16 end;
+ u8 osi_dependency;
+};
+
/*****************************************************************************
*
* Resource descriptors
@@ -880,7 +994,7 @@ struct acpi_bit_register_info {
#define ACPI_RESOURCE_NAME_END_DEPENDENT 0x38
#define ACPI_RESOURCE_NAME_IO 0x40
#define ACPI_RESOURCE_NAME_FIXED_IO 0x48
-#define ACPI_RESOURCE_NAME_RESERVED_S1 0x50
+#define ACPI_RESOURCE_NAME_FIXED_DMA 0x50
#define ACPI_RESOURCE_NAME_RESERVED_S2 0x58
#define ACPI_RESOURCE_NAME_RESERVED_S3 0x60
#define ACPI_RESOURCE_NAME_RESERVED_S4 0x68
@@ -902,7 +1016,9 @@ struct acpi_bit_register_info {
#define ACPI_RESOURCE_NAME_EXTENDED_IRQ 0x89
#define ACPI_RESOURCE_NAME_ADDRESS64 0x8A
#define ACPI_RESOURCE_NAME_EXTENDED_ADDRESS64 0x8B
-#define ACPI_RESOURCE_NAME_LARGE_MAX 0x8B
+#define ACPI_RESOURCE_NAME_GPIO 0x8C
+#define ACPI_RESOURCE_NAME_SERIAL_BUS 0x8E
+#define ACPI_RESOURCE_NAME_LARGE_MAX 0x8E
/*****************************************************************************
*
@@ -914,14 +1030,44 @@ struct acpi_bit_register_info {
/*****************************************************************************
*
+ * Disassembler
+ *
+ ****************************************************************************/
+
+struct acpi_external_list {
+ char *path;
+ char *internal_path;
+ struct acpi_external_list *next;
+ u32 value;
+ u16 length;
+ u16 flags;
+ u8 type;
+};
+
+/* Values for Flags field above */
+
+#define ACPI_EXT_RESOLVED_REFERENCE 0x01 /* Object was resolved during cross ref */
+#define ACPI_EXT_ORIGIN_FROM_FILE 0x02 /* External came from a file */
+#define ACPI_EXT_INTERNAL_PATH_ALLOCATED 0x04 /* Deallocate internal path on completion */
+#define ACPI_EXT_EXTERNAL_EMITTED 0x08 /* External() statement has been emitted */
+
+struct acpi_external_file {
+ char *path;
+ struct acpi_external_file *next;
+};
+
+/*****************************************************************************
+ *
* Debugger
*
****************************************************************************/
struct acpi_db_method_info {
+ acpi_handle method;
acpi_handle main_thread_gate;
acpi_handle thread_complete_gate;
- u32 *threads;
+ acpi_handle info_gate;
+ acpi_thread_id *threads;
u32 num_threads;
u32 num_created;
u32 num_completed;
@@ -929,8 +1075,9 @@ struct acpi_db_method_info {
char *name;
u32 flags;
u32 num_loops;
- char pathname[128];
+ char pathname[ACPI_DB_LINE_BUFFER_SIZE];
char **args;
+ acpi_object_type *types;
/*
* Arguments to be passed to method for the command
@@ -950,6 +1097,7 @@ struct acpi_integrity_info {
u32 objects;
};
+#define ACPI_DB_DISABLE_OUTPUT 0x00
#define ACPI_DB_REDIRECTABLE_OUTPUT 0x01
#define ACPI_DB_CONSOLE_OUTPUT 0x02
#define ACPI_DB_DUPLICATE_OUTPUT 0x03
@@ -987,4 +1135,23 @@ struct acpi_debug_mem_block {
#define ACPI_MEM_LIST_MAX 1
#define ACPI_NUM_MEM_LISTS 2
+/*****************************************************************************
+ *
+ * Info/help support
+ *
+ ****************************************************************************/
+
+struct ah_predefined_name {
+ char *name;
+ char *description;
+#ifndef ACPI_ASL_COMPILER
+ char *action;
+#endif
+};
+
+struct ah_device_id {
+ char *name;
+ char *description;
+};
+
#endif /* __ACLOCAL_H__ */
diff --git a/drivers/acpi/acpica/acmacros.h b/drivers/acpi/acpica/acmacros.h
index 9c127e8e2d6..4bceb11c738 100644
--- a/drivers/acpi/acpica/acmacros.h
+++ b/drivers/acpi/acpica/acmacros.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -49,27 +49,35 @@
* get into potential aligment issues -- see the STORE macros below.
* Use with care.
*/
-#define ACPI_GET8(ptr) *ACPI_CAST_PTR (u8, ptr)
-#define ACPI_GET16(ptr) *ACPI_CAST_PTR (u16, ptr)
-#define ACPI_GET32(ptr) *ACPI_CAST_PTR (u32, ptr)
-#define ACPI_GET64(ptr) *ACPI_CAST_PTR (u64, ptr)
-#define ACPI_SET8(ptr) *ACPI_CAST_PTR (u8, ptr)
-#define ACPI_SET16(ptr) *ACPI_CAST_PTR (u16, ptr)
-#define ACPI_SET32(ptr) *ACPI_CAST_PTR (u32, ptr)
-#define ACPI_SET64(ptr) *ACPI_CAST_PTR (u64, ptr)
+#define ACPI_CAST8(ptr) ACPI_CAST_PTR (u8, (ptr))
+#define ACPI_CAST16(ptr) ACPI_CAST_PTR (u16, (ptr))
+#define ACPI_CAST32(ptr) ACPI_CAST_PTR (u32, (ptr))
+#define ACPI_CAST64(ptr) ACPI_CAST_PTR (u64, (ptr))
+#define ACPI_GET8(ptr) (*ACPI_CAST8 (ptr))
+#define ACPI_GET16(ptr) (*ACPI_CAST16 (ptr))
+#define ACPI_GET32(ptr) (*ACPI_CAST32 (ptr))
+#define ACPI_GET64(ptr) (*ACPI_CAST64 (ptr))
+#define ACPI_SET8(ptr, val) (*ACPI_CAST8 (ptr) = (u8) (val))
+#define ACPI_SET16(ptr, val) (*ACPI_CAST16 (ptr) = (u16) (val))
+#define ACPI_SET32(ptr, val) (*ACPI_CAST32 (ptr) = (u32) (val))
+#define ACPI_SET64(ptr, val) (*ACPI_CAST64 (ptr) = (u64) (val))
/*
- * printf() format helpers
+ * printf() format helpers. These macros are workarounds for the difficulties
+ * with emitting 64-bit integers and 64-bit pointers with the same code
+ * for both 32-bit and 64-bit hosts.
*/
-
-/* Split 64-bit integer into two 32-bit values. Use with %8.8_x%8.8_x */
-
#define ACPI_FORMAT_UINT64(i) ACPI_HIDWORD(i), ACPI_LODWORD(i)
#if ACPI_MACHINE_WIDTH == 64
#define ACPI_FORMAT_NATIVE_UINT(i) ACPI_FORMAT_UINT64(i)
+#define ACPI_FORMAT_TO_UINT(i) ACPI_FORMAT_UINT64(i)
+#define ACPI_PRINTF_UINT "0x%8.8X%8.8X"
+
#else
-#define ACPI_FORMAT_NATIVE_UINT(i) 0, (i)
+#define ACPI_FORMAT_NATIVE_UINT(i) 0, (u32) (i)
+#define ACPI_FORMAT_TO_UINT(i) (u32) (i)
+#define ACPI_PRINTF_UINT "0x%8.8X"
#endif
/*
@@ -84,29 +92,29 @@
/* These macros reverse the bytes during the move, converting little-endian to big endian */
- /* Big Endian <== Little Endian */
- /* Hi...Lo Lo...Hi */
+ /* Big Endian <== Little Endian */
+ /* Hi...Lo Lo...Hi */
/* 16-bit source, 16/32/64 destination */
#define ACPI_MOVE_16_TO_16(d, s) {(( u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[1];\
- (( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[0];}
+ (( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[0];}
#define ACPI_MOVE_16_TO_32(d, s) {(*(u32 *)(void *)(d))=0;\
- ((u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\
- ((u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}
+ ((u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\
+ ((u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}
#define ACPI_MOVE_16_TO_64(d, s) {(*(u64 *)(void *)(d))=0;\
- ((u8 *)(void *)(d))[6] = ((u8 *)(void *)(s))[1];\
- ((u8 *)(void *)(d))[7] = ((u8 *)(void *)(s))[0];}
+ ((u8 *)(void *)(d))[6] = ((u8 *)(void *)(s))[1];\
+ ((u8 *)(void *)(d))[7] = ((u8 *)(void *)(s))[0];}
/* 32-bit source, 16/32/64 destination */
#define ACPI_MOVE_32_TO_16(d, s) ACPI_MOVE_16_TO_16(d, s) /* Truncate to 16 */
#define ACPI_MOVE_32_TO_32(d, s) {(( u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[3];\
- (( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[2];\
- (( u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\
- (( u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}
+ (( u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[2];\
+ (( u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\
+ (( u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}
#define ACPI_MOVE_32_TO_64(d, s) {(*(u64 *)(void *)(d))=0;\
((u8 *)(void *)(d))[4] = ((u8 *)(void *)(s))[3];\
@@ -196,24 +204,12 @@
#endif
#endif
-/* Macros based on machine integer width */
-
-#if ACPI_MACHINE_WIDTH == 32
-#define ACPI_MOVE_SIZE_TO_16(d, s) ACPI_MOVE_32_TO_16(d, s)
-
-#elif ACPI_MACHINE_WIDTH == 64
-#define ACPI_MOVE_SIZE_TO_16(d, s) ACPI_MOVE_64_TO_16(d, s)
-
-#else
-#error unknown ACPI_MACHINE_WIDTH
-#endif
-
/*
* Fast power-of-two math macros for non-optimized compilers
*/
-#define _ACPI_DIV(value, power_of2) ((u32) ((value) >> (power_of2)))
-#define _ACPI_MUL(value, power_of2) ((u32) ((value) << (power_of2)))
-#define _ACPI_MOD(value, divisor) ((u32) ((value) & ((divisor) -1)))
+#define _ACPI_DIV(value, power_of2) ((u32) ((value) >> (power_of2)))
+#define _ACPI_MUL(value, power_of2) ((u32) ((value) << (power_of2)))
+#define _ACPI_MOD(value, divisor) ((u32) ((value) & ((divisor) -1)))
#define ACPI_DIV_2(a) _ACPI_DIV(a, 1)
#define ACPI_MUL_2(a) _ACPI_MUL(a, 1)
@@ -238,12 +234,12 @@
/*
* Rounding macros (Power of two boundaries only)
*/
-#define ACPI_ROUND_DOWN(value, boundary) (((acpi_size)(value)) & \
- (~(((acpi_size) boundary)-1)))
+#define ACPI_ROUND_DOWN(value, boundary) (((acpi_size)(value)) & \
+ (~(((acpi_size) boundary)-1)))
-#define ACPI_ROUND_UP(value, boundary) ((((acpi_size)(value)) + \
- (((acpi_size) boundary)-1)) & \
- (~(((acpi_size) boundary)-1)))
+#define ACPI_ROUND_UP(value, boundary) ((((acpi_size)(value)) + \
+ (((acpi_size) boundary)-1)) & \
+ (~(((acpi_size) boundary)-1)))
/* Note: sizeof(acpi_size) evaluates to either 4 or 8 (32- vs 64-bit mode) */
@@ -264,7 +260,7 @@
#define ACPI_ROUND_UP_TO(value, boundary) (((value) + ((boundary)-1)) / (boundary))
-#define ACPI_IS_MISALIGNED(value) (((acpi_size) value) & (sizeof(acpi_size)-1))
+#define ACPI_IS_MISALIGNED(value) (((acpi_size) value) & (sizeof(acpi_size)-1))
/*
* Bitmask creation
@@ -272,29 +268,70 @@
* MASK_BITS_ABOVE creates a mask starting AT the position and above
* MASK_BITS_BELOW creates a mask starting one bit BELOW the position
*/
-#define ACPI_MASK_BITS_ABOVE(position) (~((ACPI_INTEGER_MAX) << ((u32) (position))))
-#define ACPI_MASK_BITS_BELOW(position) ((ACPI_INTEGER_MAX) << ((u32) (position)))
+#define ACPI_MASK_BITS_ABOVE(position) (~((ACPI_UINT64_MAX) << ((u32) (position))))
+#define ACPI_MASK_BITS_BELOW(position) ((ACPI_UINT64_MAX) << ((u32) (position)))
/* Bitfields within ACPI registers */
-#define ACPI_REGISTER_PREPARE_BITS(val, pos, mask) ((val << pos) & mask)
-#define ACPI_REGISTER_INSERT_VALUE(reg, pos, mask, val) reg = (reg & (~(mask))) | ACPI_REGISTER_PREPARE_BITS(val, pos, mask)
+#define ACPI_REGISTER_PREPARE_BITS(val, pos, mask) \
+ ((val << pos) & mask)
+
+#define ACPI_REGISTER_INSERT_VALUE(reg, pos, mask, val) \
+ reg = (reg & (~(mask))) | ACPI_REGISTER_PREPARE_BITS(val, pos, mask)
+
+#define ACPI_INSERT_BITS(target, mask, source) \
+ target = ((target & (~(mask))) | (source & mask))
+
+/* Generic bitfield macros and masks */
+
+#define ACPI_GET_BITS(source_ptr, position, mask) \
+ ((*source_ptr >> position) & mask)
+
+#define ACPI_SET_BITS(target_ptr, position, mask, value) \
+ (*target_ptr |= ((value & mask) << position))
+
+#define ACPI_1BIT_MASK 0x00000001
+#define ACPI_2BIT_MASK 0x00000003
+#define ACPI_3BIT_MASK 0x00000007
+#define ACPI_4BIT_MASK 0x0000000F
+#define ACPI_5BIT_MASK 0x0000001F
+#define ACPI_6BIT_MASK 0x0000003F
+#define ACPI_7BIT_MASK 0x0000007F
+#define ACPI_8BIT_MASK 0x000000FF
+#define ACPI_16BIT_MASK 0x0000FFFF
+#define ACPI_24BIT_MASK 0x00FFFFFF
-#define ACPI_INSERT_BITS(target, mask, source) target = ((target & (~(mask))) | (source & mask))
+/* Macros to extract flag bits from position zero */
+
+#define ACPI_GET_1BIT_FLAG(value) ((value) & ACPI_1BIT_MASK)
+#define ACPI_GET_2BIT_FLAG(value) ((value) & ACPI_2BIT_MASK)
+#define ACPI_GET_3BIT_FLAG(value) ((value) & ACPI_3BIT_MASK)
+#define ACPI_GET_4BIT_FLAG(value) ((value) & ACPI_4BIT_MASK)
+
+/* Macros to extract flag bits from position one and above */
+
+#define ACPI_EXTRACT_1BIT_FLAG(field, position) (ACPI_GET_1BIT_FLAG ((field) >> position))
+#define ACPI_EXTRACT_2BIT_FLAG(field, position) (ACPI_GET_2BIT_FLAG ((field) >> position))
+#define ACPI_EXTRACT_3BIT_FLAG(field, position) (ACPI_GET_3BIT_FLAG ((field) >> position))
+#define ACPI_EXTRACT_4BIT_FLAG(field, position) (ACPI_GET_4BIT_FLAG ((field) >> position))
+
+/* ACPI Pathname helpers */
+
+#define ACPI_IS_ROOT_PREFIX(c) ((c) == (u8) 0x5C) /* Backslash */
+#define ACPI_IS_PARENT_PREFIX(c) ((c) == (u8) 0x5E) /* Carat */
+#define ACPI_IS_PATH_SEPARATOR(c) ((c) == (u8) 0x2E) /* Period (dot) */
/*
- * A struct acpi_namespace_node can appear in some contexts
- * where a pointer to a union acpi_operand_object can also
+ * An object of type struct acpi_namespace_node can appear in some contexts
+ * where a pointer to an object of type union acpi_operand_object can also
* appear. This macro is used to distinguish them.
*
- * The "Descriptor" field is the first field in both structures.
+ * The "DescriptorType" field is the second field in both structures.
*/
+#define ACPI_GET_DESCRIPTOR_PTR(d) (((union acpi_descriptor *)(void *)(d))->common.common_pointer)
+#define ACPI_SET_DESCRIPTOR_PTR(d, p) (((union acpi_descriptor *)(void *)(d))->common.common_pointer = (p))
#define ACPI_GET_DESCRIPTOR_TYPE(d) (((union acpi_descriptor *)(void *)(d))->common.descriptor_type)
-#define ACPI_SET_DESCRIPTOR_TYPE(d, t) (((union acpi_descriptor *)(void *)(d))->common.descriptor_type = t)
-
-/* Macro to test the object type */
-
-#define ACPI_GET_OBJECT_TYPE(d) (((union acpi_operand_object *)(void *)(d))->common.type)
+#define ACPI_SET_DESCRIPTOR_TYPE(d, t) (((union acpi_descriptor *)(void *)(d))->common.descriptor_type = (t))
/*
* Macros for the master AML opcode table
@@ -336,14 +373,16 @@
* Ascii error messages can be configured out
*/
#ifndef ACPI_NO_ERROR_MESSAGES
-
/*
* Error reporting. Callers module and line number are inserted by AE_INFO,
* the plist contains a set of parens to allow variable-length lists.
* These macros are used for both the debug and non-debug versions of the code.
*/
-#define ACPI_ERROR_NAMESPACE(s, e) acpi_ns_report_error (AE_INFO, s, e);
-#define ACPI_ERROR_METHOD(s, n, p, e) acpi_ns_report_method_error (AE_INFO, s, n, p, e);
+#define ACPI_ERROR_NAMESPACE(s, e) acpi_ut_namespace_error (AE_INFO, s, e);
+#define ACPI_ERROR_METHOD(s, n, p, e) acpi_ut_method_error (AE_INFO, s, n, p, e);
+#define ACPI_WARN_PREDEFINED(plist) acpi_ut_predefined_warning plist
+#define ACPI_INFO_PREDEFINED(plist) acpi_ut_predefined_info plist
+#define ACPI_BIOS_ERROR_PREDEFINED(plist) acpi_ut_predefined_bios_error plist
#else
@@ -351,170 +390,18 @@
#define ACPI_ERROR_NAMESPACE(s, e)
#define ACPI_ERROR_METHOD(s, n, p, e)
-#endif /* ACPI_NO_ERROR_MESSAGES */
-
-/*
- * Debug macros that are conditionally compiled
- */
-#ifdef ACPI_DEBUG_OUTPUT
-
-/*
- * Function entry tracing
- */
-#ifdef CONFIG_ACPI_DEBUG_FUNC_TRACE
+#define ACPI_WARN_PREDEFINED(plist)
+#define ACPI_INFO_PREDEFINED(plist)
+#define ACPI_BIOS_ERROR_PREDEFINED(plist)
-#define ACPI_FUNCTION_TRACE(a) ACPI_FUNCTION_NAME(a) \
- acpi_ut_trace(ACPI_DEBUG_PARAMETERS)
-#define ACPI_FUNCTION_TRACE_PTR(a, b) ACPI_FUNCTION_NAME(a) \
- acpi_ut_trace_ptr(ACPI_DEBUG_PARAMETERS, (void *)b)
-#define ACPI_FUNCTION_TRACE_U32(a, b) ACPI_FUNCTION_NAME(a) \
- acpi_ut_trace_u32(ACPI_DEBUG_PARAMETERS, (u32)b)
-#define ACPI_FUNCTION_TRACE_STR(a, b) ACPI_FUNCTION_NAME(a) \
- acpi_ut_trace_str(ACPI_DEBUG_PARAMETERS, (char *)b)
+#endif /* ACPI_NO_ERROR_MESSAGES */
-#define ACPI_FUNCTION_ENTRY() acpi_ut_track_stack_ptr()
-
-/*
- * Function exit tracing.
- * WARNING: These macros include a return statement. This is usually considered
- * bad form, but having a separate exit macro is very ugly and difficult to maintain.
- * One of the FUNCTION_TRACE macros above must be used in conjunction with these macros
- * so that "_AcpiFunctionName" is defined.
- *
- * Note: the DO_WHILE0 macro is used to prevent some compilers from complaining
- * about these constructs.
- */
-#ifdef ACPI_USE_DO_WHILE_0
-#define ACPI_DO_WHILE0(a) do a while(0)
+#if (!ACPI_REDUCED_HARDWARE)
+#define ACPI_HW_OPTIONAL_FUNCTION(addr) addr
#else
-#define ACPI_DO_WHILE0(a) a
+#define ACPI_HW_OPTIONAL_FUNCTION(addr) NULL
#endif
-#define return_VOID ACPI_DO_WHILE0 ({ \
- acpi_ut_exit (ACPI_DEBUG_PARAMETERS); \
- return;})
-/*
- * There are two versions of most of the return macros. The default version is
- * safer, since it avoids side-effects by guaranteeing that the argument will
- * not be evaluated twice.
- *
- * A less-safe version of the macros is provided for optional use if the
- * compiler uses excessive CPU stack (for example, this may happen in the
- * debug case if code optimzation is disabled.)
- */
-#ifndef ACPI_SIMPLE_RETURN_MACROS
-
-#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({ \
- register acpi_status _s = (s); \
- acpi_ut_status_exit (ACPI_DEBUG_PARAMETERS, _s); \
- return (_s); })
-#define return_PTR(s) ACPI_DO_WHILE0 ({ \
- register void *_s = (void *) (s); \
- acpi_ut_ptr_exit (ACPI_DEBUG_PARAMETERS, (u8 *) _s); \
- return (_s); })
-#define return_VALUE(s) ACPI_DO_WHILE0 ({ \
- register acpi_integer _s = (s); \
- acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, _s); \
- return (_s); })
-#define return_UINT8(s) ACPI_DO_WHILE0 ({ \
- register u8 _s = (u8) (s); \
- acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, (acpi_integer) _s); \
- return (_s); })
-#define return_UINT32(s) ACPI_DO_WHILE0 ({ \
- register u32 _s = (u32) (s); \
- acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, (acpi_integer) _s); \
- return (_s); })
-#else /* Use original less-safe macros */
-
-#define return_ACPI_STATUS(s) ACPI_DO_WHILE0 ({ \
- acpi_ut_status_exit (ACPI_DEBUG_PARAMETERS, (s)); \
- return((s)); })
-#define return_PTR(s) ACPI_DO_WHILE0 ({ \
- acpi_ut_ptr_exit (ACPI_DEBUG_PARAMETERS, (u8 *) (s)); \
- return((s)); })
-#define return_VALUE(s) ACPI_DO_WHILE0 ({ \
- acpi_ut_value_exit (ACPI_DEBUG_PARAMETERS, (acpi_integer) (s)); \
- return((s)); })
-#define return_UINT8(s) return_VALUE(s)
-#define return_UINT32(s) return_VALUE(s)
-
-#endif /* ACPI_SIMPLE_RETURN_MACROS */
-
-#else /* !CONFIG_ACPI_DEBUG_FUNC_TRACE */
-
-#define ACPI_FUNCTION_TRACE(a)
-#define ACPI_FUNCTION_TRACE_PTR(a,b)
-#define ACPI_FUNCTION_TRACE_U32(a,b)
-#define ACPI_FUNCTION_TRACE_STR(a,b)
-#define ACPI_FUNCTION_EXIT
-#define ACPI_FUNCTION_STATUS_EXIT(s)
-#define ACPI_FUNCTION_VALUE_EXIT(s)
-#define ACPI_FUNCTION_TRACE(a)
-#define ACPI_FUNCTION_ENTRY()
-
-#define return_VOID return
-#define return_ACPI_STATUS(s) return(s)
-#define return_VALUE(s) return(s)
-#define return_UINT8(s) return(s)
-#define return_UINT32(s) return(s)
-#define return_PTR(s) return(s)
-
-#endif /* CONFIG_ACPI_DEBUG_FUNC_TRACE */
-
-/* Conditional execution */
-
-#define ACPI_DEBUG_EXEC(a) a
-#define ACPI_NORMAL_EXEC(a)
-
-#define ACPI_DEBUG_DEFINE(a) a;
-#define ACPI_DEBUG_ONLY_MEMBERS(a) a;
-#define _VERBOSE_STRUCTURES
-
-/* Stack and buffer dumping */
-
-#define ACPI_DUMP_STACK_ENTRY(a) acpi_ex_dump_operand((a), 0)
-#define ACPI_DUMP_OPERANDS(a, b, c) acpi_ex_dump_operands(a, b, c)
-
-#define ACPI_DUMP_ENTRY(a, b) acpi_ns_dump_entry (a, b)
-#define ACPI_DUMP_PATHNAME(a, b, c, d) acpi_ns_dump_pathname(a, b, c, d)
-#define ACPI_DUMP_RESOURCE_LIST(a) acpi_rs_dump_resource_list(a)
-#define ACPI_DUMP_BUFFER(a, b) acpi_ut_dump_buffer((u8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT)
-
-#else
-/*
- * This is the non-debug case -- make everything go away,
- * leaving no executable debug code!
- */
-#define ACPI_DEBUG_EXEC(a)
-#define ACPI_NORMAL_EXEC(a) a;
-
-#define ACPI_DEBUG_DEFINE(a) do { } while(0)
-#define ACPI_DEBUG_ONLY_MEMBERS(a) do { } while(0)
-#define ACPI_FUNCTION_TRACE(a) do { } while(0)
-#define ACPI_FUNCTION_TRACE_PTR(a, b) do { } while(0)
-#define ACPI_FUNCTION_TRACE_U32(a, b) do { } while(0)
-#define ACPI_FUNCTION_TRACE_STR(a, b) do { } while(0)
-#define ACPI_FUNCTION_EXIT do { } while(0)
-#define ACPI_FUNCTION_STATUS_EXIT(s) do { } while(0)
-#define ACPI_FUNCTION_VALUE_EXIT(s) do { } while(0)
-#define ACPI_FUNCTION_ENTRY() do { } while(0)
-#define ACPI_DUMP_STACK_ENTRY(a) do { } while(0)
-#define ACPI_DUMP_OPERANDS(a, b, c) do { } while(0)
-#define ACPI_DUMP_ENTRY(a, b) do { } while(0)
-#define ACPI_DUMP_TABLES(a, b) do { } while(0)
-#define ACPI_DUMP_PATHNAME(a, b, c, d) do { } while(0)
-#define ACPI_DUMP_RESOURCE_LIST(a) do { } while(0)
-#define ACPI_DUMP_BUFFER(a, b) do { } while(0)
-
-#define return_VOID return
-#define return_ACPI_STATUS(s) return(s)
-#define return_VALUE(s) return(s)
-#define return_UINT8(s) return(s)
-#define return_UINT32(s) return(s)
-#define return_PTR(s) return(s)
-
-#endif /* ACPI_DEBUG_OUTPUT */
-
/*
* Some code only gets executed when the debugger is built in.
* Note that this is entirely independent of whether the
@@ -526,52 +413,18 @@
#define ACPI_DEBUGGER_EXEC(a)
#endif
-#ifdef ACPI_DEBUG_OUTPUT
-/*
- * 1) Set name to blanks
- * 2) Copy the object name
- */
-#define ACPI_ADD_OBJECT_NAME(a,b) ACPI_MEMSET (a->common.name, ' ', sizeof (a->common.name));\
- ACPI_STRNCPY (a->common.name, acpi_gbl_ns_type_names[b], sizeof (a->common.name))
-#else
-
-#define ACPI_ADD_OBJECT_NAME(a,b)
-#endif
-
/*
- * Memory allocation tracking (DEBUG ONLY)
+ * Macros used for ACPICA utilities only
*/
-#define ACPI_MEM_PARAMETERS _COMPONENT, _acpi_module_name, __LINE__
-
-#ifndef ACPI_DBG_TRACK_ALLOCATIONS
-
-/* Memory allocation */
-
-#ifndef ACPI_ALLOCATE
-#define ACPI_ALLOCATE(a) acpi_ut_allocate((acpi_size)(a), ACPI_MEM_PARAMETERS)
-#endif
-#ifndef ACPI_ALLOCATE_ZEROED
-#define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed((acpi_size)(a), ACPI_MEM_PARAMETERS)
-#endif
-#ifndef ACPI_FREE
-#define ACPI_FREE(a) acpio_os_free(a)
-#endif
-#define ACPI_MEM_TRACKING(a)
-#else
+/* Generate a UUID */
-/* Memory allocation */
+#define ACPI_INIT_UUID(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
+ (a) & 0xFF, ((a) >> 8) & 0xFF, ((a) >> 16) & 0xFF, ((a) >> 24) & 0xFF, \
+ (b) & 0xFF, ((b) >> 8) & 0xFF, \
+ (c) & 0xFF, ((c) >> 8) & 0xFF, \
+ (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7)
-#define ACPI_ALLOCATE(a) acpi_ut_allocate_and_track((acpi_size)(a), ACPI_MEM_PARAMETERS)
-#define ACPI_ALLOCATE_ZEROED(a) acpi_ut_allocate_zeroed_and_track((acpi_size)(a), ACPI_MEM_PARAMETERS)
-#define ACPI_FREE(a) acpi_ut_free_and_track(a, ACPI_MEM_PARAMETERS)
-#define ACPI_MEM_TRACKING(a) a
-
-#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
-
-/* Preemption point */
-#ifndef ACPI_PREEMPTION_POINT
-#define ACPI_PREEMPTION_POINT() /* no preemption */
-#endif
+#define ACPI_IS_OCTAL_DIGIT(d) (((char)(d) >= '0') && ((char)(d) <= '7'))
#endif /* ACMACROS_H */
diff --git a/drivers/acpi/acpica/acnamesp.h b/drivers/acpi/acpica/acnamesp.h
index 46cb5b46d28..ee1c040f321 100644
--- a/drivers/acpi/acpica/acnamesp.h
+++ b/drivers/acpi/acpica/acnamesp.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -73,6 +73,14 @@
#define ACPI_NS_WALK_UNLOCK 0x01
#define ACPI_NS_WALK_TEMP_NODES 0x02
+/* Object is not a package element */
+
+#define ACPI_NOT_PACKAGE_ELEMENT ACPI_UINT32_MAX
+
+/* Always emit warning message, not dependent on node flags */
+
+#define ACPI_WARN_ALWAYS 0
+
/*
* nsinit - Namespace initialization
*/
@@ -96,13 +104,23 @@ acpi_ns_walk_namespace(acpi_object_type type,
acpi_handle start_object,
u32 max_depth,
u32 flags,
- acpi_walk_callback user_function,
+ acpi_walk_callback descending_callback,
+ acpi_walk_callback ascending_callback,
void *context, void **return_value);
-struct acpi_namespace_node *acpi_ns_get_next_node(acpi_object_type type, struct acpi_namespace_node
- *parent, struct acpi_namespace_node
+struct acpi_namespace_node *acpi_ns_get_next_node(struct acpi_namespace_node
+ *parent,
+ struct acpi_namespace_node
*child);
+struct acpi_namespace_node *acpi_ns_get_next_node_typed(acpi_object_type type,
+ struct
+ acpi_namespace_node
+ *parent,
+ struct
+ acpi_namespace_node
+ *child);
+
/*
* nsparse - table parsing
*/
@@ -135,6 +153,8 @@ struct acpi_namespace_node *acpi_ns_create_node(u32 name);
void acpi_ns_delete_node(struct acpi_namespace_node *node);
+void acpi_ns_remove_node(struct acpi_namespace_node *node);
+
void
acpi_ns_delete_namespace_subtree(struct acpi_namespace_node *parent_handle);
@@ -147,6 +167,29 @@ void acpi_ns_delete_children(struct acpi_namespace_node *parent);
int acpi_ns_compare_names(char *name1, char *name2);
/*
+ * nsconvert - Dynamic object conversion routines
+ */
+acpi_status
+acpi_ns_convert_to_integer(union acpi_operand_object *original_object,
+ union acpi_operand_object **return_object);
+
+acpi_status
+acpi_ns_convert_to_string(union acpi_operand_object *original_object,
+ union acpi_operand_object **return_object);
+
+acpi_status
+acpi_ns_convert_to_buffer(union acpi_operand_object *original_object,
+ union acpi_operand_object **return_object);
+
+acpi_status
+acpi_ns_convert_to_unicode(union acpi_operand_object *original_object,
+ union acpi_operand_object **return_object);
+
+acpi_status
+acpi_ns_convert_to_resource(union acpi_operand_object *original_object,
+ union acpi_operand_object **return_object);
+
+/*
* nsdump - Namespace dump/print utilities
*/
#ifdef ACPI_FUTURE_USAGE
@@ -170,6 +213,12 @@ acpi_ns_dump_objects(acpi_object_type type,
u8 display_type,
u32 max_depth,
acpi_owner_id owner_id, acpi_handle start_handle);
+
+void
+acpi_ns_dump_object_paths(acpi_object_type type,
+ u8 display_type,
+ u32 max_depth,
+ acpi_owner_id owner_id, acpi_handle start_handle);
#endif /* ACPI_FUTURE_USAGE */
/*
@@ -177,24 +226,45 @@ acpi_ns_dump_objects(acpi_object_type type,
*/
acpi_status acpi_ns_evaluate(struct acpi_evaluate_info *info);
+void acpi_ns_exec_module_code_list(void);
+
/*
- * nspredef - Support for predefined/reserved names
+ * nsarguments - Argument count/type checking for predefined/reserved names
*/
-acpi_status
-acpi_ns_check_predefined_names(struct acpi_namespace_node *node,
- u32 user_param_count,
- acpi_status return_status,
- union acpi_operand_object **return_object);
-
-const union acpi_predefined_info *acpi_ns_check_for_predefined_name(struct
- acpi_namespace_node
- *node);
+void
+acpi_ns_check_argument_count(char *pathname,
+ struct acpi_namespace_node *node,
+ u32 user_param_count,
+ const union acpi_predefined_info *info);
void
-acpi_ns_check_parameter_count(char *pathname,
+acpi_ns_check_acpi_compliance(char *pathname,
struct acpi_namespace_node *node,
- u32 user_param_count,
- const union acpi_predefined_info *info);
+ const union acpi_predefined_info *predefined);
+
+void acpi_ns_check_argument_types(struct acpi_evaluate_info *info);
+
+/*
+ * nspredef - Return value checking for predefined/reserved names
+ */
+acpi_status
+acpi_ns_check_return_value(struct acpi_namespace_node *node,
+ struct acpi_evaluate_info *info,
+ u32 user_param_count,
+ acpi_status return_status,
+ union acpi_operand_object **return_object);
+
+acpi_status
+acpi_ns_check_object_type(struct acpi_evaluate_info *info,
+ union acpi_operand_object **return_object_ptr,
+ u32 expected_btypes, u32 package_index);
+
+/*
+ * nsprepkg - Validation of predefined name packages
+ */
+acpi_status
+acpi_ns_check_package(struct acpi_evaluate_info *info,
+ union acpi_operand_object **return_object_ptr);
/*
* nsnames - Name and Scope manipulation
@@ -251,6 +321,42 @@ acpi_ns_get_attached_data(struct acpi_namespace_node *node,
acpi_object_handler handler, void **data);
/*
+ * nsrepair - General return object repair for all
+ * predefined methods/objects
+ */
+acpi_status
+acpi_ns_simple_repair(struct acpi_evaluate_info *info,
+ u32 expected_btypes,
+ u32 package_index,
+ union acpi_operand_object **return_object_ptr);
+
+acpi_status
+acpi_ns_wrap_with_package(struct acpi_evaluate_info *info,
+ union acpi_operand_object *original_object,
+ union acpi_operand_object **obj_desc_ptr);
+
+acpi_status
+acpi_ns_repair_null_element(struct acpi_evaluate_info *info,
+ u32 expected_btypes,
+ u32 package_index,
+ union acpi_operand_object **return_object_ptr);
+
+void
+acpi_ns_remove_null_elements(struct acpi_evaluate_info *info,
+ u8 package_type,
+ union acpi_operand_object *obj_desc);
+
+/*
+ * nsrepair2 - Return object repair for specific
+ * predefined methods/objects
+ */
+acpi_status
+acpi_ns_complex_repairs(struct acpi_evaluate_info *info,
+ struct acpi_namespace_node *node,
+ acpi_status validate_status,
+ union acpi_operand_object **return_object_ptr);
+
+/*
* nssearch - Namespace searching and entry
*/
acpi_status
@@ -275,25 +381,11 @@ acpi_ns_install_node(struct acpi_walk_state *walk_state,
/*
* nsutils - Utility functions
*/
-u8 acpi_ns_valid_root_prefix(char prefix);
-
acpi_object_type acpi_ns_get_type(struct acpi_namespace_node *node);
u32 acpi_ns_local(acpi_object_type type);
void
-acpi_ns_report_error(const char *module_name,
- u32 line_number,
- const char *internal_name, acpi_status lookup_status);
-
-void
-acpi_ns_report_method_error(const char *module_name,
- u32 line_number,
- const char *message,
- struct acpi_namespace_node *node,
- const char *path, acpi_status lookup_status);
-
-void
acpi_ns_print_node_pathname(struct acpi_namespace_node *node, const char *msg);
acpi_status acpi_ns_build_internal_name(struct acpi_namestring_info *info);
@@ -308,17 +400,8 @@ acpi_ns_externalize_name(u32 internal_name_length,
const char *internal_name,
u32 * converted_name_length, char **converted_name);
-struct acpi_namespace_node *acpi_ns_map_handle_to_node(acpi_handle handle);
-
-acpi_handle acpi_ns_convert_entry_to_handle(struct acpi_namespace_node *node);
+struct acpi_namespace_node *acpi_ns_validate_handle(acpi_handle handle);
void acpi_ns_terminate(void);
-struct acpi_namespace_node *acpi_ns_get_parent_node(struct acpi_namespace_node
- *node);
-
-struct acpi_namespace_node *acpi_ns_get_next_valid_node(struct
- acpi_namespace_node
- *node);
-
#endif /* __ACNAMESP_H__ */
diff --git a/drivers/acpi/acpica/acobject.h b/drivers/acpi/acpica/acobject.h
index eb6f038b03d..22fb6449d3d 100644
--- a/drivers/acpi/acpica/acobject.h
+++ b/drivers/acpi/acpica/acobject.h
@@ -1,4 +1,3 @@
-
/******************************************************************************
*
* Name: acobject.h - Definition of union acpi_operand_object (Internal object only)
@@ -6,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -91,13 +90,12 @@
/* Values for Flag byte above */
-#define AOPOBJ_AML_CONSTANT 0x01
-#define AOPOBJ_STATIC_POINTER 0x02
-#define AOPOBJ_DATA_VALID 0x04
-#define AOPOBJ_OBJECT_INITIALIZED 0x08
-#define AOPOBJ_SETUP_COMPLETE 0x10
-#define AOPOBJ_SINGLE_DATUM 0x20
-#define AOPOBJ_INVALID 0x40 /* Used if host OS won't allow an op_region address */
+#define AOPOBJ_AML_CONSTANT 0x01 /* Integer is an AML constant */
+#define AOPOBJ_STATIC_POINTER 0x02 /* Data is part of an ACPI table, don't delete */
+#define AOPOBJ_DATA_VALID 0x04 /* Object is initialized and data is valid */
+#define AOPOBJ_OBJECT_INITIALIZED 0x08 /* Region is initialized, _REG was run */
+#define AOPOBJ_SETUP_COMPLETE 0x10 /* Region setup is complete */
+#define AOPOBJ_INVALID 0x20 /* Host OS won't allow a Region address */
/******************************************************************************
*
@@ -110,12 +108,12 @@ ACPI_OBJECT_COMMON_HEADER};
struct acpi_object_integer {
ACPI_OBJECT_COMMON_HEADER u8 fill[3]; /* Prevent warning on some compilers */
- acpi_integer value;
+ u64 value;
};
/*
- * Note: The String and Buffer object must be identical through the Pointer
- * and length elements. There is code that depends on this.
+ * Note: The String and Buffer object must be identical through the
+ * pointer and length elements. There is code that depends on this.
*
* Fields common to both Strings and Buffers
*/
@@ -174,20 +172,33 @@ struct acpi_object_region {
};
struct acpi_object_method {
- ACPI_OBJECT_COMMON_HEADER u8 method_flags;
+ ACPI_OBJECT_COMMON_HEADER u8 info_flags;
u8 param_count;
u8 sync_level;
union acpi_operand_object *mutex;
u8 *aml_start;
- ACPI_INTERNAL_METHOD implementation;
+ union {
+ acpi_internal_method implementation;
+ union acpi_operand_object *handler;
+ } dispatch;
+
u32 aml_length;
u8 thread_count;
acpi_owner_id owner_id;
};
+/* Flags for info_flags field above */
+
+#define ACPI_METHOD_MODULE_LEVEL 0x01 /* Method is actually module-level code */
+#define ACPI_METHOD_INTERNAL_ONLY 0x02 /* Method is implemented internally (_OSI) */
+#define ACPI_METHOD_SERIALIZED 0x04 /* Method is serialized */
+#define ACPI_METHOD_SERIALIZED_PENDING 0x08 /* Method is to be marked serialized */
+#define ACPI_METHOD_IGNORE_SYNC_LEVEL 0x10 /* Method was auto-serialized at table load time */
+#define ACPI_METHOD_MODIFIED_NAMESPACE 0x20 /* Method modified the namespace */
+
/******************************************************************************
*
- * Objects that can be notified. All share a common notify_info area.
+ * Objects that can be notified. All share a common notify_info area.
*
*****************************************************************************/
@@ -195,8 +206,7 @@ struct acpi_object_method {
* Common fields for objects that support ASL notifications
*/
#define ACPI_COMMON_NOTIFY_INFO \
- union acpi_operand_object *system_notify; /* Handler for system notifies */\
- union acpi_operand_object *device_notify; /* Handler for driver notifies */\
+ union acpi_operand_object *notify_list[2]; /* Handlers for system/device notifies */\
union acpi_operand_object *handler; /* Handler for Address space */
struct acpi_object_notify_common { /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */
@@ -225,7 +235,7 @@ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO};
/******************************************************************************
*
- * Fields. All share a common header/info field.
+ * Fields. All share a common header/info field.
*
*****************************************************************************/
@@ -243,14 +253,17 @@ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO};
u32 base_byte_offset; /* Byte offset within containing object */\
u32 value; /* Value to store into the Bank or Index register */\
u8 start_field_bit_offset;/* Bit offset within first field datum (0-63) */\
- u8 access_bit_width; /* Read/Write size in bits (8-64) */
+ u8 access_length; /* For serial regions/fields */
+
struct acpi_object_field_common { /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *region_obj; /* Parent Operation Region object (REGION/BANK fields only) */
};
struct acpi_object_region_field {
- ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *region_obj; /* Containing op_region object */
+ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO u16 resource_length;
+ union acpi_operand_object *region_obj; /* Containing op_region object */
+ u8 *resource_buffer; /* resource_template for serial regions/fields */
};
struct acpi_object_bank_field {
@@ -282,8 +295,10 @@ struct acpi_object_buffer_field {
struct acpi_object_notify_handler {
ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *node; /* Parent device */
- acpi_notify_handler handler;
+ u32 handler_type; /* Type: Device/System/Both */
+ acpi_notify_handler handler; /* Handler address */
void *context;
+ union acpi_operand_object *next[2]; /* Device and System handler lists */
};
struct acpi_object_addr_handler {
@@ -293,7 +308,7 @@ struct acpi_object_addr_handler {
struct acpi_namespace_node *node; /* Parent device */
void *context;
acpi_adr_space_setup setup;
- union acpi_operand_object *region_list; /* regions using this handler */
+ union acpi_operand_object *region_list; /* Regions using this handler */
union acpi_operand_object *next;
};
@@ -345,6 +360,7 @@ typedef enum {
*/
struct acpi_object_extra {
ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *method_REG; /* _REG method for this region (if any) */
+ struct acpi_namespace_node *scope_node;
void *region_context; /* Region-specific data */
u8 *aml_start;
u32 aml_length;
@@ -365,7 +381,7 @@ struct acpi_object_cache_list {
/******************************************************************************
*
- * union acpi_operand_object Descriptor - a giant union of all of the above
+ * union acpi_operand_object descriptor - a giant union of all of the above
*
*****************************************************************************/
diff --git a/drivers/acpi/acpica/acopcode.h b/drivers/acpi/acpica/acopcode.h
index dfdf6332788..dda0e6affcf 100644
--- a/drivers/acpi/acpica/acopcode.h
+++ b/drivers/acpi/acpica/acopcode.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -54,7 +54,7 @@
#define _UNK 0x6B
/*
- * Reserved ASCII characters. Do not use any of these for
+ * Reserved ASCII characters. Do not use any of these for
* internal opcodes, since they are used to differentiate
* name strings from AML opcodes
*/
@@ -63,7 +63,7 @@
#define _PFX 0x6D
/*
- * All AML opcodes and the parse-time arguments for each. Used by the AML
+ * All AML opcodes and the parse-time arguments for each. Used by the AML
* parser Each list is compressed into a 32-bit number and stored in the
* master opcode table (in psopcode.c).
*/
@@ -93,6 +93,7 @@
#define ARGP_CONCAT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
#define ARGP_CONCAT_RES_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
#define ARGP_COND_REF_OF_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_SUPERNAME)
+#define ARGP_CONNECTFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
#define ARGP_CONTINUE_OP ARG_NONE
#define ARGP_COPY_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_SIMPLENAME)
#define ARGP_CREATE_BIT_FIELD_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_NAME)
@@ -164,6 +165,7 @@
#define ARGP_RETURN_OP ARGP_LIST1 (ARGP_TERMARG)
#define ARGP_REVISION_OP ARG_NONE
#define ARGP_SCOPE_OP ARGP_LIST3 (ARGP_PKGLENGTH, ARGP_NAME, ARGP_TERMLIST)
+#define ARGP_SERIALFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
#define ARGP_SHIFT_LEFT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
#define ARGP_SHIFT_RIGHT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
#define ARGP_SIGNAL_OP ARGP_LIST1 (ARGP_SUPERNAME)
@@ -191,7 +193,7 @@
#define ARGP_ZERO_OP ARG_NONE
/*
- * All AML opcodes and the runtime arguments for each. Used by the AML
+ * All AML opcodes and the runtime arguments for each. Used by the AML
* interpreter Each list is compressed into a 32-bit number and stored
* in the master opcode table (in psopcode.c).
*
@@ -223,6 +225,7 @@
#define ARGI_CONCAT_OP ARGI_LIST3 (ARGI_COMPUTEDATA,ARGI_COMPUTEDATA, ARGI_TARGETREF)
#define ARGI_CONCAT_RES_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_BUFFER, ARGI_TARGETREF)
#define ARGI_COND_REF_OF_OP ARGI_LIST2 (ARGI_OBJECT_REF, ARGI_TARGETREF)
+#define ARGI_CONNECTFIELD_OP ARGI_INVALID_OPCODE
#define ARGI_CONTINUE_OP ARGI_INVALID_OPCODE
#define ARGI_COPY_OP ARGI_LIST2 (ARGI_ANYTYPE, ARGI_SIMPLE_TARGET)
#define ARGI_CREATE_BIT_FIELD_OP ARGI_LIST3 (ARGI_BUFFER, ARGI_INTEGER, ARGI_REFERENCE)
@@ -294,6 +297,7 @@
#define ARGI_RETURN_OP ARGI_INVALID_OPCODE
#define ARGI_REVISION_OP ARG_NONE
#define ARGI_SCOPE_OP ARGI_INVALID_OPCODE
+#define ARGI_SERIALFIELD_OP ARGI_INVALID_OPCODE
#define ARGI_SHIFT_LEFT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
#define ARGI_SHIFT_RIGHT_OP ARGI_LIST3 (ARGI_INTEGER, ARGI_INTEGER, ARGI_TARGETREF)
#define ARGI_SIGNAL_OP ARGI_LIST1 (ARGI_EVENT)
diff --git a/drivers/acpi/acpica/acparser.h b/drivers/acpi/acpica/acparser.h
index 23ee0fbf561..6168b85463e 100644
--- a/drivers/acpi/acpica/acparser.h
+++ b/drivers/acpi/acpica/acparser.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -62,6 +62,8 @@
#define ACPI_PARSE_DEFERRED_OP 0x0100
#define ACPI_PARSE_DISASSEMBLE 0x0200
+#define ACPI_PARSE_MODULE_LEVEL 0x0400
+
/******************************************************************************
*
* Parser interfaces
@@ -103,7 +105,28 @@ union acpi_parse_object *acpi_ps_find_name(union acpi_parse_object *scope,
union acpi_parse_object *acpi_ps_get_parent(union acpi_parse_object *op);
/*
- * psopcode - AML Opcode information
+ * psobject - support for parse object processing
+ */
+acpi_status
+acpi_ps_build_named_op(struct acpi_walk_state *walk_state,
+ u8 *aml_op_start,
+ union acpi_parse_object *unnamed_op,
+ union acpi_parse_object **op);
+
+acpi_status
+acpi_ps_create_op(struct acpi_walk_state *walk_state,
+ u8 *aml_op_start, union acpi_parse_object **new_op);
+
+acpi_status
+acpi_ps_complete_op(struct acpi_walk_state *walk_state,
+ union acpi_parse_object **op, acpi_status status);
+
+acpi_status
+acpi_ps_complete_final_op(struct acpi_walk_state *walk_state,
+ union acpi_parse_object *op, acpi_status status);
+
+/*
+ * psopinfo - AML Opcode information
*/
const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode);
@@ -148,8 +171,7 @@ u8 acpi_ps_has_completed_scope(struct acpi_parse_state *parser_state);
void
acpi_ps_pop_scope(struct acpi_parse_state *parser_state,
- union acpi_parse_object **op,
- u32 * arg_list, u32 * arg_count);
+ union acpi_parse_object **op, u32 *arg_list, u32 *arg_count);
acpi_status
acpi_ps_push_scope(struct acpi_parse_state *parser_state,
@@ -210,8 +232,6 @@ void acpi_ps_free_op(union acpi_parse_object *op);
u8 acpi_ps_is_leading_char(u32 c);
-u8 acpi_ps_is_prefix_char(u32 c);
-
#ifdef ACPI_FUTURE_USAGE
u32 acpi_ps_get_name(union acpi_parse_object *op);
#endif /* ACPI_FUTURE_USAGE */
diff --git a/drivers/acpi/acpica/acpredef.h b/drivers/acpi/acpica/acpredef.h
index 16a9ca9a66e..bd08817cafd 100644
--- a/drivers/acpi/acpica/acpredef.h
+++ b/drivers/acpi/acpica/acpredef.h
@@ -1,12 +1,11 @@
/******************************************************************************
*
* Name: acpredef - Information table for ACPI predefined methods and objects
- * $Revision: 1.1 $
*
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -49,44 +48,62 @@
*
* Return Package types
*
- * 1) PTYPE1 packages do not contain sub-packages.
+ * 1) PTYPE1 packages do not contain subpackages.
*
- * ACPI_PTYPE1_FIXED: Fixed length, 1 or 2 object types:
- * object type
- * count
- * object type
- * count
+ * ACPI_PTYPE1_FIXED: Fixed-length length, 1 or 2 object types:
+ * object type
+ * count
+ * object type
+ * count
*
- * ACPI_PTYPE1_VAR: Variable length:
- * object type (Int/Buf/Ref)
+ * ACPI_PTYPE1_VAR: Variable-length length. Zero-length package is allowed:
+ * object type (Int/Buf/Ref)
*
- * ACPI_PTYPE1_OPTION: Package has some required and some optional elements:
- * Used for _PRW
+ * ACPI_PTYPE1_OPTION: Package has some required and some optional elements
+ * (Used for _PRW)
*
*
- * 2) PTYPE2 packages contain a variable number of sub-packages. Each of the
- * different types describe the contents of each of the sub-packages.
+ * 2) PTYPE2 packages contain a Variable-length number of subpackages. Each
+ * of the different types describe the contents of each of the subpackages.
*
- * ACPI_PTYPE2: Each subpackage contains 1 or 2 object types:
- * object type
- * count
- * object type
- * count
+ * ACPI_PTYPE2: Each subpackage contains 1 or 2 object types. Zero-length
+ * parent package is allowed:
+ * object type
+ * count
+ * object type
+ * count
+ * (Used for _ALR,_MLS,_PSS,_TRT,_TSS)
*
- * ACPI_PTYPE2_COUNT: Each subpackage has a count as first element:
- * object type
+ * ACPI_PTYPE2_COUNT: Each subpackage has a count as first element.
+ * Zero-length parent package is allowed:
+ * object type
+ * (Used for _CSD,_PSD,_TSD)
*
* ACPI_PTYPE2_PKG_COUNT: Count of subpackages at start, 1 or 2 object types:
- * object type
- * count
- * object type
- * count
+ * object type
+ * count
+ * object type
+ * count
+ * (Used for _CST)
*
- * ACPI_PTYPE2_FIXED: Each subpackage is of fixed length:
- * Used for _PRT
+ * ACPI_PTYPE2_FIXED: Each subpackage is of Fixed-length. Zero-length
+ * parent package is allowed.
+ * (Used for _PRT)
*
- * ACPI_PTYPE2_MIN: Each subpackage has a variable but minimum length
- * Used for _HPX
+ * ACPI_PTYPE2_MIN: Each subpackage has a Variable-length but minimum length.
+ * Zero-length parent package is allowed:
+ * (Used for _HPX)
+ *
+ * ACPI_PTYPE2_REV_FIXED: Revision at start, each subpackage is Fixed-length
+ * (Used for _ART, _FPS)
+ *
+ * ACPI_PTYPE2_FIX_VAR: Each subpackage consists of some fixed-length elements
+ * followed by an optional element. Zero-length parent package is allowed.
+ * object type
+ * count
+ * object type
+ * count = 0 (optional)
+ * (Used for _DLM)
*
*****************************************************************************/
@@ -98,33 +115,77 @@ enum acpi_return_package_types {
ACPI_PTYPE2_COUNT = 5,
ACPI_PTYPE2_PKG_COUNT = 6,
ACPI_PTYPE2_FIXED = 7,
- ACPI_PTYPE2_MIN = 8
+ ACPI_PTYPE2_MIN = 8,
+ ACPI_PTYPE2_REV_FIXED = 9,
+ ACPI_PTYPE2_FIX_VAR = 10
};
-/*
+/* Support macros for users of the predefined info table */
+
+#define METHOD_PREDEF_ARGS_MAX 4
+#define METHOD_ARG_BIT_WIDTH 3
+#define METHOD_ARG_MASK 0x0007
+#define ARG_COUNT_IS_MINIMUM 0x8000
+#define METHOD_MAX_ARG_TYPE ACPI_TYPE_PACKAGE
+
+#define METHOD_GET_ARG_COUNT(arg_list) ((arg_list) & METHOD_ARG_MASK)
+#define METHOD_GET_NEXT_TYPE(arg_list) (((arg_list) >>= METHOD_ARG_BIT_WIDTH) & METHOD_ARG_MASK)
+
+/* Macros used to build the predefined info table */
+
+#define METHOD_0ARGS 0
+#define METHOD_1ARGS(a1) (1 | (a1 << 3))
+#define METHOD_2ARGS(a1,a2) (2 | (a1 << 3) | (a2 << 6))
+#define METHOD_3ARGS(a1,a2,a3) (3 | (a1 << 3) | (a2 << 6) | (a3 << 9))
+#define METHOD_4ARGS(a1,a2,a3,a4) (4 | (a1 << 3) | (a2 << 6) | (a3 << 9) | (a4 << 12))
+
+#define METHOD_RETURNS(type) (type)
+#define METHOD_NO_RETURN_VALUE 0
+
+#define PACKAGE_INFO(a,b,c,d,e,f) {{{(a),(b),(c),(d)}, ((((u16)(f)) << 8) | (e)), 0}}
+
+/* Support macros for the resource descriptor info table */
+
+#define WIDTH_1 0x0001
+#define WIDTH_2 0x0002
+#define WIDTH_3 0x0004
+#define WIDTH_8 0x0008
+#define WIDTH_16 0x0010
+#define WIDTH_32 0x0020
+#define WIDTH_64 0x0040
+#define VARIABLE_DATA 0x0080
+#define NUM_RESOURCE_WIDTHS 8
+
+#define WIDTH_ADDRESS WIDTH_16 | WIDTH_32 | WIDTH_64
+
+#ifdef ACPI_CREATE_PREDEFINED_TABLE
+/******************************************************************************
+ *
* Predefined method/object information table.
*
* These are the names that can actually be evaluated via acpi_evaluate_object.
* Not present in this table are the following:
*
- * 1) Predefined/Reserved names that are never evaluated via acpi_evaluate_object:
- * _Lxx and _Exx GPE methods
- * _Qxx EC methods
- * _T_x compiler temporary variables
+ * 1) Predefined/Reserved names that are never evaluated via
+ * acpi_evaluate_object:
+ * _Lxx and _Exx GPE methods
+ * _Qxx EC methods
+ * _T_x compiler temporary variables
+ * _Wxx wake events
*
* 2) Predefined names that never actually exist within the AML code:
- * Predefined resource descriptor field names
+ * Predefined resource descriptor field names
*
* 3) Predefined names that are implemented within ACPICA:
- * _OSI
- *
- * 4) Some predefined names that are not documented within the ACPI spec.
- * _WDG, _WED
+ * _OSI
*
* The main entries in the table each contain the following items:
*
- * Name - The ACPI reserved name
- * param_count - Number of arguments to the method
+ * name - The ACPI reserved name
+ * argument_list - Contains (in 16 bits), the number of required
+ * arguments to the method (3 bits), and a 3-bit type
+ * field for each argument (up to 4 arguments). The
+ * METHOD_?ARGS macros generate the correct packed data.
* expected_btypes - Allowed type(s) for the return value.
* 0 means that no return value is expected.
*
@@ -132,240 +193,895 @@ enum acpi_return_package_types {
* information about the expected structure of the package. This information
* is saved here (rather than in a separate table) in order to minimize the
* overall size of the stored data.
- */
-static const union acpi_predefined_info predefined_names[] = {
- {.info = {"_AC0", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_AC1", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_AC2", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_AC3", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_AC4", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_AC5", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_AC6", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_AC7", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_AC8", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_AC9", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_ADR", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_AL0", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_AL1", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_AL2", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_AL3", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_AL4", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_AL5", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_AL6", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_AL7", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_AL8", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_AL9", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_ALC", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_ALI", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_ALP", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_ALR", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 2, 0, 0, 0}}, /* variable (Pkgs) each 2 (Ints) */
- {.info = {"_ALT", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_BBN", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_BCL", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0}}, /* variable (Ints) */
- {.info = {"_BCM", 1, 0}},
- {.info = {"_BDN", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_BFS", 1, 0}},
- {.info = {"_BIF", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER,
- 9,
- ACPI_RTYPE_STRING | ACPI_RTYPE_BUFFER, 4, 0}}, /* fixed (9 Int),(4 Str) */
- {.info = {"_BLT", 3, 0}},
- {.info = {"_BMC", 1, 0}},
- {.info = {"_BMD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}}, /* fixed (5 Int) */
- {.info = {"_BQC", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_BST", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0}}, /* fixed (4 Int) */
- {.info = {"_BTM", 1, ACPI_RTYPE_INTEGER}},
- {.info = {"_BTP", 1, 0}},
- {.info = {"_CBA", 0, ACPI_RTYPE_INTEGER}}, /* see PCI firmware spec 3.0 */
- {.info = {"_CID", 0,
- ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_PACKAGE}},
- {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING, 0, 0, 0, 0}}, /* variable (Ints/Strs) */
- {.info = {"_CRS", 0, ACPI_RTYPE_BUFFER}},
- {.info = {"_CRT", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_CSD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0, 0, 0, 0}}, /* variable (1 Int(n), n-1 Int) */
- {.info = {"_CST", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_PKG_COUNT,
- ACPI_RTYPE_BUFFER, 1,
- ACPI_RTYPE_INTEGER, 3, 0}}, /* variable (1 Int(n), n Pkg (1 Buf/3 Int) */
- {.info = {"_DCK", 1, ACPI_RTYPE_INTEGER}},
- {.info = {"_DCS", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_DDC", 1, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER}},
- {.info = {"_DDN", 0, ACPI_RTYPE_STRING}},
- {.info = {"_DGS", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_DIS", 0, 0}},
- {.info = {"_DMA", 0, ACPI_RTYPE_BUFFER}},
- {.info = {"_DOD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0}}, /* variable (Ints) */
- {.info = {"_DOS", 1, 0}},
- {.info = {"_DSM", 4, ACPI_RTYPE_ALL}}, /* Must return a type, but it can be of any type */
- {.info = {"_DSS", 1, 0}},
- {.info = {"_DSW", 3, 0}},
- {.info = {"_EC_", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_EDL", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_EJ0", 1, 0}},
- {.info = {"_EJ1", 1, 0}},
- {.info = {"_EJ2", 1, 0}},
- {.info = {"_EJ3", 1, 0}},
- {.info = {"_EJ4", 1, 0}},
- {.info = {"_EJD", 0, ACPI_RTYPE_STRING}},
- {.info = {"_FDE", 0, ACPI_RTYPE_BUFFER}},
- {.info = {"_FDI", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16, 0, 0, 0}}, /* fixed (16 Int) */
- {.info = {"_FDM", 1, 0}},
- {.info = {"_FIX", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0}}, /* variable (Ints) */
- {.info = {"_GLK", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_GPD", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_GPE", 0, ACPI_RTYPE_INTEGER}}, /* _GPE method, not _GPE scope */
- {.info = {"_GSB", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_GTF", 0, ACPI_RTYPE_BUFFER}},
- {.info = {"_GTM", 0, ACPI_RTYPE_BUFFER}},
- {.info = {"_GTS", 1, 0}},
- {.info = {"_HID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}},
- {.info = {"_HOT", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_HPP", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0}}, /* fixed (4 Int) */
+ *
+ * Note: The additional braces are intended to promote portability.
+ *
+ * Note2: Table is used by the kernel-resident subsystem, the iASL compiler,
+ * and the acpi_help utility.
+ *
+ * TBD: _PRT - currently ignore reversed entries. Attempt to fix in nsrepair.
+ * Possibly fixing package elements like _BIF, etc.
+ *
+ *****************************************************************************/
+
+const union acpi_predefined_info acpi_gbl_predefined_methods[] = {
+ {{"_AC0", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_AC1", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_AC2", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_AC3", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_AC4", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_AC5", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_AC6", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_AC7", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_AC8", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_AC9", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_ADR", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_AEI", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_AL0", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_AL1", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_AL2", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_AL3", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_AL4", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_AL5", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_AL6", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_AL7", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_AL8", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_AL9", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_ALC", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_ALI", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_ALP", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_ALR", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 2 (Ints) */
+ PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
+
+ {{"_ALT", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_ART", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (2 Ref/11 Int) */
+ PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_REFERENCE, 2,
+ ACPI_RTYPE_INTEGER, 11, 0),
+
+ {{"_BBN", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_BCL", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
+
+ {{"_BCM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_BCT", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_BDN", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_BFS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_BIF", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (9 Int),(4 Str) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 9,
+ ACPI_RTYPE_STRING, 4, 0),
+
+ {{"_BIX", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (16 Int),(4 Str) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16,
+ ACPI_RTYPE_STRING, 4, 0),
+
+ {{"_BLT",
+ METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_BMA", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_BMC", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_BMD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (5 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
+
+ {{"_BMS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_BQC", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_BST", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
+
+ {{"_BTM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_BTP", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_CBA", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See PCI firmware spec 3.0 */
+
+ {{"_CDM", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_CID", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING | ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints/Strs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING, 0,
+ 0, 0, 0),
+
+ {{"_CLS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, 0, 0, 0),
+
+ {{"_CPC", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints/Bufs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER, 0,
+ 0, 0, 0),
+
+ {{"_CRS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_CRT", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_CSD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(n), n-1 Int) */
+ PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
+
+ {{"_CST", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(n), n Pkg (1 Buf/3 Int) */
+ PACKAGE_INFO(ACPI_PTYPE2_PKG_COUNT, ACPI_RTYPE_BUFFER, 1,
+ ACPI_RTYPE_INTEGER, 3, 0),
+
+ {{"_CWS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_DCK", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_DCS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_DDC", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_BUFFER)}},
+
+ {{"_DDN", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_STRING)}},
+
+ {{"_DEP", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_DGS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_DIS", METHOD_0ARGS,
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_DLM", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (1 Ref, 0/1 Optional Buf/Ref) */
+ PACKAGE_INFO(ACPI_PTYPE2_FIX_VAR, ACPI_RTYPE_REFERENCE, 1,
+ ACPI_RTYPE_REFERENCE | ACPI_RTYPE_BUFFER, 0, 0),
+
+ {{"_DMA", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_DOD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
+
+ {{"_DOS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_DSM",
+ METHOD_4ARGS(ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER,
+ ACPI_TYPE_PACKAGE),
+ METHOD_RETURNS(ACPI_RTYPE_ALL)}}, /* Must return a value, but it can be of any type */
+
+ {{"_DSS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_DSW",
+ METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_DTI", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_EC_", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_EDL", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_EJ0", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_EJ1", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_EJ2", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_EJ3", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_EJ4", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_EJD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_STRING)}},
+
+ {{"_ERR",
+ METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_STRING, ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* Internal use only, used by ACPICA test suites */
+
+ {{"_EVT", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_FDE", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_FDI", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (16 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 16, 0, 0, 0),
+
+ {{"_FDM", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_FIF", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
+
+ {{"_FIX", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Ints) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
+
+ {{"_FPS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (5 Int) */
+ PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
+
+ {{"_FSL", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_FST", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3, 0, 0, 0),
+
+ {{"_GAI", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_GCP", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_GHL", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_GLK", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_GPD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_GPE", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* _GPE method, not _GPE scope */
+
+ {{"_GRT", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_GSB", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_GTF", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_GTM", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_GTS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_GWS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_HID", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING)}},
+
+ {{"_HOT", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_HPP", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
/*
- * For _HPX, a single package is returned, containing a variable number of sub-packages.
- * Each sub-package contains a PCI record setting. There are several different type of
- * record settings, of different lengths, but all elements of all settings are Integers.
+ * For _HPX, a single package is returned, containing a variable-length number
+ * of subpackages. Each subpackage contains a PCI record setting.
+ * There are several different type of record settings, of different
+ * lengths, but all elements of all settings are Integers.
*/
- {.info = {"_HPX", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}}, /* variable (Pkgs) each (var Ints) */
- {.info = {"_IFT", 0, ACPI_RTYPE_INTEGER}}, /* see IPMI spec */
- {.info = {"_INI", 0, 0}},
- {.info = {"_IRC", 0, 0}},
- {.info = {"_LCK", 1, 0}},
- {.info = {"_LID", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_MAT", 0, ACPI_RTYPE_BUFFER}},
- {.info = {"_MLS", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2, ACPI_RTYPE_STRING, 2, 0, 0, 0}}, /* variable (Pkgs) each (2 Str) */
- {.info = {"_MSG", 1, 0}},
- {.info = {"_OFF", 0, 0}},
- {.info = {"_ON_", 0, 0}},
- {.info = {"_OS_", 0, ACPI_RTYPE_STRING}},
- {.info = {"_OSC", 4, ACPI_RTYPE_BUFFER}},
- {.info = {"_OST", 3, 0}},
- {.info = {"_PCL", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_PCT", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2, 0, 0, 0}}, /* fixed (2 Buf) */
- {.info = {"_PDC", 1, 0}},
- {.info = {"_PIC", 1, 0}},
- {.info = {"_PLD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_BUFFER, 0, 0, 0, 0}}, /* variable (Bufs) */
- {.info = {"_PPC", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_PPE", 0, ACPI_RTYPE_INTEGER}}, /* see dig64 spec */
- {.info = {"_PR0", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_PR1", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_PR2", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_PRS", 0, ACPI_RTYPE_BUFFER}},
+ {{"_HPX", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (var Ints) */
+ PACKAGE_INFO(ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
+
+ {{"_HRV", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_IFT", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See IPMI spec */
+
+ {{"_INI", METHOD_0ARGS,
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_IRC", METHOD_0ARGS,
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_LCK", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_LID", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_LPD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (1 Int(rev), n Pkg (2 Int) */
+ PACKAGE_INFO(ACPI_PTYPE2_REV_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
+
+ {{"_MAT", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_MBM", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (8 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 8, 0, 0, 0),
+
+ {{"_MLS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (1 Str/1 Buf) */
+ PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_STRING, 1, ACPI_RTYPE_BUFFER, 1,
+ 0),
+
+ {{"_MSG", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_MSM",
+ METHOD_4ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER,
+ ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_NTT", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_OFF", METHOD_0ARGS,
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_ON_", METHOD_0ARGS,
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_OS_", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_STRING)}},
+
+ {{"_OSC",
+ METHOD_4ARGS(ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER,
+ ACPI_TYPE_BUFFER),
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_OST",
+ METHOD_3ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_BUFFER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_PAI", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_PCL", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_PCT", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (2 Buf) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2, 0, 0, 0),
+
+ {{"_PDC", METHOD_1ARGS(ACPI_TYPE_BUFFER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_PDL", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_PIC", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_PIF", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int),(3 Str) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3,
+ ACPI_RTYPE_STRING, 3, 0),
+
+ {{"_PLD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Bufs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_BUFFER, 0, 0, 0, 0),
+
+ {{"_PMC", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (11 Int),(3 Str) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 11,
+ ACPI_RTYPE_STRING, 3, 0),
+
+ {{"_PMD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_PMM", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_PPC", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_PPE", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See dig64 spec */
+
+ {{"_PR0", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_PR1", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_PR2", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_PR3", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_PRE", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_PRL", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_PRS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
/*
- * For _PRT, many BIOSs reverse the 2nd and 3rd Package elements. This bug is so prevalent that there
- * is code in the ACPICA Resource Manager to detect this and switch them back. For now, do not allow
- * and issue a warning. To allow this and eliminate the warning, add the ACPI_RTYPE_REFERENCE
- * type to the 2nd element (index 1) in the statement below.
+ * For _PRT, many BIOSs reverse the 3rd and 4th Package elements (Source
+ * and source_index). This bug is so prevalent that there is code in the
+ * ACPICA Resource Manager to detect this and switch them back. For now,
+ * do not allow and issue a warning. To allow this and eliminate the
+ * warning, add the ACPI_RTYPE_REFERENCE type to the 4th element (index 3)
+ * in the statement below.
*/
- {.info = {"_PRT", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_FIXED, 4,
- ACPI_RTYPE_INTEGER,
- ACPI_RTYPE_INTEGER,
- ACPI_RTYPE_INTEGER | ACPI_RTYPE_REFERENCE, ACPI_RTYPE_INTEGER}}, /* variable (Pkgs) each (4): Int,Int,Int/Ref,Int */
-
- {.info = {"_PRW", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_OPTION, 2,
- ACPI_RTYPE_INTEGER |
- ACPI_RTYPE_PACKAGE,
- ACPI_RTYPE_INTEGER, ACPI_RTYPE_REFERENCE, 0}}, /* variable (Pkgs) each: Pkg/Int,Int,[variable Refs] (Pkg is Ref/Int) */
-
- {.info = {"_PS0", 0, 0}},
- {.info = {"_PS1", 0, 0}},
- {.info = {"_PS2", 0, 0}},
- {.info = {"_PS3", 0, 0}},
- {.info = {"_PSC", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_PSD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0, 0, 0, 0}}, /* variable (Pkgs) each (5 Int) with count */
- {.info = {"_PSL", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_PSR", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_PSS", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 6, 0, 0, 0}}, /* variable (Pkgs) each (6 Int) */
- {.info = {"_PSV", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_PSW", 1, 0}},
- {.info = {"_PTC", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2, 0, 0, 0}}, /* fixed (2 Buf) */
- {.info = {"_PTS", 1, 0}},
- {.info = {"_PXM", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_REG", 2, 0}},
- {.info = {"_REV", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_RMV", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_ROM", 2, ACPI_RTYPE_BUFFER}},
- {.info = {"_RTV", 0, ACPI_RTYPE_INTEGER}},
+ {{"_PRT", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (4): Int,Int,Int/Ref,Int */
+ PACKAGE_INFO(ACPI_PTYPE2_FIXED, 4, ACPI_RTYPE_INTEGER,
+ ACPI_RTYPE_INTEGER,
+ ACPI_RTYPE_INTEGER | ACPI_RTYPE_REFERENCE,
+ ACPI_RTYPE_INTEGER),
+
+ {{"_PRW", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: Pkg/Int,Int,[Variable-length Refs] (Pkg is Ref/Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_OPTION, 2,
+ ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE,
+ ACPI_RTYPE_INTEGER, ACPI_RTYPE_REFERENCE, 0),
+
+ {{"_PS0", METHOD_0ARGS,
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_PS1", METHOD_0ARGS,
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_PS2", METHOD_0ARGS,
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_PS3", METHOD_0ARGS,
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_PSC", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_PSD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (5 Int) with count */
+ PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 0, 0, 0, 0),
+
+ {{"_PSE", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_PSL", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_PSR", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_PSS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (6 Int) */
+ PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 6, 0, 0, 0),
+
+ {{"_PSV", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_PSW", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_PTC", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (2 Buf) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_BUFFER, 2, 0, 0, 0),
+
+ {{"_PTP", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_PTS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_PUR", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (2 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0),
+
+ {{"_PXM", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_REG", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_REV", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_RMV", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_ROM", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_RTV", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
/*
- * For _S0_ through _S5_, the ACPI spec defines a return Package containing 1 Integer,
- * but most DSDTs have it wrong - 2,3, or 4 integers. Allow this by making the objects "variable length",
- * but all elements must be Integers.
+ * For _S0_ through _S5_, the ACPI spec defines a return Package
+ * containing 1 Integer, but most DSDTs have it wrong - 2,3, or 4 integers.
+ * Allow this by making the objects "Variable-length length", but all elements
+ * must be Integers.
*/
- {.info = {"_S0_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}}, /* fixed (1 Int) */
- {.info = {"_S1_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}}, /* fixed (1 Int) */
- {.info = {"_S2_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}}, /* fixed (1 Int) */
- {.info = {"_S3_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}}, /* fixed (1 Int) */
- {.info = {"_S4_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}}, /* fixed (1 Int) */
- {.info = {"_S5_", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0}}, /* fixed (1 Int) */
-
- {.info = {"_S1D", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_S2D", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_S3D", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_S4D", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_S0W", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_S1W", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_S2W", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_S3W", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_S4W", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_SBS", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_SCP", 0x13, 0}}, /* Acpi 1.0 allowed 1 arg. Acpi 3.0 expanded to 3 args. Allow both. */
- /* Note: the 3-arg definition may be removed for ACPI 4.0 */
- {.info = {"_SDD", 1, 0}},
- {.info = {"_SEG", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_SLI", 0, ACPI_RTYPE_BUFFER}},
- {.info = {"_SPD", 1, ACPI_RTYPE_INTEGER}},
- {.info = {"_SRS", 1, 0}},
- {.info = {"_SRV", 0, ACPI_RTYPE_INTEGER}}, /* see IPMI spec */
- {.info = {"_SST", 1, 0}},
- {.info = {"_STA", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_STM", 3, 0}},
- {.info = {"_STR", 0, ACPI_RTYPE_BUFFER}},
- {.info = {"_SUN", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_SWS", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_TC1", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_TC2", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_TMP", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_TPC", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_TPT", 1, 0}},
- {.info = {"_TRT", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2,
- ACPI_RTYPE_INTEGER, 6, 0}}, /* variable (Pkgs) each 2_ref/6_int */
- {.info = {"_TSD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}}, /* variable (Pkgs) each 5_int with count */
- {.info = {"_TSP", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_TSS", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}}, /* variable (Pkgs) each 5_int */
- {.info = {"_TST", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_TTS", 1, 0}},
- {.info = {"_TZD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0}}, /* variable (Refs) */
- {.info = {"_TZM", 0, ACPI_RTYPE_REFERENCE}},
- {.info = {"_TZP", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_UID", 0, ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING}},
- {.info = {"_UPC", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0}}, /* fixed (4 Int) */
- {.info = {"_UPD", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_UPP", 0, ACPI_RTYPE_INTEGER}},
- {.info = {"_VPO", 0, ACPI_RTYPE_INTEGER}},
+ {{"_S0_", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
+
+ {{"_S1_", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
+
+ {{"_S2_", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
+
+ {{"_S3_", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
+
+ {{"_S4_", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
+
+ {{"_S5_", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (1 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_INTEGER, 1, 0, 0, 0),
+
+ {{"_S1D", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_S2D", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_S3D", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_S4D", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_S0W", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_S1W", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_S2W", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_S3W", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_S4W", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_SBS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_SCP", METHOD_1ARGS(ACPI_TYPE_INTEGER) | ARG_COUNT_IS_MINIMUM,
+ METHOD_NO_RETURN_VALUE}}, /* Acpi 1.0 allowed 1 integer arg. Acpi 3.0 expanded to 3 args. Allow both. */
+
+ {{"_SDD", METHOD_1ARGS(ACPI_TYPE_BUFFER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_SEG", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_SHL", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_SLI", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_SPD", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_SRS", METHOD_1ARGS(ACPI_TYPE_BUFFER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_SRT", METHOD_1ARGS(ACPI_TYPE_BUFFER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_SRV", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}}, /* See IPMI spec */
+
+ {{"_SST", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_STA", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_STM",
+ METHOD_3ARGS(ACPI_TYPE_BUFFER, ACPI_TYPE_BUFFER, ACPI_TYPE_BUFFER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_STP", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_STR", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
+
+ {{"_STV", METHOD_2ARGS(ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_SUB", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_STRING)}},
+
+ {{"_SUN", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_SWS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_TC1", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_TC2", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_TDL", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_TIP", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_TIV", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_TMP", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_TPC", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_TPT", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_TRT", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 2 Ref/6 Int */
+ PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_REFERENCE, 2, ACPI_RTYPE_INTEGER,
+ 6, 0),
+
+ {{"_TSD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 5 Int with count */
+ PACKAGE_INFO(ACPI_PTYPE2_COUNT, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
+
+ {{"_TSP", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_TSS", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each 5 Int */
+ PACKAGE_INFO(ACPI_PTYPE2, ACPI_RTYPE_INTEGER, 5, 0, 0, 0),
+
+ {{"_TST", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_TTS", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_NO_RETURN_VALUE}},
+
+ {{"_TZD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Refs) */
+ PACKAGE_INFO(ACPI_PTYPE1_VAR, ACPI_RTYPE_REFERENCE, 0, 0, 0, 0),
+
+ {{"_TZM", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_REFERENCE)}},
+
+ {{"_TZP", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_UID", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING)}},
+
+ {{"_UPC", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4, 0, 0, 0),
+
+ {{"_UPD", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_UPP", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
+
+ {{"_VPO", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER)}},
/* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */
- {.info = {"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE}},
- {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0}}, /* fixed (2 Int), but is optional */
- {.ret_info = {0, 0, 0, 0, 0, 0}} /* Table terminator */
-};
+ {{"_WAK", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER |
+ ACPI_RTYPE_PACKAGE)}},
+ PACKAGE_INFO(ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0), /* Fixed-length (2 Int), but is optional */
-#if 0
- /* Not implemented */
+ /* _WDG/_WED are MS extensions defined by "Windows Instrumentation" */
-{
-"_WDG", 0, ACPI_RTYPE_BUFFER}, /* MS Extension */
+ {{"_WDG", METHOD_0ARGS,
+ METHOD_RETURNS(ACPI_RTYPE_BUFFER)}},
-{
-"_WED", 1, ACPI_RTYPE_PACKAGE}, /* MS Extension */
+ {{"_WED", METHOD_1ARGS(ACPI_TYPE_INTEGER),
+ METHOD_RETURNS(ACPI_RTYPE_INTEGER | ACPI_RTYPE_STRING |
+ ACPI_RTYPE_BUFFER)}},
- /* This is an internally implemented control method, no need to check */
-{
-"_OSI", 1, ACPI_RTYPE_INTEGER},
+ PACKAGE_INFO(0, 0, 0, 0, 0, 0) /* Table terminator */
+};
+#else
+extern const union acpi_predefined_info acpi_gbl_predefined_methods[];
+#endif
- /* TBD: */
- _PRT - currently ignore reversed entries.attempt to fix here ?
- think about code that attempts to fix package elements like _BIF, etc.
+#if (defined ACPI_CREATE_RESOURCE_TABLE && defined ACPI_APPLICATION)
+/******************************************************************************
+ *
+ * Predefined names for use in Resource Descriptors. These names do not
+ * appear in the global Predefined Name table (since these names never
+ * appear in actual AML byte code, only in the original ASL)
+ *
+ * Note: Used by iASL compiler and acpi_help utility only.
+ *
+ *****************************************************************************/
+
+const union acpi_predefined_info acpi_gbl_resource_names[] = {
+ {{"_ADR", WIDTH_16 | WIDTH_64, 0}},
+ {{"_ALN", WIDTH_8 | WIDTH_16 | WIDTH_32, 0}},
+ {{"_ASI", WIDTH_8, 0}},
+ {{"_ASZ", WIDTH_8, 0}},
+ {{"_ATT", WIDTH_64, 0}},
+ {{"_BAS", WIDTH_16 | WIDTH_32, 0}},
+ {{"_BM_", WIDTH_1, 0}},
+ {{"_DBT", WIDTH_16, 0}}, /* Acpi 5.0 */
+ {{"_DEC", WIDTH_1, 0}},
+ {{"_DMA", WIDTH_8, 0}},
+ {{"_DPL", WIDTH_1, 0}}, /* Acpi 5.0 */
+ {{"_DRS", WIDTH_16, 0}}, /* Acpi 5.0 */
+ {{"_END", WIDTH_1, 0}}, /* Acpi 5.0 */
+ {{"_FLC", WIDTH_2, 0}}, /* Acpi 5.0 */
+ {{"_GRA", WIDTH_ADDRESS, 0}},
+ {{"_HE_", WIDTH_1, 0}},
+ {{"_INT", WIDTH_16 | WIDTH_32, 0}},
+ {{"_IOR", WIDTH_2, 0}}, /* Acpi 5.0 */
+ {{"_LEN", WIDTH_8 | WIDTH_ADDRESS, 0}},
+ {{"_LIN", WIDTH_8, 0}}, /* Acpi 5.0 */
+ {{"_LL_", WIDTH_1, 0}},
+ {{"_MAF", WIDTH_1, 0}},
+ {{"_MAX", WIDTH_ADDRESS, 0}},
+ {{"_MEM", WIDTH_2, 0}},
+ {{"_MIF", WIDTH_1, 0}},
+ {{"_MIN", WIDTH_ADDRESS, 0}},
+ {{"_MOD", WIDTH_1, 0}}, /* Acpi 5.0 */
+ {{"_MTP", WIDTH_2, 0}},
+ {{"_PAR", WIDTH_8, 0}}, /* Acpi 5.0 */
+ {{"_PHA", WIDTH_1, 0}}, /* Acpi 5.0 */
+ {{"_PIN", WIDTH_16, 0}}, /* Acpi 5.0 */
+ {{"_PPI", WIDTH_8, 0}}, /* Acpi 5.0 */
+ {{"_POL", WIDTH_1 | WIDTH_2, 0}}, /* Acpi 5.0 */
+ {{"_RBO", WIDTH_8, 0}},
+ {{"_RBW", WIDTH_8, 0}},
+ {{"_RNG", WIDTH_1, 0}},
+ {{"_RT_", WIDTH_8, 0}}, /* Acpi 3.0 */
+ {{"_RW_", WIDTH_1, 0}},
+ {{"_RXL", WIDTH_16, 0}}, /* Acpi 5.0 */
+ {{"_SHR", WIDTH_2, 0}},
+ {{"_SIZ", WIDTH_2, 0}},
+ {{"_SLV", WIDTH_1, 0}}, /* Acpi 5.0 */
+ {{"_SPE", WIDTH_32, 0}}, /* Acpi 5.0 */
+ {{"_STB", WIDTH_2, 0}}, /* Acpi 5.0 */
+ {{"_TRA", WIDTH_ADDRESS, 0}},
+ {{"_TRS", WIDTH_1, 0}},
+ {{"_TSF", WIDTH_8, 0}}, /* Acpi 3.0 */
+ {{"_TTP", WIDTH_1, 0}},
+ {{"_TXL", WIDTH_16, 0}}, /* Acpi 5.0 */
+ {{"_TYP", WIDTH_2 | WIDTH_16, 0}},
+ {{"_VEN", VARIABLE_DATA, 0}}, /* Acpi 5.0 */
+ PACKAGE_INFO(0, 0, 0, 0, 0, 0) /* Table terminator */
+};
+
+static const union acpi_predefined_info acpi_gbl_scope_names[] = {
+ {{"_GPE", 0, 0}},
+ {{"_PR_", 0, 0}},
+ {{"_SB_", 0, 0}},
+ {{"_SI_", 0, 0}},
+ {{"_TZ_", 0, 0}},
+ PACKAGE_INFO(0, 0, 0, 0, 0, 0) /* Table terminator */
+};
+#else
+extern const union acpi_predefined_info acpi_gbl_resource_names[];
#endif
+
#endif
diff --git a/drivers/acpi/acpica/acresrc.h b/drivers/acpi/acpica/acresrc.h
index eef5bd7a59f..4b008e8884a 100644
--- a/drivers/acpi/acpica/acresrc.h
+++ b/drivers/acpi/acpica/acresrc.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -73,28 +73,40 @@ typedef const struct acpi_rsconvert_info {
/* Resource conversion opcodes */
-#define ACPI_RSC_INITGET 0
-#define ACPI_RSC_INITSET 1
-#define ACPI_RSC_FLAGINIT 2
-#define ACPI_RSC_1BITFLAG 3
-#define ACPI_RSC_2BITFLAG 4
-#define ACPI_RSC_COUNT 5
-#define ACPI_RSC_COUNT16 6
-#define ACPI_RSC_LENGTH 7
-#define ACPI_RSC_MOVE8 8
-#define ACPI_RSC_MOVE16 9
-#define ACPI_RSC_MOVE32 10
-#define ACPI_RSC_MOVE64 11
-#define ACPI_RSC_SET8 12
-#define ACPI_RSC_DATA8 13
-#define ACPI_RSC_ADDRESS 14
-#define ACPI_RSC_SOURCE 15
-#define ACPI_RSC_SOURCEX 16
-#define ACPI_RSC_BITMASK 17
-#define ACPI_RSC_BITMASK16 18
-#define ACPI_RSC_EXIT_NE 19
-#define ACPI_RSC_EXIT_LE 20
-#define ACPI_RSC_EXIT_EQ 21
+typedef enum {
+ ACPI_RSC_INITGET = 0,
+ ACPI_RSC_INITSET,
+ ACPI_RSC_FLAGINIT,
+ ACPI_RSC_1BITFLAG,
+ ACPI_RSC_2BITFLAG,
+ ACPI_RSC_3BITFLAG,
+ ACPI_RSC_ADDRESS,
+ ACPI_RSC_BITMASK,
+ ACPI_RSC_BITMASK16,
+ ACPI_RSC_COUNT,
+ ACPI_RSC_COUNT16,
+ ACPI_RSC_COUNT_GPIO_PIN,
+ ACPI_RSC_COUNT_GPIO_RES,
+ ACPI_RSC_COUNT_GPIO_VEN,
+ ACPI_RSC_COUNT_SERIAL_RES,
+ ACPI_RSC_COUNT_SERIAL_VEN,
+ ACPI_RSC_DATA8,
+ ACPI_RSC_EXIT_EQ,
+ ACPI_RSC_EXIT_LE,
+ ACPI_RSC_EXIT_NE,
+ ACPI_RSC_LENGTH,
+ ACPI_RSC_MOVE_GPIO_PIN,
+ ACPI_RSC_MOVE_GPIO_RES,
+ ACPI_RSC_MOVE_SERIAL_RES,
+ ACPI_RSC_MOVE_SERIAL_VEN,
+ ACPI_RSC_MOVE8,
+ ACPI_RSC_MOVE16,
+ ACPI_RSC_MOVE32,
+ ACPI_RSC_MOVE64,
+ ACPI_RSC_SET8,
+ ACPI_RSC_SOURCE,
+ ACPI_RSC_SOURCEX
+} ACPI_RSCONVERT_OPCODES;
/* Resource Conversion sub-opcodes */
@@ -106,6 +118,9 @@ typedef const struct acpi_rsconvert_info {
#define ACPI_RS_OFFSET(f) (u8) ACPI_OFFSET (struct acpi_resource,f)
#define AML_OFFSET(f) (u8) ACPI_OFFSET (union aml_resource,f)
+/*
+ * Individual entry for the resource dump tables
+ */
typedef const struct acpi_rsdump_info {
u8 opcode;
u8 offset;
@@ -116,20 +131,25 @@ typedef const struct acpi_rsdump_info {
/* Values for the Opcode field above */
-#define ACPI_RSD_TITLE 0
-#define ACPI_RSD_LITERAL 1
-#define ACPI_RSD_STRING 2
-#define ACPI_RSD_UINT8 3
-#define ACPI_RSD_UINT16 4
-#define ACPI_RSD_UINT32 5
-#define ACPI_RSD_UINT64 6
-#define ACPI_RSD_1BITFLAG 7
-#define ACPI_RSD_2BITFLAG 8
-#define ACPI_RSD_SHORTLIST 9
-#define ACPI_RSD_LONGLIST 10
-#define ACPI_RSD_DWORDLIST 11
-#define ACPI_RSD_ADDRESS 12
-#define ACPI_RSD_SOURCE 13
+typedef enum {
+ ACPI_RSD_TITLE = 0,
+ ACPI_RSD_1BITFLAG,
+ ACPI_RSD_2BITFLAG,
+ ACPI_RSD_3BITFLAG,
+ ACPI_RSD_ADDRESS,
+ ACPI_RSD_DWORDLIST,
+ ACPI_RSD_LITERAL,
+ ACPI_RSD_LONGLIST,
+ ACPI_RSD_SHORTLIST,
+ ACPI_RSD_SHORTLISTX,
+ ACPI_RSD_SOURCE,
+ ACPI_RSD_STRING,
+ ACPI_RSD_UINT8,
+ ACPI_RSD_UINT16,
+ ACPI_RSD_UINT32,
+ ACPI_RSD_UINT64,
+ ACPI_RSD_WORDLIST
+} ACPI_RSDUMP_OPCODES;
/* restore default alignment */
@@ -138,13 +158,18 @@ typedef const struct acpi_rsdump_info {
/* Resource tables indexed by internal resource type */
extern const u8 acpi_gbl_aml_resource_sizes[];
+extern const u8 acpi_gbl_aml_resource_serial_bus_sizes[];
extern struct acpi_rsconvert_info *acpi_gbl_set_resource_dispatch[];
/* Resource tables indexed by raw AML resource descriptor type */
extern const u8 acpi_gbl_resource_struct_sizes[];
+extern const u8 acpi_gbl_resource_struct_serial_bus_sizes[];
extern struct acpi_rsconvert_info *acpi_gbl_get_resource_dispatch[];
+extern struct acpi_rsconvert_info
+ *acpi_gbl_convert_resource_serial_bus_dispatch[];
+
struct acpi_vendor_walk_info {
struct acpi_vendor_uuid *uuid;
struct acpi_buffer *buffer;
@@ -159,7 +184,7 @@ acpi_rs_create_resource_list(union acpi_operand_object *aml_buffer,
struct acpi_buffer *output_buffer);
acpi_status
-acpi_rs_create_aml_resources(struct acpi_resource *linked_list_buffer,
+acpi_rs_create_aml_resources(struct acpi_buffer *resource_list,
struct acpi_buffer *output_buffer);
acpi_status
@@ -190,6 +215,10 @@ acpi_status
acpi_rs_set_srs_method_data(struct acpi_namespace_node *node,
struct acpi_buffer *ret_buffer);
+acpi_status
+acpi_rs_get_aei_method_data(struct acpi_namespace_node *node,
+ struct acpi_buffer *ret_buffer);
+
/*
* rscalc
*/
@@ -198,8 +227,8 @@ acpi_rs_get_list_length(u8 * aml_buffer,
u32 aml_buffer_length, acpi_size * size_needed);
acpi_status
-acpi_rs_get_aml_length(struct acpi_resource *linked_list_buffer,
- acpi_size * size_needed);
+acpi_rs_get_aml_length(struct acpi_resource *resource_list,
+ acpi_size resource_list_size, acpi_size * size_needed);
acpi_status
acpi_rs_get_pci_routing_table_length(union acpi_operand_object *package_object,
@@ -293,6 +322,11 @@ extern struct acpi_rsconvert_info acpi_rs_convert_address16[];
extern struct acpi_rsconvert_info acpi_rs_convert_ext_irq[];
extern struct acpi_rsconvert_info acpi_rs_convert_address64[];
extern struct acpi_rsconvert_info acpi_rs_convert_ext_address64[];
+extern struct acpi_rsconvert_info acpi_rs_convert_gpio[];
+extern struct acpi_rsconvert_info acpi_rs_convert_fixed_dma[];
+extern struct acpi_rsconvert_info acpi_rs_convert_i2c_serial_bus[];
+extern struct acpi_rsconvert_info acpi_rs_convert_spi_serial_bus[];
+extern struct acpi_rsconvert_info acpi_rs_convert_uart_serial_bus[];
/* These resources require separate get/set tables */
@@ -310,20 +344,24 @@ extern struct acpi_rsconvert_info acpi_rs_set_vendor[];
* rsinfo
*/
extern struct acpi_rsdump_info *acpi_gbl_dump_resource_dispatch[];
+extern struct acpi_rsdump_info *acpi_gbl_dump_serial_bus_dispatch[];
/*
- * rsdump
+ * rsdumpinfo
*/
extern struct acpi_rsdump_info acpi_rs_dump_irq[];
+extern struct acpi_rsdump_info acpi_rs_dump_prt[];
extern struct acpi_rsdump_info acpi_rs_dump_dma[];
extern struct acpi_rsdump_info acpi_rs_dump_start_dpf[];
extern struct acpi_rsdump_info acpi_rs_dump_end_dpf[];
extern struct acpi_rsdump_info acpi_rs_dump_io[];
+extern struct acpi_rsdump_info acpi_rs_dump_io_flags[];
extern struct acpi_rsdump_info acpi_rs_dump_fixed_io[];
extern struct acpi_rsdump_info acpi_rs_dump_vendor[];
extern struct acpi_rsdump_info acpi_rs_dump_end_tag[];
extern struct acpi_rsdump_info acpi_rs_dump_memory24[];
extern struct acpi_rsdump_info acpi_rs_dump_memory32[];
+extern struct acpi_rsdump_info acpi_rs_dump_memory_flags[];
extern struct acpi_rsdump_info acpi_rs_dump_fixed_memory32[];
extern struct acpi_rsdump_info acpi_rs_dump_address16[];
extern struct acpi_rsdump_info acpi_rs_dump_address32[];
@@ -331,6 +369,13 @@ extern struct acpi_rsdump_info acpi_rs_dump_address64[];
extern struct acpi_rsdump_info acpi_rs_dump_ext_address64[];
extern struct acpi_rsdump_info acpi_rs_dump_ext_irq[];
extern struct acpi_rsdump_info acpi_rs_dump_generic_reg[];
+extern struct acpi_rsdump_info acpi_rs_dump_gpio[];
+extern struct acpi_rsdump_info acpi_rs_dump_fixed_dma[];
+extern struct acpi_rsdump_info acpi_rs_dump_common_serial_bus[];
+extern struct acpi_rsdump_info acpi_rs_dump_i2c_serial_bus[];
+extern struct acpi_rsdump_info acpi_rs_dump_spi_serial_bus[];
+extern struct acpi_rsdump_info acpi_rs_dump_uart_serial_bus[];
+extern struct acpi_rsdump_info acpi_rs_dump_general_flags[];
#endif
#endif /* __ACRESRC_H__ */
diff --git a/drivers/acpi/acpica/acstruct.h b/drivers/acpi/acpica/acstruct.h
index 7980a26bad3..cf7346110bd 100644
--- a/drivers/acpi/acpica/acstruct.h
+++ b/drivers/acpi/acpica/acstruct.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -53,7 +53,7 @@
****************************************************************************/
/*
- * Walk state - current state of a parse tree walk. Used for both a leisurely
+ * Walk state - current state of a parse tree walk. Used for both a leisurely
* stroll through the tree (for whatever reason), and for control method
* execution.
*/
@@ -68,7 +68,7 @@
#define ACPI_WALK_METHOD 0x01
#define ACPI_WALK_METHOD_RESTART 0x02
-/* Flags for i_aSL compiler only */
+/* Flags for iASL compiler only */
#define ACPI_WALK_CONST_REQUIRED 0x10
#define ACPI_WALK_CONST_OPTIONAL 0x20
@@ -127,22 +127,25 @@ struct acpi_walk_state {
acpi_parse_upwards ascending_callback;
};
-/* Info used by acpi_ps_init_objects */
+/* Info used by acpi_ns_initialize_objects and acpi_ds_initialize_objects */
struct acpi_init_walk_info {
- u16 method_count;
- u16 device_count;
- u16 op_region_count;
- u16 field_count;
- u16 buffer_count;
- u16 package_count;
- u16 op_region_init;
- u16 field_init;
- u16 buffer_init;
- u16 package_init;
- u16 object_count;
- acpi_owner_id owner_id;
u32 table_index;
+ u32 object_count;
+ u32 method_count;
+ u32 serial_method_count;
+ u32 non_serial_method_count;
+ u32 serialized_method_count;
+ u32 device_count;
+ u32 op_region_count;
+ u32 field_count;
+ u32 buffer_count;
+ u32 package_count;
+ u32 op_region_init;
+ u32 field_init;
+ u32 buffer_init;
+ u32 package_init;
+ acpi_owner_id owner_id;
};
struct acpi_get_devices_info {
@@ -178,34 +181,50 @@ union acpi_aml_operands {
};
/*
- * Structure used to pass object evaluation parameters.
+ * Structure used to pass object evaluation information and parameters.
* Purpose is to reduce CPU stack use.
*/
struct acpi_evaluate_info {
- struct acpi_namespace_node *prefix_node;
- char *pathname;
- union acpi_operand_object *obj_desc;
- union acpi_operand_object **parameters;
- struct acpi_namespace_node *resolved_node;
- union acpi_operand_object *return_object;
- u8 param_count;
- u8 pass_number;
- u8 return_object_type;
- u8 flags;
+ /* The first 3 elements are passed by the caller to acpi_ns_evaluate */
+
+ struct acpi_namespace_node *prefix_node; /* Input: starting node */
+ char *relative_pathname; /* Input: path relative to prefix_node */
+ union acpi_operand_object **parameters; /* Input: argument list */
+
+ struct acpi_namespace_node *node; /* Resolved node (prefix_node:relative_pathname) */
+ union acpi_operand_object *obj_desc; /* Object attached to the resolved node */
+ char *full_pathname; /* Full pathname of the resolved node */
+
+ const union acpi_predefined_info *predefined; /* Used if Node is a predefined name */
+ union acpi_operand_object *return_object; /* Object returned from the evaluation */
+ union acpi_operand_object *parent_package; /* Used if return object is a Package */
+
+ u32 return_flags; /* Used for return value analysis */
+ u32 return_btype; /* Bitmapped type of the returned object */
+ u16 param_count; /* Count of the input argument list */
+ u8 pass_number; /* Parser pass number */
+ u8 return_object_type; /* Object type of the returned object */
+ u8 node_flags; /* Same as Node->Flags */
+ u8 flags; /* General flags */
};
/* Values for Flags above */
-#define ACPI_IGNORE_RETURN_VALUE 1
+#define ACPI_IGNORE_RETURN_VALUE 1
+
+/* Defines for return_flags field above */
+
+#define ACPI_OBJECT_REPAIRED 1
+#define ACPI_OBJECT_WRAPPED 2
/* Info used by acpi_ns_initialize_devices */
struct acpi_device_walk_info {
- u16 device_count;
- u16 num_STA;
- u16 num_INI;
struct acpi_table_desc *table_desc;
struct acpi_evaluate_info *evaluate_info;
+ u32 device_count;
+ u32 num_STA;
+ u32 num_INI;
};
/* TBD: [Restructure] Merge with struct above */
diff --git a/drivers/acpi/acpica/actables.h b/drivers/acpi/acpica/actables.h
index 7ce6e33c7f7..f14882788ee 100644
--- a/drivers/acpi/acpica/actables.h
+++ b/drivers/acpi/acpica/actables.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -47,9 +47,41 @@
acpi_status acpi_allocate_root_table(u32 initial_table_count);
/*
+ * tbxfroot - Root pointer utilities
+ */
+acpi_status acpi_tb_validate_rsdp(struct acpi_table_rsdp *rsdp);
+
+u8 *acpi_tb_scan_memory_for_rsdp(u8 *start_address, u32 length);
+
+/*
+ * tbdata - table data structure management
+ */
+acpi_status acpi_tb_get_next_root_index(u32 *table_index);
+
+void
+acpi_tb_init_table_descriptor(struct acpi_table_desc *table_desc,
+ acpi_physical_address address,
+ u8 flags, struct acpi_table_header *table);
+
+acpi_status
+acpi_tb_acquire_temp_table(struct acpi_table_desc *table_desc,
+ acpi_physical_address address, u8 flags);
+
+void acpi_tb_release_temp_table(struct acpi_table_desc *table_desc);
+
+acpi_status acpi_tb_validate_temp_table(struct acpi_table_desc *table_desc);
+
+acpi_status
+acpi_tb_verify_temp_table(struct acpi_table_desc *table_desc, char *signature);
+
+u8 acpi_tb_is_table_loaded(u32 table_index);
+
+void acpi_tb_set_table_loaded_flag(u32 table_index, u8 is_loaded);
+
+/*
* tbfadt - FADT parse/convert/validate
*/
-void acpi_tb_parse_fadt(u32 table_index, u8 flags);
+void acpi_tb_parse_fadt(u32 table_index);
void acpi_tb_create_local_fadt(struct acpi_table_header *table, u32 length);
@@ -65,21 +97,36 @@ acpi_tb_find_table(char *signature,
*/
acpi_status acpi_tb_resize_root_table_list(void);
-acpi_status acpi_tb_verify_table(struct acpi_table_desc *table_desc);
+acpi_status acpi_tb_validate_table(struct acpi_table_desc *table_desc);
+
+void acpi_tb_invalidate_table(struct acpi_table_desc *table_desc);
+
+void acpi_tb_override_table(struct acpi_table_desc *old_table_desc);
+
+acpi_status
+acpi_tb_acquire_table(struct acpi_table_desc *table_desc,
+ struct acpi_table_header **table_ptr,
+ u32 *table_length, u8 *table_flags);
+
+void
+acpi_tb_release_table(struct acpi_table_header *table,
+ u32 table_length, u8 table_flags);
acpi_status
-acpi_tb_add_table(struct acpi_table_desc *table_desc, u32 *table_index);
+acpi_tb_install_standard_table(acpi_physical_address address,
+ u8 flags,
+ u8 reload, u8 override, u32 *table_index);
acpi_status
acpi_tb_store_table(acpi_physical_address address,
struct acpi_table_header *table,
u32 length, u8 flags, u32 *table_index);
-void acpi_tb_delete_table(struct acpi_table_desc *table_desc);
+void acpi_tb_uninstall_table(struct acpi_table_desc *table_desc);
void acpi_tb_terminate(void);
-void acpi_tb_delete_namespace_by_owner(u32 table_index);
+acpi_status acpi_tb_delete_namespace_by_owner(u32 table_index);
acpi_status acpi_tb_allocate_owner_id(u32 table_index);
@@ -87,10 +134,6 @@ acpi_status acpi_tb_release_owner_id(u32 table_index);
acpi_status acpi_tb_get_owner_id(u32 table_index, acpi_owner_id *owner_id);
-u8 acpi_tb_is_table_loaded(u32 table_index);
-
-void acpi_tb_set_table_loaded_flag(u32 table_index, u8 is_loaded);
-
/*
* tbutils - table manager utilities
*/
@@ -107,11 +150,19 @@ u8 acpi_tb_checksum(u8 *buffer, u32 length);
acpi_status
acpi_tb_verify_checksum(struct acpi_table_header *table, u32 length);
+void acpi_tb_check_dsdt_header(void);
+
+struct acpi_table_header *acpi_tb_copy_dsdt(u32 table_index);
+
void
-acpi_tb_install_table(acpi_physical_address address,
- u8 flags, char *signature, u32 table_index);
+acpi_tb_install_table_with_override(u32 table_index,
+ struct acpi_table_desc *new_table_desc,
+ u8 override);
acpi_status
-acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags);
+acpi_tb_install_fixed_table(acpi_physical_address address,
+ char *signature, u32 table_index);
+
+acpi_status acpi_tb_parse_root_table(acpi_physical_address rsdp_address);
#endif /* __ACTABLES_H__ */
diff --git a/drivers/acpi/acpica/acutils.h b/drivers/acpi/acpica/acutils.h
index 80d8813484f..1e256c5bda2 100644
--- a/drivers/acpi/acpica/acutils.h
+++ b/drivers/acpi/acpica/acutils.h
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -45,10 +45,11 @@
#define _ACUTILS_H
extern const u8 acpi_gbl_resource_aml_sizes[];
+extern const u8 acpi_gbl_resource_aml_serial_bus_sizes[];
/* Strings used by the disassembler and debugger resource dump routines */
-#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
+#if defined(ACPI_DEBUG_OUTPUT) || defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
extern const char *acpi_gbl_bm_decode[];
extern const char *acpi_gbl_config_decode[];
@@ -68,8 +69,66 @@ extern const char *acpi_gbl_siz_decode[];
extern const char *acpi_gbl_trs_decode[];
extern const char *acpi_gbl_ttp_decode[];
extern const char *acpi_gbl_typ_decode[];
+extern const char *acpi_gbl_ppc_decode[];
+extern const char *acpi_gbl_ior_decode[];
+extern const char *acpi_gbl_dts_decode[];
+extern const char *acpi_gbl_ct_decode[];
+extern const char *acpi_gbl_sbt_decode[];
+extern const char *acpi_gbl_am_decode[];
+extern const char *acpi_gbl_sm_decode[];
+extern const char *acpi_gbl_wm_decode[];
+extern const char *acpi_gbl_cph_decode[];
+extern const char *acpi_gbl_cpo_decode[];
+extern const char *acpi_gbl_dp_decode[];
+extern const char *acpi_gbl_ed_decode[];
+extern const char *acpi_gbl_bpb_decode[];
+extern const char *acpi_gbl_sb_decode[];
+extern const char *acpi_gbl_fc_decode[];
+extern const char *acpi_gbl_pt_decode[];
#endif
+/*
+ * For the iASL compiler case, the output is redirected to stderr so that
+ * any of the various ACPI errors and warnings do not appear in the output
+ * files, for either the compiler or disassembler portions of the tool.
+ */
+#ifdef ACPI_ASL_COMPILER
+
+#include <stdio.h>
+extern FILE *acpi_gbl_output_file;
+
+#define ACPI_MSG_REDIRECT_BEGIN \
+ FILE *output_file = acpi_gbl_output_file; \
+ acpi_os_redirect_output (stderr);
+
+#define ACPI_MSG_REDIRECT_END \
+ acpi_os_redirect_output (output_file);
+
+#else
+/*
+ * non-iASL case - no redirection, nothing to do
+ */
+#define ACPI_MSG_REDIRECT_BEGIN
+#define ACPI_MSG_REDIRECT_END
+#endif
+
+/*
+ * Common error message prefixes
+ */
+#define ACPI_MSG_ERROR "ACPI Error: "
+#define ACPI_MSG_EXCEPTION "ACPI Exception: "
+#define ACPI_MSG_WARNING "ACPI Warning: "
+#define ACPI_MSG_INFO "ACPI: "
+
+#define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): "
+#define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): "
+
+/*
+ * Common message suffix
+ */
+#define ACPI_MSG_SUFFIX \
+ acpi_os_printf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, module_name, line_number)
+
/* Types for Resource descriptor entries */
#define ACPI_INVALID_RESOURCE 0
@@ -78,14 +137,14 @@ extern const char *acpi_gbl_typ_decode[];
#define ACPI_SMALL_VARIABLE_LENGTH 3
typedef
-acpi_status(*acpi_walk_aml_callback) (u8 * aml,
+acpi_status(*acpi_walk_aml_callback) (u8 *aml,
u32 length,
u32 offset,
u8 resource_index, void **context);
typedef
acpi_status(*acpi_pkg_callback) (u8 object_type,
- union acpi_operand_object * source_object,
+ union acpi_operand_object *source_object,
union acpi_generic_state * state,
void *context);
@@ -96,9 +155,10 @@ struct acpi_pkg_info {
u32 num_packages;
};
+/* Object reference counts */
+
#define REF_INCREMENT (u16) 0
#define REF_DECREMENT (u16) 1
-#define REF_FORCE_DELETE (u16) 2
/* acpi_ut_dump_buffer */
@@ -116,8 +176,7 @@ acpi_status acpi_ut_init_globals(void);
char *acpi_ut_get_mutex_name(u32 mutex_id);
-const char *acpi_ut_get_notify_name(u32 notify_value);
-
+const char *acpi_ut_get_notify_name(u32 notify_value, acpi_object_type type);
#endif
char *acpi_ut_get_type_name(acpi_object_type type);
@@ -134,7 +193,7 @@ char *acpi_ut_get_region_name(u8 space_id);
char *acpi_ut_get_event_name(u32 event_id);
-char acpi_ut_hex_to_ascii_char(acpi_integer integer, u32 position);
+char acpi_ut_hex_to_ascii_char(u64 integer, u32 position);
u8 acpi_ut_valid_object_type(acpi_object_type type);
@@ -201,7 +260,9 @@ extern const u8 _acpi_ctype[];
#define ACPI_IS_PRINT(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP | _ACPI_DI | _ACPI_SP | _ACPI_PU))
#define ACPI_IS_ALPHA(c) (_acpi_ctype[(unsigned char)(c)] & (_ACPI_LO | _ACPI_UP))
-#endif /* ACPI_USE_SYSTEM_CLIBRARY */
+#endif /* !ACPI_USE_SYSTEM_CLIBRARY */
+
+#define ACPI_IS_ASCII(c) ((c) < 0x80)
/*
* utcopy - Object construction and conversion interfaces
@@ -209,11 +270,11 @@ extern const u8 _acpi_ctype[];
acpi_status
acpi_ut_build_simple_object(union acpi_operand_object *obj,
union acpi_object *user_obj,
- u8 * data_space, u32 * buffer_space_used);
+ u8 *data_space, u32 *buffer_space_used);
acpi_status
acpi_ut_build_package_object(union acpi_operand_object *obj,
- u8 * buffer, u32 * space_used);
+ u8 *buffer, u32 *space_used);
acpi_status
acpi_ut_copy_iobject_to_eobject(union acpi_operand_object *obj,
@@ -279,17 +340,17 @@ acpi_ut_status_exit(u32 line_number,
void
acpi_ut_value_exit(u32 line_number,
const char *function_name,
- const char *module_name,
- u32 component_id, acpi_integer value);
+ const char *module_name, u32 component_id, u64 value);
void
acpi_ut_ptr_exit(u32 line_number,
const char *function_name,
const char *module_name, u32 component_id, u8 *ptr);
-void acpi_ut_dump_buffer(u8 * buffer, u32 count, u32 display, u32 component_id);
+void
+acpi_ut_debug_dump_buffer(u8 *buffer, u32 count, u32 display, u32 component_id);
-void acpi_ut_dump_buffer2(u8 * buffer, u32 count, u32 display);
+void acpi_ut_dump_buffer(u8 *buffer, u32 count, u32 display, u32 offset);
void acpi_ut_report_error(char *module_name, u32 line_number);
@@ -313,8 +374,6 @@ void acpi_ut_delete_internal_object_list(union acpi_operand_object **obj_list);
/*
* uteval - object evaluation
*/
-acpi_status acpi_ut_osi_implementation(struct acpi_walk_state *walk_state);
-
acpi_status
acpi_ut_evaluate_object(struct acpi_namespace_node *prefix_node,
char *path,
@@ -324,26 +383,49 @@ acpi_ut_evaluate_object(struct acpi_namespace_node *prefix_node,
acpi_status
acpi_ut_evaluate_numeric_object(char *object_name,
struct acpi_namespace_node *device_node,
- acpi_integer * address);
+ u64 *value);
acpi_status
-acpi_ut_execute_HID(struct acpi_namespace_node *device_node,
- struct acpica_device_id *hid);
+acpi_ut_execute_STA(struct acpi_namespace_node *device_node, u32 *status_flags);
acpi_status
-acpi_ut_execute_CID(struct acpi_namespace_node *device_node,
- struct acpi_compatible_id_list **return_cid_list);
+acpi_ut_execute_power_methods(struct acpi_namespace_node *device_node,
+ const char **method_names,
+ u8 method_count, u8 *out_values);
+/*
+ * utids - device ID support
+ */
acpi_status
-acpi_ut_execute_STA(struct acpi_namespace_node *device_node,
- u32 * status_flags);
+acpi_ut_execute_HID(struct acpi_namespace_node *device_node,
+ struct acpi_pnp_device_id ** return_id);
acpi_status
acpi_ut_execute_UID(struct acpi_namespace_node *device_node,
- struct acpica_device_id *uid);
+ struct acpi_pnp_device_id ** return_id);
+
+acpi_status
+acpi_ut_execute_SUB(struct acpi_namespace_node *device_node,
+ struct acpi_pnp_device_id **return_id);
acpi_status
-acpi_ut_execute_sxds(struct acpi_namespace_node *device_node, u8 * highest);
+acpi_ut_execute_CID(struct acpi_namespace_node *device_node,
+ struct acpi_pnp_device_id_list ** return_cid_list);
+
+/*
+ * utlock - reader/writer locks
+ */
+acpi_status acpi_ut_create_rw_lock(struct acpi_rw_lock *lock);
+
+void acpi_ut_delete_rw_lock(struct acpi_rw_lock *lock);
+
+acpi_status acpi_ut_acquire_read_lock(struct acpi_rw_lock *lock);
+
+acpi_status acpi_ut_release_read_lock(struct acpi_rw_lock *lock);
+
+acpi_status acpi_ut_acquire_write_lock(struct acpi_rw_lock *lock);
+
+void acpi_ut_release_write_lock(struct acpi_rw_lock *lock);
/*
* utobject - internal object create/delete/cache routines
@@ -367,6 +449,8 @@ u8 acpi_ut_valid_internal_object(void *object);
union acpi_operand_object *acpi_ut_create_package_object(u32 count);
+union acpi_operand_object *acpi_ut_create_integer_object(u64 value);
+
union acpi_operand_object *acpi_ut_create_buffer_object(acpi_size buffer_size);
union acpi_operand_object *acpi_ut_create_string_object(acpi_size string_size);
@@ -375,6 +459,43 @@ acpi_status
acpi_ut_get_object_size(union acpi_operand_object *obj, acpi_size * obj_length);
/*
+ * utosi - Support for the _OSI predefined control method
+ */
+acpi_status acpi_ut_initialize_interfaces(void);
+
+acpi_status acpi_ut_interface_terminate(void);
+
+acpi_status acpi_ut_install_interface(acpi_string interface_name);
+
+acpi_status acpi_ut_remove_interface(acpi_string interface_name);
+
+acpi_status acpi_ut_update_interfaces(u8 action);
+
+struct acpi_interface_info *acpi_ut_get_interface(acpi_string interface_name);
+
+acpi_status acpi_ut_osi_implementation(struct acpi_walk_state *walk_state);
+
+/*
+ * utpredef - support for predefined names
+ */
+const union acpi_predefined_info *acpi_ut_get_next_predefined_method(const union
+ acpi_predefined_info
+ *this_name);
+
+const union acpi_predefined_info *acpi_ut_match_predefined_method(char *name);
+
+const union acpi_predefined_info *acpi_ut_match_resource_name(char *name);
+
+void
+acpi_ut_display_predefined_method(char *buffer,
+ const union acpi_predefined_info *this_name,
+ u8 multi_line);
+
+void acpi_ut_get_expected_return_types(char *buffer, u32 expected_btypes);
+
+u32 acpi_ut_get_resource_bit_width(char *buffer, u16 types);
+
+/*
* utstate - Generic state creation/cache routines
*/
void
@@ -416,44 +537,28 @@ void acpi_ut_delete_generic_state(union acpi_generic_state *state);
* utmath
*/
acpi_status
-acpi_ut_divide(acpi_integer in_dividend,
- acpi_integer in_divisor,
- acpi_integer * out_quotient, acpi_integer * out_remainder);
+acpi_ut_divide(u64 in_dividend,
+ u64 in_divisor, u64 *out_quotient, u64 *out_remainder);
acpi_status
-acpi_ut_short_divide(acpi_integer in_dividend,
- u32 divisor,
- acpi_integer * out_quotient, u32 * out_remainder);
+acpi_ut_short_divide(u64 in_dividend,
+ u32 divisor, u64 *out_quotient, u32 *out_remainder);
/*
* utmisc
*/
-const char *acpi_ut_validate_exception(acpi_status status);
-
-u8 acpi_ut_is_aml_table(struct acpi_table_header *table);
+const struct acpi_exception_info *acpi_ut_validate_exception(acpi_status
+ status);
-acpi_status acpi_ut_allocate_owner_id(acpi_owner_id * owner_id);
+u8 acpi_ut_is_pci_root_bridge(char *id);
-void acpi_ut_release_owner_id(acpi_owner_id * owner_id);
+u8 acpi_ut_is_aml_table(struct acpi_table_header *table);
acpi_status
acpi_ut_walk_package_tree(union acpi_operand_object *source_object,
void *target_object,
acpi_pkg_callback walk_callback, void *context);
-void acpi_ut_strupr(char *src_string);
-
-void acpi_ut_print_string(char *string, u8 max_length);
-
-u8 acpi_ut_valid_acpi_name(u32 name);
-
-acpi_name acpi_ut_repair_name(char *name);
-
-u8 acpi_ut_valid_acpi_char(char character, u32 position);
-
-acpi_status
-acpi_ut_strtoul64(char *string, u32 base, acpi_integer * ret_integer);
-
/* Values for Base above (16=Hex, 10=Decimal) */
#define ACPI_ANY_BASE 0
@@ -470,15 +575,25 @@ acpi_ut_display_init_pathname(u8 type,
#endif
/*
+ * utownerid - Support for Table/Method Owner IDs
+ */
+acpi_status acpi_ut_allocate_owner_id(acpi_owner_id * owner_id);
+
+void acpi_ut_release_owner_id(acpi_owner_id * owner_id);
+
+/*
* utresrc
*/
acpi_status
-acpi_ut_walk_aml_resources(u8 * aml,
+acpi_ut_walk_aml_resources(struct acpi_walk_state *walk_state,
+ u8 *aml,
acpi_size aml_length,
acpi_walk_aml_callback user_function,
void **context);
-acpi_status acpi_ut_validate_resource(void *aml, u8 * return_index);
+acpi_status
+acpi_ut_validate_resource(struct acpi_walk_state *walk_state,
+ void *aml, u8 *return_index);
u32 acpi_ut_get_descriptor_length(void *aml);
@@ -489,8 +604,39 @@ u8 acpi_ut_get_resource_header_length(void *aml);
u8 acpi_ut_get_resource_type(void *aml);
acpi_status
-acpi_ut_get_resource_end_tag(union acpi_operand_object *obj_desc,
- u8 ** end_tag);
+acpi_ut_get_resource_end_tag(union acpi_operand_object *obj_desc, u8 **end_tag);
+
+/*
+ * utstring - String and character utilities
+ */
+void acpi_ut_strupr(char *src_string);
+
+void acpi_ut_strlwr(char *src_string);
+
+int acpi_ut_stricmp(char *string1, char *string2);
+
+acpi_status acpi_ut_strtoul64(char *string, u32 base, u64 *ret_integer);
+
+void acpi_ut_print_string(char *string, u16 max_length);
+
+void ut_convert_backslashes(char *pathname);
+
+u8 acpi_ut_valid_acpi_name(char *name);
+
+u8 acpi_ut_valid_acpi_char(char character, u32 position);
+
+void acpi_ut_repair_name(char *name);
+
+#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION)
+u8 acpi_ut_safe_strcpy(char *dest, acpi_size dest_size, char *source);
+
+u8 acpi_ut_safe_strcat(char *dest, acpi_size dest_size, char *source);
+
+u8
+acpi_ut_safe_strncat(char *dest,
+ acpi_size dest_size,
+ char *source, acpi_size max_transfer_length);
+#endif
/*
* utmutex - mutex support
@@ -516,12 +662,6 @@ acpi_status
acpi_ut_initialize_buffer(struct acpi_buffer *buffer,
acpi_size required_length);
-void *acpi_ut_allocate(acpi_size size,
- u32 component, const char *module, u32 line);
-
-void *acpi_ut_allocate_zeroed(acpi_size size,
- u32 component, const char *module, u32 line);
-
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
void *acpi_ut_allocate_and_track(acpi_size size,
u32 component, const char *module, u32 line);
@@ -544,6 +684,63 @@ acpi_status
acpi_ut_create_list(char *list_name,
u16 object_size, struct acpi_memory_list **return_cache);
-#endif
+#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
+
+/*
+ * utaddress - address range check
+ */
+acpi_status
+acpi_ut_add_address_range(acpi_adr_space_type space_id,
+ acpi_physical_address address,
+ u32 length, struct acpi_namespace_node *region_node);
+
+void
+acpi_ut_remove_address_range(acpi_adr_space_type space_id,
+ struct acpi_namespace_node *region_node);
+
+u32
+acpi_ut_check_address_range(acpi_adr_space_type space_id,
+ acpi_physical_address address, u32 length, u8 warn);
+
+void acpi_ut_delete_address_lists(void);
+
+/*
+ * utxferror - various error/warning output functions
+ */
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_predefined_warning(const char *module_name,
+ u32 line_number,
+ char *pathname,
+ u8 node_flags, const char *format, ...);
+
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_predefined_info(const char *module_name,
+ u32 line_number,
+ char *pathname, u8 node_flags, const char *format, ...);
+
+void ACPI_INTERNAL_VAR_XFACE
+acpi_ut_predefined_bios_error(const char *module_name,
+ u32 line_number,
+ char *pathname,
+ u8 node_flags, const char *format, ...);
+
+void
+acpi_ut_namespace_error(const char *module_name,
+ u32 line_number,
+ const char *internal_name, acpi_status lookup_status);
+
+void
+acpi_ut_method_error(const char *module_name,
+ u32 line_number,
+ const char *message,
+ struct acpi_namespace_node *node,
+ const char *path, acpi_status lookup_status);
+
+/*
+ * Utility functions for ACPI names and IDs
+ */
+const struct ah_predefined_name *acpi_ah_match_predefined_name(char *nameseg);
+
+const struct ah_device_id *acpi_ah_match_hardware_id(char *hid);
#endif /* _ACUTILS_H */
diff --git a/drivers/acpi/acpica/amlcode.h b/drivers/acpi/acpica/amlcode.h
index ff851c5df69..5908ccec6ae 100644
--- a/drivers/acpi/acpica/amlcode.h
+++ b/drivers/acpi/acpica/amlcode.h
@@ -7,7 +7,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -182,13 +182,21 @@
/*
* Combination opcodes (actually two one-byte opcodes)
- * Used by the disassembler and i_aSL compiler
+ * Used by the disassembler and iASL compiler
*/
#define AML_LGREATEREQUAL_OP (u16) 0x9295
#define AML_LLESSEQUAL_OP (u16) 0x9294
#define AML_LNOTEQUAL_OP (u16) 0x9293
/*
+ * Opcodes for "Field" operators
+ */
+#define AML_FIELD_OFFSET_OP (u8) 0x00
+#define AML_FIELD_ACCESS_OP (u8) 0x01
+#define AML_FIELD_CONNECTION_OP (u8) 0x02 /* ACPI 5.0 */
+#define AML_FIELD_EXT_ACCESS_OP (u8) 0x03 /* ACPI 5.0 */
+
+/*
* Internal opcodes
* Use only "Unknown" AML opcodes, don't attempt to use
* any valid ACPI ASCII values (A-Z, 0-9, '-')
@@ -202,6 +210,8 @@
#define AML_INT_METHODCALL_OP (u16) 0x0035
#define AML_INT_RETURN_VALUE_OP (u16) 0x0036
#define AML_INT_EVAL_SUBTREE_OP (u16) 0x0037
+#define AML_INT_CONNECTION_OP (u16) 0x0038
+#define AML_INT_EXTACCESSFIELD_OP (u16) 0x0039
#define ARG_NONE 0x0
@@ -270,7 +280,7 @@
/* Multiple/complex types */
-#define ARGI_DATAOBJECT 0x12 /* Buffer, String, package or reference to a Node - Used only by size_of operator */
+#define ARGI_DATAOBJECT 0x12 /* Buffer, String, package or reference to a node - Used only by size_of operator */
#define ARGI_COMPLEXOBJ 0x13 /* Buffer, String, or package (Used by INDEX op only) */
#define ARGI_REF_OR_STRING 0x14 /* Reference or String (Used by DEREFOF op only) */
#define ARGI_REGION_OR_BUFFER 0x15 /* Used by LOAD op only */
@@ -394,20 +404,6 @@
#define AML_CLASS_METHOD_CALL 0x09
#define AML_CLASS_UNKNOWN 0x0A
-/* Predefined Operation Region space_iDs */
-
-typedef enum {
- REGION_MEMORY = 0,
- REGION_IO,
- REGION_PCI_CONFIG,
- REGION_EC,
- REGION_SMBUS,
- REGION_CMOS,
- REGION_PCI_BAR,
- REGION_DATA_TABLE, /* Internal use only */
- REGION_FIXED_HW = 0x7F
-} AML_REGION_TYPES;
-
/* Comparison operation codes for match_op operator */
typedef enum {
@@ -470,25 +466,22 @@ typedef enum {
* access_as keyword
*/
typedef enum {
- AML_FIELD_ATTRIB_SMB_QUICK = 0x02,
- AML_FIELD_ATTRIB_SMB_SEND_RCV = 0x04,
- AML_FIELD_ATTRIB_SMB_BYTE = 0x06,
- AML_FIELD_ATTRIB_SMB_WORD = 0x08,
- AML_FIELD_ATTRIB_SMB_BLOCK = 0x0A,
- AML_FIELD_ATTRIB_SMB_WORD_CALL = 0x0C,
- AML_FIELD_ATTRIB_SMB_BLOCK_CALL = 0x0D
+ AML_FIELD_ATTRIB_QUICK = 0x02,
+ AML_FIELD_ATTRIB_SEND_RCV = 0x04,
+ AML_FIELD_ATTRIB_BYTE = 0x06,
+ AML_FIELD_ATTRIB_WORD = 0x08,
+ AML_FIELD_ATTRIB_BLOCK = 0x0A,
+ AML_FIELD_ATTRIB_MULTIBYTE = 0x0B,
+ AML_FIELD_ATTRIB_WORD_CALL = 0x0C,
+ AML_FIELD_ATTRIB_BLOCK_CALL = 0x0D,
+ AML_FIELD_ATTRIB_RAW_BYTES = 0x0E,
+ AML_FIELD_ATTRIB_RAW_PROCESS = 0x0F
} AML_ACCESS_ATTRIBUTE;
-/* Bit fields in method_flags byte */
+/* Bit fields in the AML method_flags byte */
#define AML_METHOD_ARG_COUNT 0x07
#define AML_METHOD_SERIALIZED 0x08
-#define AML_METHOD_SYNCH_LEVEL 0xF0
-
-/* METHOD_FLAGS_ARG_COUNT is not used internally, define additional flags */
-
-#define AML_METHOD_INTERNAL_ONLY 0x01
-#define AML_METHOD_RESERVED1 0x02
-#define AML_METHOD_RESERVED2 0x04
+#define AML_METHOD_SYNC_LEVEL 0xF0
#endif /* __AMLCODE_H__ */
diff --git a/drivers/acpi/acpica/amlresrc.h b/drivers/acpi/acpica/amlresrc.h
index 7b070e42b7c..f3f83440844 100644
--- a/drivers/acpi/acpica/amlresrc.h
+++ b/drivers/acpi/acpica/amlresrc.h
@@ -1,4 +1,3 @@
-
/******************************************************************************
*
* Module Name: amlresrc.h - AML resource descriptors
@@ -6,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -58,29 +57,48 @@
#define ACPI_RESTAG_TYPESPECIFICATTRIBUTES "_ATT"
#define ACPI_RESTAG_BASEADDRESS "_BAS"
#define ACPI_RESTAG_BUSMASTER "_BM_" /* Master(1), Slave(0) */
+#define ACPI_RESTAG_DEBOUNCETIME "_DBT"
#define ACPI_RESTAG_DECODE "_DEC"
+#define ACPI_RESTAG_DEVICEPOLARITY "_DPL"
#define ACPI_RESTAG_DMA "_DMA"
#define ACPI_RESTAG_DMATYPE "_TYP" /* Compatible(0), A(1), B(2), F(3) */
+#define ACPI_RESTAG_DRIVESTRENGTH "_DRS"
+#define ACPI_RESTAG_ENDIANNESS "_END"
+#define ACPI_RESTAG_FLOWCONTROL "_FLC"
#define ACPI_RESTAG_GRANULARITY "_GRA"
#define ACPI_RESTAG_INTERRUPT "_INT"
#define ACPI_RESTAG_INTERRUPTLEVEL "_LL_" /* active_lo(1), active_hi(0) */
#define ACPI_RESTAG_INTERRUPTSHARE "_SHR" /* Shareable(1), no_share(0) */
#define ACPI_RESTAG_INTERRUPTTYPE "_HE_" /* Edge(1), Level(0) */
+#define ACPI_RESTAG_IORESTRICTION "_IOR"
#define ACPI_RESTAG_LENGTH "_LEN"
+#define ACPI_RESTAG_LINE "_LIN"
#define ACPI_RESTAG_MEMATTRIBUTES "_MTP" /* Memory(0), Reserved(1), ACPI(2), NVS(3) */
#define ACPI_RESTAG_MEMTYPE "_MEM" /* non_cache(0), Cacheable(1) Cache+combine(2), Cache+prefetch(3) */
#define ACPI_RESTAG_MAXADDR "_MAX"
#define ACPI_RESTAG_MINADDR "_MIN"
#define ACPI_RESTAG_MAXTYPE "_MAF"
#define ACPI_RESTAG_MINTYPE "_MIF"
+#define ACPI_RESTAG_MODE "_MOD"
+#define ACPI_RESTAG_PARITY "_PAR"
+#define ACPI_RESTAG_PHASE "_PHA"
+#define ACPI_RESTAG_PIN "_PIN"
+#define ACPI_RESTAG_PINCONFIG "_PPI"
+#define ACPI_RESTAG_POLARITY "_POL"
#define ACPI_RESTAG_REGISTERBITOFFSET "_RBO"
#define ACPI_RESTAG_REGISTERBITWIDTH "_RBW"
#define ACPI_RESTAG_RANGETYPE "_RNG"
#define ACPI_RESTAG_READWRITETYPE "_RW_" /* read_only(0), Writeable (1) */
+#define ACPI_RESTAG_LENGTH_RX "_RXL"
+#define ACPI_RESTAG_LENGTH_TX "_TXL"
+#define ACPI_RESTAG_SLAVEMODE "_SLV"
+#define ACPI_RESTAG_SPEED "_SPE"
+#define ACPI_RESTAG_STOPBITS "_STB"
#define ACPI_RESTAG_TRANSLATION "_TRA"
#define ACPI_RESTAG_TRANSTYPE "_TRS" /* Sparse(1), Dense(0) */
#define ACPI_RESTAG_TYPE "_TTP" /* Translation(1), Static (0) */
-#define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8_and16(1), 16(2) */
+#define ACPI_RESTAG_XFERTYPE "_SIZ" /* 8(0), 8And16(1), 16(2) */
+#define ACPI_RESTAG_VENDORDATA "_VEN"
/* Default sizes for "small" resource descriptors */
@@ -90,6 +108,7 @@
#define ASL_RDESC_END_DEPEND_SIZE 0x00
#define ASL_RDESC_IO_SIZE 0x07
#define ASL_RDESC_FIXED_IO_SIZE 0x03
+#define ASL_RDESC_FIXED_DMA_SIZE 0x05
#define ASL_RDESC_END_TAG_SIZE 0x01
struct asl_resource_node {
@@ -164,6 +183,12 @@ struct aml_resource_end_tag {
AML_RESOURCE_SMALL_HEADER_COMMON u8 checksum;
};
+struct aml_resource_fixed_dma {
+ AML_RESOURCE_SMALL_HEADER_COMMON u16 request_lines;
+ u16 channels;
+ u8 width;
+};
+
/*
* LARGE descriptors
*/
@@ -174,6 +199,12 @@ struct aml_resource_end_tag {
struct aml_resource_large_header {
AML_RESOURCE_LARGE_HEADER_COMMON};
+/* General Flags for address space resource descriptors */
+
+#define ACPI_RESOURCE_FLAG_DEC 2
+#define ACPI_RESOURCE_FLAG_MIF 4
+#define ACPI_RESOURCE_FLAG_MAF 8
+
struct aml_resource_memory24 {
AML_RESOURCE_LARGE_HEADER_COMMON u8 flags;
u16 minimum;
@@ -209,7 +240,7 @@ AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_ADDRESS_COMMON};
struct aml_resource_extended_address64 {
AML_RESOURCE_LARGE_HEADER_COMMON
- AML_RESOURCE_ADDRESS_COMMON u8 revision_iD;
+ AML_RESOURCE_ADDRESS_COMMON u8 revision_ID;
u8 reserved;
u64 granularity;
u64 minimum;
@@ -263,6 +294,110 @@ struct aml_resource_generic_register {
u64 address;
};
+/* Common descriptor for gpio_int and gpio_io (ACPI 5.0) */
+
+struct aml_resource_gpio {
+ AML_RESOURCE_LARGE_HEADER_COMMON u8 revision_id;
+ u8 connection_type;
+ u16 flags;
+ u16 int_flags;
+ u8 pin_config;
+ u16 drive_strength;
+ u16 debounce_timeout;
+ u16 pin_table_offset;
+ u8 res_source_index;
+ u16 res_source_offset;
+ u16 vendor_offset;
+ u16 vendor_length;
+ /*
+ * Optional fields follow immediately:
+ * 1) PIN list (Words)
+ * 2) Resource Source String
+ * 3) Vendor Data bytes
+ */
+};
+
+#define AML_RESOURCE_GPIO_REVISION 1 /* ACPI 5.0 */
+
+/* Values for connection_type above */
+
+#define AML_RESOURCE_GPIO_TYPE_INT 0
+#define AML_RESOURCE_GPIO_TYPE_IO 1
+#define AML_RESOURCE_MAX_GPIOTYPE 1
+
+/* Common preamble for all serial descriptors (ACPI 5.0) */
+
+#define AML_RESOURCE_SERIAL_COMMON \
+ u8 revision_id; \
+ u8 res_source_index; \
+ u8 type; \
+ u8 flags; \
+ u16 type_specific_flags; \
+ u8 type_revision_id; \
+ u16 type_data_length; \
+
+/* Values for the type field above */
+
+#define AML_RESOURCE_I2C_SERIALBUSTYPE 1
+#define AML_RESOURCE_SPI_SERIALBUSTYPE 2
+#define AML_RESOURCE_UART_SERIALBUSTYPE 3
+#define AML_RESOURCE_MAX_SERIALBUSTYPE 3
+#define AML_RESOURCE_VENDOR_SERIALBUSTYPE 192 /* Vendor defined is 0xC0-0xFF (NOT SUPPORTED) */
+
+struct aml_resource_common_serialbus {
+AML_RESOURCE_LARGE_HEADER_COMMON AML_RESOURCE_SERIAL_COMMON};
+
+struct aml_resource_i2c_serialbus {
+ AML_RESOURCE_LARGE_HEADER_COMMON
+ AML_RESOURCE_SERIAL_COMMON u32 connection_speed;
+ u16 slave_address;
+ /*
+ * Optional fields follow immediately:
+ * 1) Vendor Data bytes
+ * 2) Resource Source String
+ */
+};
+
+#define AML_RESOURCE_I2C_REVISION 1 /* ACPI 5.0 */
+#define AML_RESOURCE_I2C_TYPE_REVISION 1 /* ACPI 5.0 */
+#define AML_RESOURCE_I2C_MIN_DATA_LEN 6
+
+struct aml_resource_spi_serialbus {
+ AML_RESOURCE_LARGE_HEADER_COMMON
+ AML_RESOURCE_SERIAL_COMMON u32 connection_speed;
+ u8 data_bit_length;
+ u8 clock_phase;
+ u8 clock_polarity;
+ u16 device_selection;
+ /*
+ * Optional fields follow immediately:
+ * 1) Vendor Data bytes
+ * 2) Resource Source String
+ */
+};
+
+#define AML_RESOURCE_SPI_REVISION 1 /* ACPI 5.0 */
+#define AML_RESOURCE_SPI_TYPE_REVISION 1 /* ACPI 5.0 */
+#define AML_RESOURCE_SPI_MIN_DATA_LEN 9
+
+struct aml_resource_uart_serialbus {
+ AML_RESOURCE_LARGE_HEADER_COMMON
+ AML_RESOURCE_SERIAL_COMMON u32 default_baud_rate;
+ u16 rx_fifo_size;
+ u16 tx_fifo_size;
+ u8 parity;
+ u8 lines_enabled;
+ /*
+ * Optional fields follow immediately:
+ * 1) Vendor Data bytes
+ * 2) Resource Source String
+ */
+};
+
+#define AML_RESOURCE_UART_REVISION 1 /* ACPI 5.0 */
+#define AML_RESOURCE_UART_TYPE_REVISION 1 /* ACPI 5.0 */
+#define AML_RESOURCE_UART_MIN_DATA_LEN 10
+
/* restore default alignment */
#pragma pack()
@@ -284,6 +419,7 @@ union aml_resource {
struct aml_resource_end_dependent end_dpf;
struct aml_resource_io io;
struct aml_resource_fixed_io fixed_io;
+ struct aml_resource_fixed_dma fixed_dma;
struct aml_resource_vendor_small vendor_small;
struct aml_resource_end_tag end_tag;
@@ -299,6 +435,11 @@ union aml_resource {
struct aml_resource_address64 address64;
struct aml_resource_extended_address64 ext_address64;
struct aml_resource_extended_irq extended_irq;
+ struct aml_resource_gpio gpio;
+ struct aml_resource_i2c_serialbus i2c_serial_bus;
+ struct aml_resource_spi_serialbus spi_serial_bus;
+ struct aml_resource_uart_serialbus uart_serial_bus;
+ struct aml_resource_common_serialbus common_serial_bus;
/* Utility overlays */
diff --git a/drivers/acpi/acpica/dsargs.c b/drivers/acpi/acpica/dsargs.c
new file mode 100644
index 00000000000..720b1cdda71
--- /dev/null
+++ b/drivers/acpi/acpica/dsargs.c
@@ -0,0 +1,405 @@
+/******************************************************************************
+ *
+ * Module Name: dsargs - Support for execution of dynamic arguments for static
+ * objects (regions, fields, buffer fields, etc.)
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#include <acpi/acpi.h>
+#include "accommon.h"
+#include "acparser.h"
+#include "amlcode.h"
+#include "acdispat.h"
+#include "acnamesp.h"
+
+#define _COMPONENT ACPI_DISPATCHER
+ACPI_MODULE_NAME("dsargs")
+
+/* Local prototypes */
+static acpi_status
+acpi_ds_execute_arguments(struct acpi_namespace_node *node,
+ struct acpi_namespace_node *scope_node,
+ u32 aml_length, u8 *aml_start);
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_execute_arguments
+ *
+ * PARAMETERS: node - Object NS node
+ * scope_node - Parent NS node
+ * aml_length - Length of executable AML
+ * aml_start - Pointer to the AML
+ *
+ * RETURN: Status.
+ *
+ * DESCRIPTION: Late (deferred) execution of region or field arguments
+ *
+ ******************************************************************************/
+
+static acpi_status
+acpi_ds_execute_arguments(struct acpi_namespace_node *node,
+ struct acpi_namespace_node *scope_node,
+ u32 aml_length, u8 *aml_start)
+{
+ acpi_status status;
+ union acpi_parse_object *op;
+ struct acpi_walk_state *walk_state;
+
+ ACPI_FUNCTION_TRACE(ds_execute_arguments);
+
+ /* Allocate a new parser op to be the root of the parsed tree */
+
+ op = acpi_ps_alloc_op(AML_INT_EVAL_SUBTREE_OP);
+ if (!op) {
+ return_ACPI_STATUS(AE_NO_MEMORY);
+ }
+
+ /* Save the Node for use in acpi_ps_parse_aml */
+
+ op->common.node = scope_node;
+
+ /* Create and initialize a new parser state */
+
+ walk_state = acpi_ds_create_walk_state(0, NULL, NULL, NULL);
+ if (!walk_state) {
+ status = AE_NO_MEMORY;
+ goto cleanup;
+ }
+
+ status = acpi_ds_init_aml_walk(walk_state, op, NULL, aml_start,
+ aml_length, NULL, ACPI_IMODE_LOAD_PASS1);
+ if (ACPI_FAILURE(status)) {
+ acpi_ds_delete_walk_state(walk_state);
+ goto cleanup;
+ }
+
+ /* Mark this parse as a deferred opcode */
+
+ walk_state->parse_flags = ACPI_PARSE_DEFERRED_OP;
+ walk_state->deferred_node = node;
+
+ /* Pass1: Parse the entire declaration */
+
+ status = acpi_ps_parse_aml(walk_state);
+ if (ACPI_FAILURE(status)) {
+ goto cleanup;
+ }
+
+ /* Get and init the Op created above */
+
+ op->common.node = node;
+ acpi_ps_delete_parse_tree(op);
+
+ /* Evaluate the deferred arguments */
+
+ op = acpi_ps_alloc_op(AML_INT_EVAL_SUBTREE_OP);
+ if (!op) {
+ return_ACPI_STATUS(AE_NO_MEMORY);
+ }
+
+ op->common.node = scope_node;
+
+ /* Create and initialize a new parser state */
+
+ walk_state = acpi_ds_create_walk_state(0, NULL, NULL, NULL);
+ if (!walk_state) {
+ status = AE_NO_MEMORY;
+ goto cleanup;
+ }
+
+ /* Execute the opcode and arguments */
+
+ status = acpi_ds_init_aml_walk(walk_state, op, NULL, aml_start,
+ aml_length, NULL, ACPI_IMODE_EXECUTE);
+ if (ACPI_FAILURE(status)) {
+ acpi_ds_delete_walk_state(walk_state);
+ goto cleanup;
+ }
+
+ /* Mark this execution as a deferred opcode */
+
+ walk_state->deferred_node = node;
+ status = acpi_ps_parse_aml(walk_state);
+
+cleanup:
+ acpi_ps_delete_parse_tree(op);
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_get_buffer_field_arguments
+ *
+ * PARAMETERS: obj_desc - A valid buffer_field object
+ *
+ * RETURN: Status.
+ *
+ * DESCRIPTION: Get buffer_field Buffer and Index. This implements the late
+ * evaluation of these field attributes.
+ *
+ ******************************************************************************/
+
+acpi_status
+acpi_ds_get_buffer_field_arguments(union acpi_operand_object *obj_desc)
+{
+ union acpi_operand_object *extra_desc;
+ struct acpi_namespace_node *node;
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE_PTR(ds_get_buffer_field_arguments, obj_desc);
+
+ if (obj_desc->common.flags & AOPOBJ_DATA_VALID) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /* Get the AML pointer (method object) and buffer_field node */
+
+ extra_desc = acpi_ns_get_secondary_object(obj_desc);
+ node = obj_desc->buffer_field.node;
+
+ ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname(ACPI_TYPE_BUFFER_FIELD,
+ node, NULL));
+
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "[%4.4s] BufferField Arg Init\n",
+ acpi_ut_get_node_name(node)));
+
+ /* Execute the AML code for the term_arg arguments */
+
+ status = acpi_ds_execute_arguments(node, node->parent,
+ extra_desc->extra.aml_length,
+ extra_desc->extra.aml_start);
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_get_bank_field_arguments
+ *
+ * PARAMETERS: obj_desc - A valid bank_field object
+ *
+ * RETURN: Status.
+ *
+ * DESCRIPTION: Get bank_field bank_value. This implements the late
+ * evaluation of these field attributes.
+ *
+ ******************************************************************************/
+
+acpi_status
+acpi_ds_get_bank_field_arguments(union acpi_operand_object *obj_desc)
+{
+ union acpi_operand_object *extra_desc;
+ struct acpi_namespace_node *node;
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE_PTR(ds_get_bank_field_arguments, obj_desc);
+
+ if (obj_desc->common.flags & AOPOBJ_DATA_VALID) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /* Get the AML pointer (method object) and bank_field node */
+
+ extra_desc = acpi_ns_get_secondary_object(obj_desc);
+ node = obj_desc->bank_field.node;
+
+ ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname
+ (ACPI_TYPE_LOCAL_BANK_FIELD, node, NULL));
+
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "[%4.4s] BankField Arg Init\n",
+ acpi_ut_get_node_name(node)));
+
+ /* Execute the AML code for the term_arg arguments */
+
+ status = acpi_ds_execute_arguments(node, node->parent,
+ extra_desc->extra.aml_length,
+ extra_desc->extra.aml_start);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ status = acpi_ut_add_address_range(obj_desc->region.space_id,
+ obj_desc->region.address,
+ obj_desc->region.length, node);
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_get_buffer_arguments
+ *
+ * PARAMETERS: obj_desc - A valid Buffer object
+ *
+ * RETURN: Status.
+ *
+ * DESCRIPTION: Get Buffer length and initializer byte list. This implements
+ * the late evaluation of these attributes.
+ *
+ ******************************************************************************/
+
+acpi_status acpi_ds_get_buffer_arguments(union acpi_operand_object *obj_desc)
+{
+ struct acpi_namespace_node *node;
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE_PTR(ds_get_buffer_arguments, obj_desc);
+
+ if (obj_desc->common.flags & AOPOBJ_DATA_VALID) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /* Get the Buffer node */
+
+ node = obj_desc->buffer.node;
+ if (!node) {
+ ACPI_ERROR((AE_INFO,
+ "No pointer back to namespace node in buffer object %p",
+ obj_desc));
+ return_ACPI_STATUS(AE_AML_INTERNAL);
+ }
+
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Buffer Arg Init\n"));
+
+ /* Execute the AML code for the term_arg arguments */
+
+ status = acpi_ds_execute_arguments(node, node,
+ obj_desc->buffer.aml_length,
+ obj_desc->buffer.aml_start);
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_get_package_arguments
+ *
+ * PARAMETERS: obj_desc - A valid Package object
+ *
+ * RETURN: Status.
+ *
+ * DESCRIPTION: Get Package length and initializer byte list. This implements
+ * the late evaluation of these attributes.
+ *
+ ******************************************************************************/
+
+acpi_status acpi_ds_get_package_arguments(union acpi_operand_object *obj_desc)
+{
+ struct acpi_namespace_node *node;
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE_PTR(ds_get_package_arguments, obj_desc);
+
+ if (obj_desc->common.flags & AOPOBJ_DATA_VALID) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /* Get the Package node */
+
+ node = obj_desc->package.node;
+ if (!node) {
+ ACPI_ERROR((AE_INFO,
+ "No pointer back to namespace node in package %p",
+ obj_desc));
+ return_ACPI_STATUS(AE_AML_INTERNAL);
+ }
+
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Package Arg Init\n"));
+
+ /* Execute the AML code for the term_arg arguments */
+
+ status = acpi_ds_execute_arguments(node, node,
+ obj_desc->package.aml_length,
+ obj_desc->package.aml_start);
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_get_region_arguments
+ *
+ * PARAMETERS: obj_desc - A valid region object
+ *
+ * RETURN: Status.
+ *
+ * DESCRIPTION: Get region address and length. This implements the late
+ * evaluation of these region attributes.
+ *
+ ******************************************************************************/
+
+acpi_status acpi_ds_get_region_arguments(union acpi_operand_object *obj_desc)
+{
+ struct acpi_namespace_node *node;
+ acpi_status status;
+ union acpi_operand_object *extra_desc;
+
+ ACPI_FUNCTION_TRACE_PTR(ds_get_region_arguments, obj_desc);
+
+ if (obj_desc->region.flags & AOPOBJ_DATA_VALID) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ extra_desc = acpi_ns_get_secondary_object(obj_desc);
+ if (!extra_desc) {
+ return_ACPI_STATUS(AE_NOT_EXIST);
+ }
+
+ /* Get the Region node */
+
+ node = obj_desc->region.node;
+
+ ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname
+ (ACPI_TYPE_REGION, node, NULL));
+
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "[%4.4s] OpRegion Arg Init at AML %p\n",
+ acpi_ut_get_node_name(node),
+ extra_desc->extra.aml_start));
+
+ /* Execute the argument AML */
+
+ status = acpi_ds_execute_arguments(node, extra_desc->extra.scope_node,
+ extra_desc->extra.aml_length,
+ extra_desc->extra.aml_start);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ status = acpi_ut_add_address_range(obj_desc->region.space_id,
+ obj_desc->region.address,
+ obj_desc->region.length, node);
+ return_ACPI_STATUS(status);
+}
diff --git a/drivers/acpi/acpica/dscontrol.c b/drivers/acpi/acpica/dscontrol.c
new file mode 100644
index 00000000000..8daf9de82b7
--- /dev/null
+++ b/drivers/acpi/acpica/dscontrol.c
@@ -0,0 +1,410 @@
+/******************************************************************************
+ *
+ * Module Name: dscontrol - Support for execution control opcodes -
+ * if/else/while/return
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#include <acpi/acpi.h>
+#include "accommon.h"
+#include "amlcode.h"
+#include "acdispat.h"
+#include "acinterp.h"
+
+#define _COMPONENT ACPI_DISPATCHER
+ACPI_MODULE_NAME("dscontrol")
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_exec_begin_control_op
+ *
+ * PARAMETERS: walk_list - The list that owns the walk stack
+ * op - The control Op
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Handles all control ops encountered during control method
+ * execution.
+ *
+ ******************************************************************************/
+acpi_status
+acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,
+ union acpi_parse_object *op)
+{
+ acpi_status status = AE_OK;
+ union acpi_generic_state *control_state;
+
+ ACPI_FUNCTION_NAME(ds_exec_begin_control_op);
+
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p Opcode=%2.2X State=%p\n",
+ op, op->common.aml_opcode, walk_state));
+
+ switch (op->common.aml_opcode) {
+ case AML_WHILE_OP:
+ /*
+ * If this is an additional iteration of a while loop, continue.
+ * There is no need to allocate a new control state.
+ */
+ if (walk_state->control_state) {
+ if (walk_state->control_state->control.
+ aml_predicate_start ==
+ (walk_state->parser_state.aml - 1)) {
+
+ /* Reset the state to start-of-loop */
+
+ walk_state->control_state->common.state =
+ ACPI_CONTROL_CONDITIONAL_EXECUTING;
+ break;
+ }
+ }
+
+ /*lint -fallthrough */
+
+ case AML_IF_OP:
+ /*
+ * IF/WHILE: Create a new control state to manage these
+ * constructs. We need to manage these as a stack, in order
+ * to handle nesting.
+ */
+ control_state = acpi_ut_create_control_state();
+ if (!control_state) {
+ status = AE_NO_MEMORY;
+ break;
+ }
+ /*
+ * Save a pointer to the predicate for multiple executions
+ * of a loop
+ */
+ control_state->control.aml_predicate_start =
+ walk_state->parser_state.aml - 1;
+ control_state->control.package_end =
+ walk_state->parser_state.pkg_end;
+ control_state->control.opcode = op->common.aml_opcode;
+
+ /* Push the control state on this walk's control stack */
+
+ acpi_ut_push_generic_state(&walk_state->control_state,
+ control_state);
+ break;
+
+ case AML_ELSE_OP:
+
+ /* Predicate is in the state object */
+ /* If predicate is true, the IF was executed, ignore ELSE part */
+
+ if (walk_state->last_predicate) {
+ status = AE_CTRL_TRUE;
+ }
+
+ break;
+
+ case AML_RETURN_OP:
+
+ break;
+
+ default:
+
+ break;
+ }
+
+ return (status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_exec_end_control_op
+ *
+ * PARAMETERS: walk_list - The list that owns the walk stack
+ * op - The control Op
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Handles all control ops encountered during control method
+ * execution.
+ *
+ ******************************************************************************/
+
+acpi_status
+acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state,
+ union acpi_parse_object * op)
+{
+ acpi_status status = AE_OK;
+ union acpi_generic_state *control_state;
+
+ ACPI_FUNCTION_NAME(ds_exec_end_control_op);
+
+ switch (op->common.aml_opcode) {
+ case AML_IF_OP:
+
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "[IF_OP] Op=%p\n", op));
+
+ /*
+ * Save the result of the predicate in case there is an
+ * ELSE to come
+ */
+ walk_state->last_predicate =
+ (u8)walk_state->control_state->common.value;
+
+ /*
+ * Pop the control state that was created at the start
+ * of the IF and free it
+ */
+ control_state =
+ acpi_ut_pop_generic_state(&walk_state->control_state);
+ acpi_ut_delete_generic_state(control_state);
+ break;
+
+ case AML_ELSE_OP:
+
+ break;
+
+ case AML_WHILE_OP:
+
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "[WHILE_OP] Op=%p\n", op));
+
+ control_state = walk_state->control_state;
+ if (control_state->common.value) {
+
+ /* Predicate was true, the body of the loop was just executed */
+
+ /*
+ * This loop counter mechanism allows the interpreter to escape
+ * possibly infinite loops. This can occur in poorly written AML
+ * when the hardware does not respond within a while loop and the
+ * loop does not implement a timeout.
+ */
+ control_state->control.loop_count++;
+ if (control_state->control.loop_count >
+ ACPI_MAX_LOOP_ITERATIONS) {
+ status = AE_AML_INFINITE_LOOP;
+ break;
+ }
+
+ /*
+ * Go back and evaluate the predicate and maybe execute the loop
+ * another time
+ */
+ status = AE_CTRL_PENDING;
+ walk_state->aml_last_while =
+ control_state->control.aml_predicate_start;
+ break;
+ }
+
+ /* Predicate was false, terminate this while loop */
+
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "[WHILE_OP] termination! Op=%p\n", op));
+
+ /* Pop this control state and free it */
+
+ control_state =
+ acpi_ut_pop_generic_state(&walk_state->control_state);
+ acpi_ut_delete_generic_state(control_state);
+ break;
+
+ case AML_RETURN_OP:
+
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "[RETURN_OP] Op=%p Arg=%p\n", op,
+ op->common.value.arg));
+
+ /*
+ * One optional operand -- the return value
+ * It can be either an immediate operand or a result that
+ * has been bubbled up the tree
+ */
+ if (op->common.value.arg) {
+
+ /* Since we have a real Return(), delete any implicit return */
+
+ acpi_ds_clear_implicit_return(walk_state);
+
+ /* Return statement has an immediate operand */
+
+ status =
+ acpi_ds_create_operands(walk_state,
+ op->common.value.arg);
+ if (ACPI_FAILURE(status)) {
+ return (status);
+ }
+
+ /*
+ * If value being returned is a Reference (such as
+ * an arg or local), resolve it now because it may
+ * cease to exist at the end of the method.
+ */
+ status =
+ acpi_ex_resolve_to_value(&walk_state->operands[0],
+ walk_state);
+ if (ACPI_FAILURE(status)) {
+ return (status);
+ }
+
+ /*
+ * Get the return value and save as the last result
+ * value. This is the only place where walk_state->return_desc
+ * is set to anything other than zero!
+ */
+ walk_state->return_desc = walk_state->operands[0];
+ } else if (walk_state->result_count) {
+
+ /* Since we have a real Return(), delete any implicit return */
+
+ acpi_ds_clear_implicit_return(walk_state);
+
+ /*
+ * The return value has come from a previous calculation.
+ *
+ * If value being returned is a Reference (such as
+ * an arg or local), resolve it now because it may
+ * cease to exist at the end of the method.
+ *
+ * Allow references created by the Index operator to return
+ * unchanged.
+ */
+ if ((ACPI_GET_DESCRIPTOR_TYPE
+ (walk_state->results->results.obj_desc[0]) ==
+ ACPI_DESC_TYPE_OPERAND)
+ && ((walk_state->results->results.obj_desc[0])->
+ common.type == ACPI_TYPE_LOCAL_REFERENCE)
+ && ((walk_state->results->results.obj_desc[0])->
+ reference.class != ACPI_REFCLASS_INDEX)) {
+ status =
+ acpi_ex_resolve_to_value(&walk_state->
+ results->results.
+ obj_desc[0],
+ walk_state);
+ if (ACPI_FAILURE(status)) {
+ return (status);
+ }
+ }
+
+ walk_state->return_desc =
+ walk_state->results->results.obj_desc[0];
+ } else {
+ /* No return operand */
+
+ if (walk_state->num_operands) {
+ acpi_ut_remove_reference(walk_state->
+ operands[0]);
+ }
+
+ walk_state->operands[0] = NULL;
+ walk_state->num_operands = 0;
+ walk_state->return_desc = NULL;
+ }
+
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "Completed RETURN_OP State=%p, RetVal=%p\n",
+ walk_state, walk_state->return_desc));
+
+ /* End the control method execution right now */
+
+ status = AE_CTRL_TERMINATE;
+ break;
+
+ case AML_NOOP_OP:
+
+ /* Just do nothing! */
+
+ break;
+
+ case AML_BREAK_POINT_OP:
+
+ /*
+ * Set the single-step flag. This will cause the debugger (if present)
+ * to break to the console within the AML debugger at the start of the
+ * next AML instruction.
+ */
+ ACPI_DEBUGGER_EXEC(acpi_gbl_cm_single_step = TRUE);
+ ACPI_DEBUGGER_EXEC(acpi_os_printf
+ ("**break** Executed AML BreakPoint opcode\n"));
+
+ /* Call to the OSL in case OS wants a piece of the action */
+
+ status = acpi_os_signal(ACPI_SIGNAL_BREAKPOINT,
+ "Executed AML Breakpoint opcode");
+ break;
+
+ case AML_BREAK_OP:
+ case AML_CONTINUE_OP: /* ACPI 2.0 */
+
+ /* Pop and delete control states until we find a while */
+
+ while (walk_state->control_state &&
+ (walk_state->control_state->control.opcode !=
+ AML_WHILE_OP)) {
+ control_state =
+ acpi_ut_pop_generic_state(&walk_state->
+ control_state);
+ acpi_ut_delete_generic_state(control_state);
+ }
+
+ /* No while found? */
+
+ if (!walk_state->control_state) {
+ return (AE_AML_NO_WHILE);
+ }
+
+ /* Was: walk_state->aml_last_while = walk_state->control_state->Control.aml_predicate_start; */
+
+ walk_state->aml_last_while =
+ walk_state->control_state->control.package_end;
+
+ /* Return status depending on opcode */
+
+ if (op->common.aml_opcode == AML_BREAK_OP) {
+ status = AE_CTRL_BREAK;
+ } else {
+ status = AE_CTRL_CONTINUE;
+ }
+ break;
+
+ default:
+
+ ACPI_ERROR((AE_INFO, "Unknown control opcode=0x%X Op=%p",
+ op->common.aml_opcode, op));
+
+ status = AE_AML_BAD_OPCODE;
+ break;
+ }
+
+ return (status);
+}
diff --git a/drivers/acpi/acpica/dsfield.c b/drivers/acpi/acpica/dsfield.c
index 53e27bc5a73..3661c8e9054 100644
--- a/drivers/acpi/acpica/dsfield.c
+++ b/drivers/acpi/acpica/dsfield.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -53,16 +53,84 @@
ACPI_MODULE_NAME("dsfield")
/* Local prototypes */
+#ifdef ACPI_ASL_COMPILER
+#include "acdisasm.h"
+static acpi_status
+acpi_ds_create_external_region(acpi_status lookup_status,
+ union acpi_parse_object *op,
+ char *path,
+ struct acpi_walk_state *walk_state,
+ struct acpi_namespace_node **node);
+#endif
+
static acpi_status
acpi_ds_get_field_names(struct acpi_create_field_info *info,
struct acpi_walk_state *walk_state,
union acpi_parse_object *arg);
+#ifdef ACPI_ASL_COMPILER
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_create_external_region (iASL Disassembler only)
+ *
+ * PARAMETERS: lookup_status - Status from ns_lookup operation
+ * op - Op containing the Field definition and args
+ * path - Pathname of the region
+ * ` walk_state - Current method state
+ * node - Where the new region node is returned
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Add region to the external list if NOT_FOUND. Create a new
+ * region node/object.
+ *
+ ******************************************************************************/
+
+static acpi_status
+acpi_ds_create_external_region(acpi_status lookup_status,
+ union acpi_parse_object *op,
+ char *path,
+ struct acpi_walk_state *walk_state,
+ struct acpi_namespace_node **node)
+{
+ acpi_status status;
+ union acpi_operand_object *obj_desc;
+
+ if (lookup_status != AE_NOT_FOUND) {
+ return (lookup_status);
+ }
+
+ /*
+ * Table disassembly:
+ * operation_region not found. Generate an External for it, and
+ * insert the name into the namespace.
+ */
+ acpi_dm_add_op_to_external_list(op, path, ACPI_TYPE_REGION, 0, 0);
+ status = acpi_ns_lookup(walk_state->scope_info, path, ACPI_TYPE_REGION,
+ ACPI_IMODE_LOAD_PASS1, ACPI_NS_SEARCH_PARENT,
+ walk_state, node);
+ if (ACPI_FAILURE(status)) {
+ return (status);
+ }
+
+ /* Must create and install a region object for the new node */
+
+ obj_desc = acpi_ut_create_internal_object(ACPI_TYPE_REGION);
+ if (!obj_desc) {
+ return (AE_NO_MEMORY);
+ }
+
+ obj_desc->region.node = *node;
+ status = acpi_ns_attach_object(*node, obj_desc, ACPI_TYPE_REGION);
+ return (status);
+}
+#endif
+
/*******************************************************************************
*
* FUNCTION: acpi_ds_create_buffer_field
*
- * PARAMETERS: Op - Current parse op (create_xXField)
+ * PARAMETERS: op - Current parse op (create_XXField)
* walk_state - Current state
*
* RETURN: Status
@@ -99,7 +167,7 @@ acpi_ds_create_buffer_field(union acpi_parse_object *op,
arg = acpi_ps_get_arg(op, 3);
} else {
- /* For all other create_xXXField operators, name is the 3rd argument */
+ /* For all other create_XXXField operators, name is the 3rd argument */
arg = acpi_ps_get_arg(op, 2);
}
@@ -123,9 +191,12 @@ acpi_ds_create_buffer_field(union acpi_parse_object *op,
flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE |
ACPI_NS_ERROR_IF_FOUND;
- /* Mark node temporary if we are executing a method */
-
- if (walk_state->method_node) {
+ /*
+ * Mark node temporary if we are executing a normal control
+ * method. (Don't mark if this is a module-level code method)
+ */
+ if (walk_state->method_node &&
+ !(walk_state->parse_flags & ACPI_PARSE_MODULE_LEVEL)) {
flags |= ACPI_NS_TEMPORARY;
}
@@ -188,7 +259,7 @@ acpi_ds_create_buffer_field(union acpi_parse_object *op,
goto cleanup;
}
- cleanup:
+cleanup:
/* Remove local reference to the object */
@@ -200,13 +271,13 @@ acpi_ds_create_buffer_field(union acpi_parse_object *op,
*
* FUNCTION: acpi_ds_get_field_names
*
- * PARAMETERS: Info - create_field info structure
+ * PARAMETERS: info - create_field info structure
* ` walk_state - Current method state
- * Arg - First parser arg for the field name list
+ * arg - First parser arg for the field name list
*
* RETURN: Status
*
- * DESCRIPTION: Process all named fields in a field declaration. Names are
+ * DESCRIPTION: Process all named fields in a field declaration. Names are
* entered into the namespace.
*
******************************************************************************/
@@ -217,7 +288,8 @@ acpi_ds_get_field_names(struct acpi_create_field_info *info,
union acpi_parse_object *arg)
{
acpi_status status;
- acpi_integer position;
+ u64 position;
+ union acpi_parse_object *child;
ACPI_FUNCTION_TRACE_PTR(ds_get_field_names, info);
@@ -229,16 +301,17 @@ acpi_ds_get_field_names(struct acpi_create_field_info *info,
while (arg) {
/*
- * Three types of field elements are handled:
- * 1) Offset - specifies a bit offset
- * 2) access_as - changes the access mode
- * 3) Name - Enters a new named field into the namespace
+ * Four types of field elements are handled:
+ * 1) name - Enters a new named field into the namespace
+ * 2) offset - specifies a bit offset
+ * 3) access_as - changes the access mode/attributes
+ * 4) connection - Associate a resource template with the field
*/
switch (arg->common.aml_opcode) {
case AML_INT_RESERVEDFIELD_OP:
- position = (acpi_integer) info->field_bit_position
- + (acpi_integer) arg->common.value.size;
+ position = (u64) info->field_bit_position
+ + (u64) arg->common.value.size;
if (position > ACPI_UINT32_MAX) {
ACPI_ERROR((AE_INFO,
@@ -250,21 +323,70 @@ acpi_ds_get_field_names(struct acpi_create_field_info *info,
break;
case AML_INT_ACCESSFIELD_OP:
-
+ case AML_INT_EXTACCESSFIELD_OP:
/*
- * Get a new access_type and access_attribute -- to be used for all
- * field units that follow, until field end or another access_as
- * keyword.
+ * Get new access_type, access_attribute, and access_length fields
+ * -- to be used for all field units that follow, until the
+ * end-of-field or another access_as keyword is encountered.
+ * NOTE. These three bytes are encoded in the integer value
+ * of the parseop for convenience.
*
* In field_flags, preserve the flag bits other than the
- * ACCESS_TYPE bits
+ * ACCESS_TYPE bits.
*/
+
+ /* access_type (byte_acc, word_acc, etc.) */
+
info->field_flags = (u8)
((info->
field_flags & ~(AML_FIELD_ACCESS_TYPE_MASK)) |
- ((u8) ((u32) arg->common.value.integer >> 8)));
+ ((u8)((u32)(arg->common.value.integer & 0x07))));
+
+ /* access_attribute (attrib_quick, attrib_byte, etc.) */
+
+ info->attribute =
+ (u8)((arg->common.value.integer >> 8) & 0xFF);
+
+ /* access_length (for serial/buffer protocols) */
- info->attribute = (u8) (arg->common.value.integer);
+ info->access_length =
+ (u8)((arg->common.value.integer >> 16) & 0xFF);
+ break;
+
+ case AML_INT_CONNECTION_OP:
+ /*
+ * Clear any previous connection. New connection is used for all
+ * fields that follow, similar to access_as
+ */
+ info->resource_buffer = NULL;
+ info->connection_node = NULL;
+
+ /*
+ * A Connection() is either an actual resource descriptor (buffer)
+ * or a named reference to a resource template
+ */
+ child = arg->common.value.arg;
+ if (child->common.aml_opcode == AML_INT_BYTELIST_OP) {
+ info->resource_buffer = child->named.data;
+ info->resource_length =
+ (u16)child->named.value.integer;
+ } else {
+ /* Lookup the Connection() namepath, it should already exist */
+
+ status = acpi_ns_lookup(walk_state->scope_info,
+ child->common.value.
+ name, ACPI_TYPE_ANY,
+ ACPI_IMODE_EXECUTE,
+ ACPI_NS_DONT_OPEN_SCOPE,
+ walk_state,
+ &info->connection_node);
+ if (ACPI_FAILURE(status)) {
+ ACPI_ERROR_NAMESPACE(child->common.
+ value.name,
+ status);
+ return_ACPI_STATUS(status);
+ }
+ }
break;
case AML_INT_NAMEDFIELD_OP:
@@ -302,8 +424,8 @@ acpi_ds_get_field_names(struct acpi_create_field_info *info,
/* Keep track of bit position for the next field */
- position = (acpi_integer) info->field_bit_position
- + (acpi_integer) arg->common.value.size;
+ position = (u64) info->field_bit_position
+ + (u64) arg->common.value.size;
if (position > ACPI_UINT32_MAX) {
ACPI_ERROR((AE_INFO,
@@ -320,7 +442,7 @@ acpi_ds_get_field_names(struct acpi_create_field_info *info,
default:
ACPI_ERROR((AE_INFO,
- "Invalid opcode in field list: %X",
+ "Invalid opcode in field list: 0x%X",
arg->common.aml_opcode));
return_ACPI_STATUS(AE_AML_BAD_OPCODE);
}
@@ -335,7 +457,7 @@ acpi_ds_get_field_names(struct acpi_create_field_info *info,
*
* FUNCTION: acpi_ds_create_field
*
- * PARAMETERS: Op - Op containing the Field definition and args
+ * PARAMETERS: op - Op containing the Field definition and args
* region_node - Object for the containing Operation Region
* ` walk_state - Current method state
*
@@ -359,18 +481,27 @@ acpi_ds_create_field(union acpi_parse_object *op,
/* First arg is the name of the parent op_region (must already exist) */
arg = op->common.value.arg;
+
if (!region_node) {
status =
acpi_ns_lookup(walk_state->scope_info,
arg->common.value.name, ACPI_TYPE_REGION,
ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
walk_state, &region_node);
+#ifdef ACPI_ASL_COMPILER
+ status = acpi_ds_create_external_region(status, arg,
+ arg->common.value.name,
+ walk_state,
+ &region_node);
+#endif
if (ACPI_FAILURE(status)) {
ACPI_ERROR_NAMESPACE(arg->common.value.name, status);
return_ACPI_STATUS(status);
}
}
+ ACPI_MEMSET(&info, 0, sizeof(struct acpi_create_field_info));
+
/* Second arg is the field flags */
arg = arg->common.next;
@@ -383,7 +514,6 @@ acpi_ds_create_field(union acpi_parse_object *op,
info.region_node = region_node;
status = acpi_ds_get_field_names(&info, walk_state, arg->common.next);
-
return_ACPI_STATUS(status);
}
@@ -391,7 +521,7 @@ acpi_ds_create_field(union acpi_parse_object *op,
*
* FUNCTION: acpi_ds_init_field_objects
*
- * PARAMETERS: Op - Op containing the Field definition and args
+ * PARAMETERS: op - Op containing the Field definition and args
* ` walk_state - Current method state
*
* RETURN: Status
@@ -433,21 +563,25 @@ acpi_ds_init_field_objects(union acpi_parse_object *op,
*/
switch (walk_state->opcode) {
case AML_FIELD_OP:
+
arg = acpi_ps_get_arg(op, 2);
type = ACPI_TYPE_LOCAL_REGION_FIELD;
break;
case AML_BANK_FIELD_OP:
+
arg = acpi_ps_get_arg(op, 4);
type = ACPI_TYPE_LOCAL_BANK_FIELD;
break;
case AML_INDEX_FIELD_OP:
+
arg = acpi_ps_get_arg(op, 3);
type = ACPI_TYPE_LOCAL_INDEX_FIELD;
break;
default:
+
return_ACPI_STATUS(AE_BAD_PARAMETER);
}
@@ -456,9 +590,12 @@ acpi_ds_init_field_objects(union acpi_parse_object *op,
flags = ACPI_NS_NO_UPSEARCH | ACPI_NS_DONT_OPEN_SCOPE |
ACPI_NS_ERROR_IF_FOUND;
- /* Mark node(s) temporary if we are executing a method */
-
- if (walk_state->method_node) {
+ /*
+ * Mark node(s) temporary if we are executing a normal control
+ * method. (Don't mark if this is a module-level code method)
+ */
+ if (walk_state->method_node &&
+ !(walk_state->parse_flags & ACPI_PARSE_MODULE_LEVEL)) {
flags |= ACPI_NS_TEMPORARY;
}
@@ -468,8 +605,8 @@ acpi_ds_init_field_objects(union acpi_parse_object *op,
*/
while (arg) {
/*
- * Ignore OFFSET and ACCESSAS terms here; we are only interested in the
- * field names in order to enter them into the namespace.
+ * Ignore OFFSET/ACCESSAS/CONNECTION terms here; we are only interested
+ * in the field names in order to enter them into the namespace.
*/
if (arg->common.aml_opcode == AML_INT_NAMEDFIELD_OP) {
status = acpi_ns_lookup(walk_state->scope_info,
@@ -503,7 +640,7 @@ acpi_ds_init_field_objects(union acpi_parse_object *op,
*
* FUNCTION: acpi_ds_create_bank_field
*
- * PARAMETERS: Op - Op containing the Field definition and args
+ * PARAMETERS: op - Op containing the Field definition and args
* region_node - Object for the containing Operation Region
* walk_state - Current method state
*
@@ -533,6 +670,12 @@ acpi_ds_create_bank_field(union acpi_parse_object *op,
arg->common.value.name, ACPI_TYPE_REGION,
ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT,
walk_state, &region_node);
+#ifdef ACPI_ASL_COMPILER
+ status = acpi_ds_create_external_region(status, arg,
+ arg->common.value.name,
+ walk_state,
+ &region_node);
+#endif
if (ACPI_FAILURE(status)) {
ACPI_ERROR_NAMESPACE(arg->common.value.name, status);
return_ACPI_STATUS(status);
@@ -587,7 +730,7 @@ acpi_ds_create_bank_field(union acpi_parse_object *op,
*
* FUNCTION: acpi_ds_create_index_field
*
- * PARAMETERS: Op - Op containing the Field definition and args
+ * PARAMETERS: op - Op containing the Field definition and args
* region_node - Object for the containing Operation Region
* ` walk_state - Current method state
*
@@ -645,6 +788,5 @@ acpi_ds_create_index_field(union acpi_parse_object *op,
info.region_node = region_node;
status = acpi_ds_get_field_names(&info, walk_state, arg->common.next);
-
return_ACPI_STATUS(status);
}
diff --git a/drivers/acpi/acpica/dsinit.c b/drivers/acpi/acpica/dsinit.c
index eb144b13d8f..aee5e45f6d3 100644
--- a/drivers/acpi/acpica/dsinit.c
+++ b/drivers/acpi/acpica/dsinit.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -60,8 +60,8 @@ acpi_ds_init_one_object(acpi_handle obj_handle,
* FUNCTION: acpi_ds_init_one_object
*
* PARAMETERS: obj_handle - Node for the object
- * Level - Current nesting level
- * Context - Points to a init info struct
+ * level - Current nesting level
+ * context - Points to a init info struct
* return_value - Not used
*
* RETURN: Status
@@ -83,8 +83,8 @@ acpi_ds_init_one_object(acpi_handle obj_handle,
(struct acpi_init_walk_info *)context;
struct acpi_namespace_node *node =
(struct acpi_namespace_node *)obj_handle;
- acpi_object_type type;
acpi_status status;
+ union acpi_operand_object *obj_desc;
ACPI_FUNCTION_ENTRY();
@@ -100,9 +100,7 @@ acpi_ds_init_one_object(acpi_handle obj_handle,
/* And even then, we are only interested in a few object types */
- type = acpi_ns_get_type(obj_handle);
-
- switch (type) {
+ switch (acpi_ns_get_type(obj_handle)) {
case ACPI_TYPE_REGION:
status = acpi_ds_initialize_region(obj_handle);
@@ -117,8 +115,44 @@ acpi_ds_init_one_object(acpi_handle obj_handle,
break;
case ACPI_TYPE_METHOD:
-
+ /*
+ * Auto-serialization support. We will examine each method that is
+ * not_serialized to determine if it creates any Named objects. If
+ * it does, it will be marked serialized to prevent problems if
+ * the method is entered by two or more threads and an attempt is
+ * made to create the same named object twice -- which results in
+ * an AE_ALREADY_EXISTS exception and method abort.
+ */
info->method_count++;
+ obj_desc = acpi_ns_get_attached_object(node);
+ if (!obj_desc) {
+ break;
+ }
+
+ /* Ignore if already serialized */
+
+ if (obj_desc->method.info_flags & ACPI_METHOD_SERIALIZED) {
+ info->serial_method_count++;
+ break;
+ }
+
+ if (acpi_gbl_auto_serialize_methods) {
+
+ /* Parse/scan method and serialize it if necessary */
+
+ acpi_ds_auto_serialize_method(node, obj_desc);
+ if (obj_desc->method.
+ info_flags & ACPI_METHOD_SERIALIZED) {
+
+ /* Method was just converted to Serialized */
+
+ info->serial_method_count++;
+ info->serialized_method_count++;
+ break;
+ }
+ }
+
+ info->non_serial_method_count++;
break;
case ACPI_TYPE_DEVICE:
@@ -127,6 +161,7 @@ acpi_ds_init_one_object(acpi_handle obj_handle,
break;
default:
+
break;
}
@@ -169,22 +204,33 @@ acpi_ds_initialize_objects(u32 table_index,
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
"**** Starting initialization of namespace objects ****\n"));
- ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT, "Parsing all Control Methods:"));
- info.method_count = 0;
- info.op_region_count = 0;
- info.object_count = 0;
- info.device_count = 0;
- info.table_index = table_index;
+ /* Set all init info to zero */
+
+ ACPI_MEMSET(&info, 0, sizeof(struct acpi_init_walk_info));
+
info.owner_id = owner_id;
+ info.table_index = table_index;
/* Walk entire namespace from the supplied root */
- status = acpi_walk_namespace(ACPI_TYPE_ANY, start_node, ACPI_UINT32_MAX,
- acpi_ds_init_one_object, &info, NULL);
+ status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ /*
+ * We don't use acpi_walk_namespace since we do not want to acquire
+ * the namespace reader lock.
+ */
+ status =
+ acpi_ns_walk_namespace(ACPI_TYPE_ANY, start_node, ACPI_UINT32_MAX,
+ ACPI_NS_WALK_UNLOCK, acpi_ds_init_one_object,
+ NULL, &info, NULL);
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status, "During WalkNamespace"));
}
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
status = acpi_get_table_by_index(table_index, &table);
if (ACPI_FAILURE(status)) {
@@ -192,14 +238,16 @@ acpi_ds_initialize_objects(u32 table_index,
}
ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT,
- "\nTable [%4.4s](id %4.4X) - %hd Objects with %hd Devices %hd Methods %hd Regions\n",
+ "Table [%4.4s] (id %4.4X) - %4u Objects with %3u Devices, "
+ "%3u Regions, %3u Methods (%u/%u/%u Serial/Non/Cvt)\n",
table->signature, owner_id, info.object_count,
- info.device_count, info.method_count,
- info.op_region_count));
+ info.device_count, info.op_region_count,
+ info.method_count, info.serial_method_count,
+ info.non_serial_method_count,
+ info.serialized_method_count));
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "%hd Methods, %hd Regions\n", info.method_count,
- info.op_region_count));
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "%u Methods, %u Regions\n",
+ info.method_count, info.op_region_count));
return_ACPI_STATUS(AE_OK);
}
diff --git a/drivers/acpi/acpica/dsmethod.c b/drivers/acpi/acpica/dsmethod.c
index 14b8b8ed802..3c7f7378b94 100644
--- a/drivers/acpi/acpica/dsmethod.c
+++ b/drivers/acpi/acpica/dsmethod.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -43,26 +43,164 @@
#include <acpi/acpi.h>
#include "accommon.h"
-#include "amlcode.h"
#include "acdispat.h"
#include "acinterp.h"
#include "acnamesp.h"
#ifdef ACPI_DISASSEMBLER
-#include <acpi/acdisasm.h>
+#include "acdisasm.h"
#endif
+#include "acparser.h"
+#include "amlcode.h"
#define _COMPONENT ACPI_DISPATCHER
ACPI_MODULE_NAME("dsmethod")
/* Local prototypes */
static acpi_status
+acpi_ds_detect_named_opcodes(struct acpi_walk_state *walk_state,
+ union acpi_parse_object **out_op);
+
+static acpi_status
acpi_ds_create_method_mutex(union acpi_operand_object *method_desc);
/*******************************************************************************
*
+ * FUNCTION: acpi_ds_auto_serialize_method
+ *
+ * PARAMETERS: node - Namespace Node of the method
+ * obj_desc - Method object attached to node
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Parse a control method AML to scan for control methods that
+ * need serialization due to the creation of named objects.
+ *
+ * NOTE: It is a bit of overkill to mark all such methods serialized, since
+ * there is only a problem if the method actually blocks during execution.
+ * A blocking operation is, for example, a Sleep() operation, or any access
+ * to an operation region. However, it is probably not possible to easily
+ * detect whether a method will block or not, so we simply mark all suspicious
+ * methods as serialized.
+ *
+ * NOTE2: This code is essentially a generic routine for parsing a single
+ * control method.
+ *
+ ******************************************************************************/
+
+acpi_status
+acpi_ds_auto_serialize_method(struct acpi_namespace_node *node,
+ union acpi_operand_object *obj_desc)
+{
+ acpi_status status;
+ union acpi_parse_object *op = NULL;
+ struct acpi_walk_state *walk_state;
+
+ ACPI_FUNCTION_TRACE_PTR(ds_auto_serialize_method, node);
+
+ ACPI_DEBUG_PRINT((ACPI_DB_PARSE,
+ "Method auto-serialization parse [%4.4s] %p\n",
+ acpi_ut_get_node_name(node), node));
+
+ /* Create/Init a root op for the method parse tree */
+
+ op = acpi_ps_alloc_op(AML_METHOD_OP);
+ if (!op) {
+ return_ACPI_STATUS(AE_NO_MEMORY);
+ }
+
+ acpi_ps_set_name(op, node->name.integer);
+ op->common.node = node;
+
+ /* Create and initialize a new walk state */
+
+ walk_state =
+ acpi_ds_create_walk_state(node->owner_id, NULL, NULL, NULL);
+ if (!walk_state) {
+ return_ACPI_STATUS(AE_NO_MEMORY);
+ }
+
+ status =
+ acpi_ds_init_aml_walk(walk_state, op, node,
+ obj_desc->method.aml_start,
+ obj_desc->method.aml_length, NULL, 0);
+ if (ACPI_FAILURE(status)) {
+ acpi_ds_delete_walk_state(walk_state);
+ return_ACPI_STATUS(status);
+ }
+
+ walk_state->descending_callback = acpi_ds_detect_named_opcodes;
+
+ /* Parse the method, scan for creation of named objects */
+
+ status = acpi_ps_parse_aml(walk_state);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ acpi_ps_delete_parse_tree(op);
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_detect_named_opcodes
+ *
+ * PARAMETERS: walk_state - Current state of the parse tree walk
+ * out_op - Unused, required for parser interface
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Descending callback used during the loading of ACPI tables.
+ * Currently used to detect methods that must be marked serialized
+ * in order to avoid problems with the creation of named objects.
+ *
+ ******************************************************************************/
+
+static acpi_status
+acpi_ds_detect_named_opcodes(struct acpi_walk_state *walk_state,
+ union acpi_parse_object **out_op)
+{
+
+ ACPI_FUNCTION_NAME(acpi_ds_detect_named_opcodes);
+
+ /* We are only interested in opcodes that create a new name */
+
+ if (!
+ (walk_state->op_info->
+ flags & (AML_NAMED | AML_CREATE | AML_FIELD))) {
+ return (AE_OK);
+ }
+
+ /*
+ * At this point, we know we have a Named object opcode.
+ * Mark the method as serialized. Later code will create a mutex for
+ * this method to enforce serialization.
+ *
+ * Note, ACPI_METHOD_IGNORE_SYNC_LEVEL flag means that we will ignore the
+ * Sync Level mechanism for this method, even though it is now serialized.
+ * Otherwise, there can be conflicts with existing ASL code that actually
+ * uses sync levels.
+ */
+ walk_state->method_desc->method.sync_level = 0;
+ walk_state->method_desc->method.info_flags |=
+ (ACPI_METHOD_SERIALIZED | ACPI_METHOD_IGNORE_SYNC_LEVEL);
+
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "Method serialized [%4.4s] %p - [%s] (%4.4X)\n",
+ walk_state->method_node->name.ascii,
+ walk_state->method_node, walk_state->op_info->name,
+ walk_state->opcode));
+
+ /* Abort the parse, no need to examine this method any further */
+
+ return (AE_CTRL_TERMINATE);
+}
+
+/*******************************************************************************
+ *
* FUNCTION: acpi_ds_method_error
*
- * PARAMETERS: Status - Execution status
+ * PARAMETERS: status - Execution status
* walk_state - Current state
*
* RETURN: Status
@@ -75,7 +213,7 @@ acpi_ds_create_method_mutex(union acpi_operand_object *method_desc);
******************************************************************************/
acpi_status
-acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state)
+acpi_ds_method_error(acpi_status status, struct acpi_walk_state * walk_state)
{
ACPI_FUNCTION_ENTRY();
@@ -152,6 +290,7 @@ acpi_ds_create_method_mutex(union acpi_operand_object *method_desc)
status = acpi_os_create_mutex(&mutex_desc->mutex.os_mutex);
if (ACPI_FAILURE(status)) {
+ acpi_ut_delete_object_desc(mutex_desc);
return_ACPI_STATUS(status);
}
@@ -171,7 +310,7 @@ acpi_ds_create_method_mutex(union acpi_operand_object *method_desc)
*
* RETURN: Status
*
- * DESCRIPTION: Prepare a method for execution. Parses the method if necessary,
+ * DESCRIPTION: Prepare a method for execution. Parses the method if necessary,
* increments the thread count, and waits at the method semaphore
* for clearance to execute.
*
@@ -201,7 +340,7 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
/*
* If this method is serialized, we need to acquire the method mutex.
*/
- if (obj_desc->method.method_flags & AML_METHOD_SERIALIZED) {
+ if (obj_desc->method.info_flags & ACPI_METHOD_SERIALIZED) {
/*
* Create a mutex for the method if it is defined to be Serialized
* and a mutex has not already been created. We defer the mutex creation
@@ -217,15 +356,21 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
/*
* The current_sync_level (per-thread) must be less than or equal to
* the sync level of the method. This mechanism provides some
- * deadlock prevention
+ * deadlock prevention.
+ *
+ * If the method was auto-serialized, we just ignore the sync level
+ * mechanism, because auto-serialization of methods can interfere
+ * with ASL code that actually uses sync levels.
*
* Top-level method invocation has no walk state at this point
*/
if (walk_state &&
- (walk_state->thread->current_sync_level >
- obj_desc->method.mutex->mutex.sync_level)) {
+ (!(obj_desc->method.
+ info_flags & ACPI_METHOD_IGNORE_SYNC_LEVEL))
+ && (walk_state->thread->current_sync_level >
+ obj_desc->method.mutex->mutex.sync_level)) {
ACPI_ERROR((AE_INFO,
- "Cannot acquire Mutex for method [%4.4s], current SyncLevel is too large (%d)",
+ "Cannot acquire Mutex for method [%4.4s], current SyncLevel is too large (%u)",
acpi_ut_get_node_name(method_node),
walk_state->thread->current_sync_level));
@@ -292,9 +437,10 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
* reentered one more time (even if it is the same thread)
*/
obj_desc->method.thread_count++;
+ acpi_method_count++;
return_ACPI_STATUS(status);
- cleanup:
+cleanup:
/* On error, must release the method mutex (if present) */
if (obj_desc->method.mutex) {
@@ -307,9 +453,9 @@ acpi_ds_begin_method_execution(struct acpi_namespace_node *method_node,
*
* FUNCTION: acpi_ds_call_control_method
*
- * PARAMETERS: Thread - Info for this thread
+ * PARAMETERS: thread - Info for this thread
* this_walk_state - Current walk state
- * Op - Current Op to be walked
+ * op - Current Op to be walked
*
* RETURN: Status
*
@@ -379,7 +525,8 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread,
*/
info = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_evaluate_info));
if (!info) {
- return_ACPI_STATUS(AE_NO_MEMORY);
+ status = AE_NO_MEMORY;
+ goto cleanup;
}
info->parameters = &this_walk_state->operands[0];
@@ -413,8 +560,9 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread,
/* Invoke an internal method if necessary */
- if (obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY) {
- status = obj_desc->method.implementation(next_walk_state);
+ if (obj_desc->method.info_flags & ACPI_METHOD_INTERNAL_ONLY) {
+ status =
+ obj_desc->method.dispatch.implementation(next_walk_state);
if (status == AE_OK) {
status = AE_CTRL_TERMINATE;
}
@@ -422,7 +570,7 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread,
return_ACPI_STATUS(status);
- cleanup:
+cleanup:
/* On error, we must terminate the method properly */
@@ -444,7 +592,7 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread,
* RETURN: Status
*
* DESCRIPTION: Restart a method that was preempted by another (nested) method
- * invocation. Handle the return value (if any) from the callee.
+ * invocation. Handle the return value (if any) from the callee.
*
******************************************************************************/
@@ -530,7 +678,7 @@ acpi_ds_restart_control_method(struct acpi_walk_state *walk_state,
*
* RETURN: None
*
- * DESCRIPTION: Terminate a control method. Delete everything that the method
+ * DESCRIPTION: Terminate a control method. Delete everything that the method
* created, delete all locals and arguments, and delete the parse
* tree if requested.
*
@@ -573,15 +721,42 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc,
acpi_os_release_mutex(method_desc->method.
mutex->mutex.os_mutex);
- method_desc->method.mutex->mutex.thread_id = NULL;
+ method_desc->method.mutex->mutex.thread_id = 0;
}
}
/*
- * Delete any namespace objects created anywhere within
- * the namespace by the execution of this method
+ * Delete any namespace objects created anywhere within the
+ * namespace by the execution of this method. Unless:
+ * 1) This method is a module-level executable code method, in which
+ * case we want make the objects permanent.
+ * 2) There are other threads executing the method, in which case we
+ * will wait until the last thread has completed.
*/
- acpi_ns_delete_namespace_by_owner(method_desc->method.owner_id);
+ if (!(method_desc->method.info_flags & ACPI_METHOD_MODULE_LEVEL)
+ && (method_desc->method.thread_count == 1)) {
+
+ /* Delete any direct children of (created by) this method */
+
+ acpi_ns_delete_namespace_subtree(walk_state->
+ method_node);
+
+ /*
+ * Delete any objects that were created by this method
+ * elsewhere in the namespace (if any were created).
+ * Use of the ACPI_METHOD_MODIFIED_NAMESPACE optimizes the
+ * deletion such that we don't have to perform an entire
+ * namespace walk for every control method execution.
+ */
+ if (method_desc->method.
+ info_flags & ACPI_METHOD_MODIFIED_NAMESPACE) {
+ acpi_ns_delete_namespace_by_owner(method_desc->
+ method.
+ owner_id);
+ method_desc->method.info_flags &=
+ ~ACPI_METHOD_MODIFIED_NAMESPACE;
+ }
+ }
}
/* Decrement the thread count on the method */
@@ -600,7 +775,7 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc,
* we immediately reuse it for the next thread executing this method
*/
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "*** Completed execution of one thread, %d threads remaining\n",
+ "*** Completed execution of one thread, %u threads remaining\n",
method_desc->method.thread_count));
} else {
/* This is the only executing thread for this method */
@@ -610,19 +785,46 @@ acpi_ds_terminate_control_method(union acpi_operand_object *method_desc,
* Serialized if it appears that the method is incorrectly written and
* does not support multiple thread execution. The best example of this
* is if such a method creates namespace objects and blocks. A second
- * thread will fail with an AE_ALREADY_EXISTS exception
+ * thread will fail with an AE_ALREADY_EXISTS exception.
*
* This code is here because we must wait until the last thread exits
- * before creating the synchronization semaphore.
+ * before marking the method as serialized.
*/
- if ((method_desc->method.method_flags & AML_METHOD_SERIALIZED)
- && (!method_desc->method.mutex)) {
- (void)acpi_ds_create_method_mutex(method_desc);
+ if (method_desc->method.
+ info_flags & ACPI_METHOD_SERIALIZED_PENDING) {
+ if (walk_state) {
+ ACPI_INFO((AE_INFO,
+ "Marking method %4.4s as Serialized because of AE_ALREADY_EXISTS error",
+ walk_state->method_node->name.
+ ascii));
+ }
+
+ /*
+ * Method tried to create an object twice and was marked as
+ * "pending serialized". The probable cause is that the method
+ * cannot handle reentrancy.
+ *
+ * The method was created as not_serialized, but it tried to create
+ * a named object and then blocked, causing the second thread
+ * entrance to begin and then fail. Workaround this problem by
+ * marking the method permanently as Serialized when the last
+ * thread exits here.
+ */
+ method_desc->method.info_flags &=
+ ~ACPI_METHOD_SERIALIZED_PENDING;
+ method_desc->method.info_flags |=
+ (ACPI_METHOD_SERIALIZED |
+ ACPI_METHOD_IGNORE_SYNC_LEVEL);
+ method_desc->method.sync_level = 0;
}
/* No more threads, we can free the owner_id */
- acpi_ut_release_owner_id(&method_desc->method.owner_id);
+ if (!
+ (method_desc->method.
+ info_flags & ACPI_METHOD_MODULE_LEVEL)) {
+ acpi_ut_release_owner_id(&method_desc->method.owner_id);
+ }
}
return_VOID;
diff --git a/drivers/acpi/acpica/dsmthdat.c b/drivers/acpi/acpica/dsmthdat.c
index da0f5468184..b67522df01a 100644
--- a/drivers/acpi/acpica/dsmthdat.c
+++ b/drivers/acpi/acpica/dsmthdat.c
@@ -5,7 +5,7 @@
******************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -76,7 +76,7 @@ acpi_ds_method_data_get_type(u16 opcode,
* RETURN: Status
*
* DESCRIPTION: Initialize the data structures that hold the method's arguments
- * and locals. The data struct is an array of namespace nodes for
+ * and locals. The data struct is an array of namespace nodes for
* each - this allows ref_of and de_ref_of to work properly for these
* special data types.
*
@@ -102,8 +102,7 @@ void acpi_ds_method_data_init(struct acpi_walk_state *walk_state)
walk_state->arguments[i].name.integer |= (i << 24);
walk_state->arguments[i].descriptor_type = ACPI_DESC_TYPE_NAMED;
walk_state->arguments[i].type = ACPI_TYPE_ANY;
- walk_state->arguments[i].flags =
- ANOBJ_END_OF_PEER_LIST | ANOBJ_METHOD_ARG;
+ walk_state->arguments[i].flags = ANOBJ_METHOD_ARG;
}
/* Init the method locals */
@@ -116,8 +115,7 @@ void acpi_ds_method_data_init(struct acpi_walk_state *walk_state)
walk_state->local_variables[i].descriptor_type =
ACPI_DESC_TYPE_NAMED;
walk_state->local_variables[i].type = ACPI_TYPE_ANY;
- walk_state->local_variables[i].flags =
- ANOBJ_END_OF_PEER_LIST | ANOBJ_METHOD_LOCAL;
+ walk_state->local_variables[i].flags = ANOBJ_METHOD_LOCAL;
}
return_VOID;
@@ -131,7 +129,7 @@ void acpi_ds_method_data_init(struct acpi_walk_state *walk_state)
*
* RETURN: None
*
- * DESCRIPTION: Delete method locals and arguments. Arguments are only
+ * DESCRIPTION: Delete method locals and arguments. Arguments are only
* deleted if this method was called from another method.
*
******************************************************************************/
@@ -146,7 +144,7 @@ void acpi_ds_method_data_delete_all(struct acpi_walk_state *walk_state)
for (index = 0; index < ACPI_METHOD_NUM_LOCALS; index++) {
if (walk_state->local_variables[index].object) {
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Deleting Local%d=%p\n",
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Deleting Local%u=%p\n",
index,
walk_state->local_variables[index].
object));
@@ -162,7 +160,7 @@ void acpi_ds_method_data_delete_all(struct acpi_walk_state *walk_state)
for (index = 0; index < ACPI_METHOD_NUM_ARGS; index++) {
if (walk_state->arguments[index].object) {
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Deleting Arg%d=%p\n",
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Deleting Arg%u=%p\n",
index,
walk_state->arguments[index].object));
@@ -179,13 +177,13 @@ void acpi_ds_method_data_delete_all(struct acpi_walk_state *walk_state)
*
* FUNCTION: acpi_ds_method_data_init_args
*
- * PARAMETERS: *Params - Pointer to a parameter list for the method
+ * PARAMETERS: *params - Pointer to a parameter list for the method
* max_param_count - The arg count for this method
* walk_state - Current walk state object
*
* RETURN: Status
*
- * DESCRIPTION: Initialize arguments for a method. The parameter list is a list
+ * DESCRIPTION: Initialize arguments for a method. The parameter list is a list
* of ACPI operand objects, either null terminated or whose length
* is defined by max_param_count.
*
@@ -226,7 +224,7 @@ acpi_ds_method_data_init_args(union acpi_operand_object **params,
index++;
}
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "%d args passed to method\n", index));
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "%u args passed to method\n", index));
return_ACPI_STATUS(AE_OK);
}
@@ -234,11 +232,11 @@ acpi_ds_method_data_init_args(union acpi_operand_object **params,
*
* FUNCTION: acpi_ds_method_data_get_node
*
- * PARAMETERS: Type - Either ACPI_REFCLASS_LOCAL or
+ * PARAMETERS: type - Either ACPI_REFCLASS_LOCAL or
* ACPI_REFCLASS_ARG
- * Index - Which Local or Arg whose type to get
+ * index - Which Local or Arg whose type to get
* walk_state - Current walk state object
- * Node - Where the node is returned.
+ * node - Where the node is returned.
*
* RETURN: Status and node
*
@@ -262,7 +260,7 @@ acpi_ds_method_data_get_node(u8 type,
if (index > ACPI_METHOD_MAX_LOCAL) {
ACPI_ERROR((AE_INFO,
- "Local index %d is invalid (max %d)",
+ "Local index %u is invalid (max %u)",
index, ACPI_METHOD_MAX_LOCAL));
return_ACPI_STATUS(AE_AML_INVALID_INDEX);
}
@@ -276,7 +274,7 @@ acpi_ds_method_data_get_node(u8 type,
if (index > ACPI_METHOD_MAX_ARG) {
ACPI_ERROR((AE_INFO,
- "Arg index %d is invalid (max %d)",
+ "Arg index %u is invalid (max %u)",
index, ACPI_METHOD_MAX_ARG));
return_ACPI_STATUS(AE_AML_INVALID_INDEX);
}
@@ -287,7 +285,8 @@ acpi_ds_method_data_get_node(u8 type,
break;
default:
- ACPI_ERROR((AE_INFO, "Type %d is invalid", type));
+
+ ACPI_ERROR((AE_INFO, "Type %u is invalid", type));
return_ACPI_STATUS(AE_TYPE);
}
@@ -298,10 +297,10 @@ acpi_ds_method_data_get_node(u8 type,
*
* FUNCTION: acpi_ds_method_data_set_value
*
- * PARAMETERS: Type - Either ACPI_REFCLASS_LOCAL or
+ * PARAMETERS: type - Either ACPI_REFCLASS_LOCAL or
* ACPI_REFCLASS_ARG
- * Index - Which Local or Arg to get
- * Object - Object to be inserted into the stack entry
+ * index - Which Local or Arg to get
+ * object - Object to be inserted into the stack entry
* walk_state - Current walk state object
*
* RETURN: Status
@@ -323,7 +322,7 @@ acpi_ds_method_data_set_value(u8 type,
ACPI_FUNCTION_TRACE(ds_method_data_set_value);
ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
- "NewObj %p Type %2.2X, Refs=%d [%s]\n", object,
+ "NewObj %p Type %2.2X, Refs=%u [%s]\n", object,
type, object->common.reference_count,
acpi_ut_get_type_name(object->common.type)));
@@ -338,7 +337,7 @@ acpi_ds_method_data_set_value(u8 type,
* Increment ref count so object can't be deleted while installed.
* NOTE: We do not copy the object in order to preserve the call by
* reference semantics of ACPI Control Method invocation.
- * (See ACPI Specification 2.0_c)
+ * (See ACPI Specification 2.0C)
*/
acpi_ut_add_reference(object);
@@ -352,9 +351,9 @@ acpi_ds_method_data_set_value(u8 type,
*
* FUNCTION: acpi_ds_method_data_get_value
*
- * PARAMETERS: Type - Either ACPI_REFCLASS_LOCAL or
+ * PARAMETERS: type - Either ACPI_REFCLASS_LOCAL or
* ACPI_REFCLASS_ARG
- * Index - Which local_var or argument to get
+ * index - Which localVar or argument to get
* walk_state - Current walk state object
* dest_desc - Where Arg or Local value is returned
*
@@ -403,19 +402,17 @@ acpi_ds_method_data_get_value(u8 type,
* This means that either 1) The expected argument was
* not passed to the method, or 2) A local variable
* was referenced by the method (via the ASL)
- * before it was initialized. Either case is an error.
+ * before it was initialized. Either case is an error.
*/
/* If slack enabled, init the local_x/arg_x to an Integer of value zero */
if (acpi_gbl_enable_interpreter_slack) {
- object =
- acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
+ object = acpi_ut_create_integer_object((u64) 0);
if (!object) {
return_ACPI_STATUS(AE_NO_MEMORY);
}
- object->integer.value = 0;
node->object = object;
}
@@ -426,23 +423,22 @@ acpi_ds_method_data_get_value(u8 type,
case ACPI_REFCLASS_ARG:
ACPI_ERROR((AE_INFO,
- "Uninitialized Arg[%d] at node %p",
+ "Uninitialized Arg[%u] at node %p",
index, node));
return_ACPI_STATUS(AE_AML_UNINITIALIZED_ARG);
case ACPI_REFCLASS_LOCAL:
-
- ACPI_ERROR((AE_INFO,
- "Uninitialized Local[%d] at node %p",
- index, node));
-
+ /*
+ * No error message for this case, will be trapped again later to
+ * detect and ignore cases of Store(local_x,local_x)
+ */
return_ACPI_STATUS(AE_AML_UNINITIALIZED_LOCAL);
default:
ACPI_ERROR((AE_INFO,
- "Not a Arg/Local opcode: %X",
+ "Not a Arg/Local opcode: 0x%X",
type));
return_ACPI_STATUS(AE_AML_INTERNAL);
}
@@ -462,14 +458,14 @@ acpi_ds_method_data_get_value(u8 type,
*
* FUNCTION: acpi_ds_method_data_delete_value
*
- * PARAMETERS: Type - Either ACPI_REFCLASS_LOCAL or
+ * PARAMETERS: type - Either ACPI_REFCLASS_LOCAL or
* ACPI_REFCLASS_ARG
- * Index - Which local_var or argument to delete
+ * index - Which localVar or argument to delete
* walk_state - Current walk state object
*
* RETURN: None
*
- * DESCRIPTION: Delete the entry at Opcode:Index. Inserts
+ * DESCRIPTION: Delete the entry at Opcode:Index. Inserts
* a null into the stack slot after the object is deleted.
*
******************************************************************************/
@@ -519,15 +515,15 @@ acpi_ds_method_data_delete_value(u8 type,
*
* FUNCTION: acpi_ds_store_object_to_local
*
- * PARAMETERS: Type - Either ACPI_REFCLASS_LOCAL or
+ * PARAMETERS: type - Either ACPI_REFCLASS_LOCAL or
* ACPI_REFCLASS_ARG
- * Index - Which Local or Arg to set
+ * index - Which Local or Arg to set
* obj_desc - Value to be stored
* walk_state - Current walk state
*
* RETURN: Status
*
- * DESCRIPTION: Store a value in an Arg or Local. The obj_desc is installed
+ * DESCRIPTION: Store a value in an Arg or Local. The obj_desc is installed
* as the new value for the Arg or Local and the reference count
* for obj_desc is incremented.
*
@@ -545,7 +541,7 @@ acpi_ds_store_object_to_local(u8 type,
union acpi_operand_object *new_obj_desc;
ACPI_FUNCTION_TRACE(ds_store_object_to_local);
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Type=%2.2X Index=%d Obj=%p\n",
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Type=%2.2X Index=%u Obj=%p\n",
type, index, obj_desc));
/* Parameter validation */
@@ -570,7 +566,7 @@ acpi_ds_store_object_to_local(u8 type,
/*
* If the reference count on the object is more than one, we must
- * take a copy of the object before we store. A reference count
+ * take a copy of the object before we store. A reference count
* of exactly 1 means that the object was just created during the
* evaluation of an expression, and we can safely use it since it
* is not used anywhere else.
@@ -674,8 +670,8 @@ acpi_ds_store_object_to_local(u8 type,
*
* FUNCTION: acpi_ds_method_data_get_type
*
- * PARAMETERS: Opcode - Either AML_LOCAL_OP or AML_ARG_OP
- * Index - Which Local or Arg whose type to get
+ * PARAMETERS: opcode - Either AML_LOCAL_OP or AML_ARG_OP
+ * index - Which Local or Arg whose type to get
* walk_state - Current walk state object
*
* RETURN: Data type of current value of the selected Arg or Local
@@ -713,6 +709,6 @@ acpi_ds_method_data_get_type(u16 opcode,
/* Get the object type */
- return_VALUE(ACPI_GET_OBJECT_TYPE(object));
+ return_VALUE(object->type);
}
#endif
diff --git a/drivers/acpi/acpica/dsobject.c b/drivers/acpi/acpica/dsobject.c
index 15c628e6aa0..a1e7e6b6fcf 100644
--- a/drivers/acpi/acpica/dsobject.c
+++ b/drivers/acpi/acpica/dsobject.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -64,7 +64,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state,
* FUNCTION: acpi_ds_build_internal_object
*
* PARAMETERS: walk_state - Current walk state
- * Op - Parser object to be translated
+ * op - Parser object to be translated
* obj_desc_ptr - Where the ACPI internal object is returned
*
* RETURN: Status
@@ -81,6 +81,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state,
{
union acpi_operand_object *obj_desc;
acpi_status status;
+ acpi_object_type type;
ACPI_FUNCTION_TRACE(ds_build_internal_object);
@@ -172,7 +173,20 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state,
return_ACPI_STATUS(status);
}
- switch (op->common.node->type) {
+ /*
+ * Special handling for Alias objects. We need to setup the type
+ * and the Op->Common.Node to point to the Alias target. Note,
+ * Alias has at most one level of indirection internally.
+ */
+ type = op->common.node->type;
+ if (type == ACPI_TYPE_LOCAL_ALIAS) {
+ type = obj_desc->common.type;
+ op->common.node =
+ ACPI_CAST_PTR(struct acpi_namespace_node,
+ op->common.node->object);
+ }
+
+ switch (type) {
/*
* For these types, we need the actual node, not the subobject.
* However, the subobject did not get an extra reference count above.
@@ -226,7 +240,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state,
return_ACPI_STATUS(status);
}
- exit:
+exit:
*obj_desc_ptr = obj_desc;
return_ACPI_STATUS(status);
}
@@ -236,7 +250,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state,
* FUNCTION: acpi_ds_build_internal_buffer_obj
*
* PARAMETERS: walk_state - Current walk state
- * Op - Parser object to be translated
+ * op - Parser object to be translated
* buffer_length - Length of the buffer
* obj_desc_ptr - Where the ACPI internal object is returned
*
@@ -279,7 +293,7 @@ acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state,
/*
* Second arg is the buffer data (optional) byte_list can be either
- * individual bytes or a string initializer. In either case, a
+ * individual bytes or a string initializer. In either case, a
* byte_list appears in the AML.
*/
arg = op->common.value.arg; /* skip first arg */
@@ -288,7 +302,7 @@ acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state,
if (byte_list) {
if (byte_list->common.aml_opcode != AML_INT_BYTELIST_OP) {
ACPI_ERROR((AE_INFO,
- "Expecting bytelist, got AML opcode %X in op %p",
+ "Expecting bytelist, found AML opcode 0x%X in op %p",
byte_list->common.aml_opcode, byte_list));
acpi_ut_remove_reference(obj_desc);
@@ -340,7 +354,7 @@ acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state,
* FUNCTION: acpi_ds_build_internal_package_obj
*
* PARAMETERS: walk_state - Current walk state
- * Op - Parser object to be translated
+ * op - Parser object to be translated
* element_count - Number of elements in the package - this is
* the num_elements argument to Package()
* obj_desc_ptr - Where the ACPI internal object is returned
@@ -374,7 +388,7 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state,
union acpi_parse_object *parent;
union acpi_operand_object *obj_desc = NULL;
acpi_status status = AE_OK;
- unsigned i;
+ u32 i;
u16 index;
u16 reference_count;
@@ -482,14 +496,27 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state,
if (arg) {
/*
* num_elements was exhausted, but there are remaining elements in the
- * package_list.
+ * package_list. Truncate the package to num_elements.
*
* Note: technically, this is an error, from ACPI spec: "It is an error
* for NumElements to be less than the number of elements in the
- * PackageList". However, for now, we just print an error message and
- * no exception is returned.
+ * PackageList". However, we just print a message and
+ * no exception is returned. This provides Windows compatibility. Some
+ * BIOSs will alter the num_elements on the fly, creating this type
+ * of ill-formed package object.
*/
while (arg) {
+ /*
+ * We must delete any package elements that were created earlier
+ * and are not going to be used because of the package truncation.
+ */
+ if (arg->common.node) {
+ acpi_ut_remove_reference(ACPI_CAST_PTR
+ (union
+ acpi_operand_object,
+ arg->common.node));
+ arg->common.node = NULL;
+ }
/* Find out how many elements there really are */
@@ -497,16 +524,16 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state,
arg = arg->common.next;
}
- ACPI_WARNING((AE_INFO,
- "Package List length (%X) larger than NumElements count (%X), truncated\n",
- i, element_count));
+ ACPI_INFO((AE_INFO,
+ "Actual Package length (%u) is larger than NumElements field (%u), truncated",
+ i, element_count));
} else if (i < element_count) {
/*
* Arg list (elements) was exhausted, but we did not reach num_elements count.
* Note: this is not an error, the package is padded out with NULLs.
*/
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "Package List length (%X) smaller than NumElements count (%X), padded with null elements\n",
+ "Package List length (%u) smaller than NumElements count (%u), padded with null elements\n",
i, element_count));
}
@@ -520,8 +547,8 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state,
* FUNCTION: acpi_ds_create_node
*
* PARAMETERS: walk_state - Current walk state
- * Node - NS Node to be initialized
- * Op - Parser object to be translated
+ * node - NS Node to be initialized
+ * op - Parser object to be translated
*
* RETURN: Status
*
@@ -541,7 +568,7 @@ acpi_ds_create_node(struct acpi_walk_state *walk_state,
/*
* Because of the execution pass through the non-control-method
- * parts of the table, we can arrive here twice. Only init
+ * parts of the table, we can arrive here twice. Only init
* the named object node the first time through
*/
if (acpi_ns_get_attached_object(node)) {
@@ -565,7 +592,7 @@ acpi_ds_create_node(struct acpi_walk_state *walk_state,
/* Re-type the object according to its argument */
- node->type = ACPI_GET_OBJECT_TYPE(obj_desc);
+ node->type = obj_desc->common.type;
/* Attach obj to node */
@@ -584,14 +611,14 @@ acpi_ds_create_node(struct acpi_walk_state *walk_state,
* FUNCTION: acpi_ds_init_object_from_op
*
* PARAMETERS: walk_state - Current walk state
- * Op - Parser op used to init the internal object
- * Opcode - AML opcode associated with the object
+ * op - Parser op used to init the internal object
+ * opcode - AML opcode associated with the object
* ret_obj_desc - Namespace object to be initialized
*
* RETURN: Status
*
* DESCRIPTION: Initialize a namespace object from a parser Op and its
- * associated arguments. The namespace object is a more compact
+ * associated arguments. The namespace object is a more compact
* representation of the Op and its arguments.
*
******************************************************************************/
@@ -619,9 +646,8 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
/* Perform per-object initialization */
- switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
+ switch (obj_desc->common.type) {
case ACPI_TYPE_BUFFER:
-
/*
* Defer evaluation of Buffer term_arg operand
*/
@@ -633,7 +659,6 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
break;
case ACPI_TYPE_PACKAGE:
-
/*
* Defer evaluation of Package term_arg operand
*/
@@ -671,12 +696,12 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
case AML_ONES_OP:
- obj_desc->integer.value = ACPI_INTEGER_MAX;
+ obj_desc->integer.value = ACPI_UINT64_MAX;
/* Truncate value if we are executing from a 32-bit ACPI table */
#ifndef ACPI_NO_METHOD_EXECUTION
- acpi_ex_truncate_for32bit_table(obj_desc);
+ (void)acpi_ex_truncate_for32bit_table(obj_desc);
#endif
break;
@@ -688,7 +713,7 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
default:
ACPI_ERROR((AE_INFO,
- "Unknown constant opcode %X",
+ "Unknown constant opcode 0x%X",
opcode));
status = AE_AML_OPERAND_TYPE;
break;
@@ -698,13 +723,24 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
case AML_TYPE_LITERAL:
obj_desc->integer.value = op->common.value.integer;
+
#ifndef ACPI_NO_METHOD_EXECUTION
- acpi_ex_truncate_for32bit_table(obj_desc);
+ if (acpi_ex_truncate_for32bit_table(obj_desc)) {
+
+ /* Warn if we found a 64-bit constant in a 32-bit table */
+
+ ACPI_WARNING((AE_INFO,
+ "Truncated 64-bit constant found in 32-bit table: %8.8X%8.8X => %8.8X",
+ ACPI_FORMAT_UINT64(op->common.
+ value.integer),
+ (u32)obj_desc->integer.value));
+ }
#endif
break;
default:
- ACPI_ERROR((AE_INFO, "Unknown Integer type %X",
+
+ ACPI_ERROR((AE_INFO, "Unknown Integer type 0x%X",
op_info->type));
status = AE_AML_OPERAND_TYPE;
break;
@@ -734,7 +770,8 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
/* Local ID (0-7) is (AML opcode - base AML_LOCAL_OP) */
- obj_desc->reference.value = opcode - AML_LOCAL_OP;
+ obj_desc->reference.value =
+ ((u32)opcode) - AML_LOCAL_OP;
obj_desc->reference.class = ACPI_REFCLASS_LOCAL;
#ifndef ACPI_NO_METHOD_EXECUTION
@@ -754,7 +791,7 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
/* Arg ID (0-6) is (AML opcode - base AML_ARG_OP) */
- obj_desc->reference.value = opcode - AML_ARG_OP;
+ obj_desc->reference.value = ((u32)opcode) - AML_ARG_OP;
obj_desc->reference.class = ACPI_REFCLASS_ARG;
#ifndef ACPI_NO_METHOD_EXECUTION
@@ -792,7 +829,7 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
default:
ACPI_ERROR((AE_INFO,
- "Unimplemented reference type for AML opcode: %4.4X",
+ "Unimplemented reference type for AML opcode: 0x%4.4X",
opcode));
return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
}
@@ -802,8 +839,8 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state,
default:
- ACPI_ERROR((AE_INFO, "Unimplemented data type: %X",
- ACPI_GET_OBJECT_TYPE(obj_desc)));
+ ACPI_ERROR((AE_INFO, "Unimplemented data type: 0x%X",
+ obj_desc->common.type));
status = AE_AML_OPERAND_TYPE;
break;
diff --git a/drivers/acpi/acpica/dsopcode.c b/drivers/acpi/acpica/dsopcode.c
index 0c3b4dd60e8..6c0759c0db4 100644
--- a/drivers/acpi/acpica/dsopcode.c
+++ b/drivers/acpi/acpica/dsopcode.c
@@ -1,12 +1,11 @@
/******************************************************************************
*
- * Module Name: dsopcode - Dispatcher Op Region support and handling of
- * "control" opcodes
+ * Module Name: dsopcode - Dispatcher support for regions and fields
*
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -57,11 +56,6 @@ ACPI_MODULE_NAME("dsopcode")
/* Local prototypes */
static acpi_status
-acpi_ds_execute_arguments(struct acpi_namespace_node *node,
- struct acpi_namespace_node *scope_node,
- u32 aml_length, u8 * aml_start);
-
-static acpi_status
acpi_ds_init_buffer_field(u16 aml_opcode,
union acpi_operand_object *obj_desc,
union acpi_operand_object *buffer_desc,
@@ -71,361 +65,6 @@ acpi_ds_init_buffer_field(u16 aml_opcode,
/*******************************************************************************
*
- * FUNCTION: acpi_ds_execute_arguments
- *
- * PARAMETERS: Node - Object NS node
- * scope_node - Parent NS node
- * aml_length - Length of executable AML
- * aml_start - Pointer to the AML
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Late (deferred) execution of region or field arguments
- *
- ******************************************************************************/
-
-static acpi_status
-acpi_ds_execute_arguments(struct acpi_namespace_node *node,
- struct acpi_namespace_node *scope_node,
- u32 aml_length, u8 * aml_start)
-{
- acpi_status status;
- union acpi_parse_object *op;
- struct acpi_walk_state *walk_state;
-
- ACPI_FUNCTION_TRACE(ds_execute_arguments);
-
- /*
- * Allocate a new parser op to be the root of the parsed tree
- */
- op = acpi_ps_alloc_op(AML_INT_EVAL_SUBTREE_OP);
- if (!op) {
- return_ACPI_STATUS(AE_NO_MEMORY);
- }
-
- /* Save the Node for use in acpi_ps_parse_aml */
-
- op->common.node = scope_node;
-
- /* Create and initialize a new parser state */
-
- walk_state = acpi_ds_create_walk_state(0, NULL, NULL, NULL);
- if (!walk_state) {
- status = AE_NO_MEMORY;
- goto cleanup;
- }
-
- status = acpi_ds_init_aml_walk(walk_state, op, NULL, aml_start,
- aml_length, NULL, ACPI_IMODE_LOAD_PASS1);
- if (ACPI_FAILURE(status)) {
- acpi_ds_delete_walk_state(walk_state);
- goto cleanup;
- }
-
- /* Mark this parse as a deferred opcode */
-
- walk_state->parse_flags = ACPI_PARSE_DEFERRED_OP;
- walk_state->deferred_node = node;
-
- /* Pass1: Parse the entire declaration */
-
- status = acpi_ps_parse_aml(walk_state);
- if (ACPI_FAILURE(status)) {
- goto cleanup;
- }
-
- /* Get and init the Op created above */
-
- op->common.node = node;
- acpi_ps_delete_parse_tree(op);
-
- /* Evaluate the deferred arguments */
-
- op = acpi_ps_alloc_op(AML_INT_EVAL_SUBTREE_OP);
- if (!op) {
- return_ACPI_STATUS(AE_NO_MEMORY);
- }
-
- op->common.node = scope_node;
-
- /* Create and initialize a new parser state */
-
- walk_state = acpi_ds_create_walk_state(0, NULL, NULL, NULL);
- if (!walk_state) {
- status = AE_NO_MEMORY;
- goto cleanup;
- }
-
- /* Execute the opcode and arguments */
-
- status = acpi_ds_init_aml_walk(walk_state, op, NULL, aml_start,
- aml_length, NULL, ACPI_IMODE_EXECUTE);
- if (ACPI_FAILURE(status)) {
- acpi_ds_delete_walk_state(walk_state);
- goto cleanup;
- }
-
- /* Mark this execution as a deferred opcode */
-
- walk_state->deferred_node = node;
- status = acpi_ps_parse_aml(walk_state);
-
- cleanup:
- acpi_ps_delete_parse_tree(op);
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ds_get_buffer_field_arguments
- *
- * PARAMETERS: obj_desc - A valid buffer_field object
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Get buffer_field Buffer and Index. This implements the late
- * evaluation of these field attributes.
- *
- ******************************************************************************/
-
-acpi_status
-acpi_ds_get_buffer_field_arguments(union acpi_operand_object *obj_desc)
-{
- union acpi_operand_object *extra_desc;
- struct acpi_namespace_node *node;
- acpi_status status;
-
- ACPI_FUNCTION_TRACE_PTR(ds_get_buffer_field_arguments, obj_desc);
-
- if (obj_desc->common.flags & AOPOBJ_DATA_VALID) {
- return_ACPI_STATUS(AE_OK);
- }
-
- /* Get the AML pointer (method object) and buffer_field node */
-
- extra_desc = acpi_ns_get_secondary_object(obj_desc);
- node = obj_desc->buffer_field.node;
-
- ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname
- (ACPI_TYPE_BUFFER_FIELD, node, NULL));
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "[%4.4s] BufferField Arg Init\n",
- acpi_ut_get_node_name(node)));
-
- /* Execute the AML code for the term_arg arguments */
-
- status = acpi_ds_execute_arguments(node, acpi_ns_get_parent_node(node),
- extra_desc->extra.aml_length,
- extra_desc->extra.aml_start);
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ds_get_bank_field_arguments
- *
- * PARAMETERS: obj_desc - A valid bank_field object
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Get bank_field bank_value. This implements the late
- * evaluation of these field attributes.
- *
- ******************************************************************************/
-
-acpi_status
-acpi_ds_get_bank_field_arguments(union acpi_operand_object *obj_desc)
-{
- union acpi_operand_object *extra_desc;
- struct acpi_namespace_node *node;
- acpi_status status;
-
- ACPI_FUNCTION_TRACE_PTR(ds_get_bank_field_arguments, obj_desc);
-
- if (obj_desc->common.flags & AOPOBJ_DATA_VALID) {
- return_ACPI_STATUS(AE_OK);
- }
-
- /* Get the AML pointer (method object) and bank_field node */
-
- extra_desc = acpi_ns_get_secondary_object(obj_desc);
- node = obj_desc->bank_field.node;
-
- ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname
- (ACPI_TYPE_LOCAL_BANK_FIELD, node, NULL));
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "[%4.4s] BankField Arg Init\n",
- acpi_ut_get_node_name(node)));
-
- /* Execute the AML code for the term_arg arguments */
-
- status = acpi_ds_execute_arguments(node, acpi_ns_get_parent_node(node),
- extra_desc->extra.aml_length,
- extra_desc->extra.aml_start);
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ds_get_buffer_arguments
- *
- * PARAMETERS: obj_desc - A valid Buffer object
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Get Buffer length and initializer byte list. This implements
- * the late evaluation of these attributes.
- *
- ******************************************************************************/
-
-acpi_status acpi_ds_get_buffer_arguments(union acpi_operand_object *obj_desc)
-{
- struct acpi_namespace_node *node;
- acpi_status status;
-
- ACPI_FUNCTION_TRACE_PTR(ds_get_buffer_arguments, obj_desc);
-
- if (obj_desc->common.flags & AOPOBJ_DATA_VALID) {
- return_ACPI_STATUS(AE_OK);
- }
-
- /* Get the Buffer node */
-
- node = obj_desc->buffer.node;
- if (!node) {
- ACPI_ERROR((AE_INFO,
- "No pointer back to NS node in buffer obj %p",
- obj_desc));
- return_ACPI_STATUS(AE_AML_INTERNAL);
- }
-
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Buffer Arg Init\n"));
-
- /* Execute the AML code for the term_arg arguments */
-
- status = acpi_ds_execute_arguments(node, node,
- obj_desc->buffer.aml_length,
- obj_desc->buffer.aml_start);
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ds_get_package_arguments
- *
- * PARAMETERS: obj_desc - A valid Package object
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Get Package length and initializer byte list. This implements
- * the late evaluation of these attributes.
- *
- ******************************************************************************/
-
-acpi_status acpi_ds_get_package_arguments(union acpi_operand_object *obj_desc)
-{
- struct acpi_namespace_node *node;
- acpi_status status;
-
- ACPI_FUNCTION_TRACE_PTR(ds_get_package_arguments, obj_desc);
-
- if (obj_desc->common.flags & AOPOBJ_DATA_VALID) {
- return_ACPI_STATUS(AE_OK);
- }
-
- /* Get the Package node */
-
- node = obj_desc->package.node;
- if (!node) {
- ACPI_ERROR((AE_INFO,
- "No pointer back to NS node in package %p",
- obj_desc));
- return_ACPI_STATUS(AE_AML_INTERNAL);
- }
-
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Package Arg Init\n"));
-
- /* Execute the AML code for the term_arg arguments */
-
- status = acpi_ds_execute_arguments(node, node,
- obj_desc->package.aml_length,
- obj_desc->package.aml_start);
- return_ACPI_STATUS(status);
-}
-
-/*****************************************************************************
- *
- * FUNCTION: acpi_ds_get_region_arguments
- *
- * PARAMETERS: obj_desc - A valid region object
- *
- * RETURN: Status.
- *
- * DESCRIPTION: Get region address and length. This implements the late
- * evaluation of these region attributes.
- *
- ****************************************************************************/
-
-acpi_status acpi_ds_get_region_arguments(union acpi_operand_object *obj_desc)
-{
- struct acpi_namespace_node *node;
- acpi_status status;
- union acpi_operand_object *extra_desc;
-
- ACPI_FUNCTION_TRACE_PTR(ds_get_region_arguments, obj_desc);
-
- if (obj_desc->region.flags & AOPOBJ_DATA_VALID) {
- return_ACPI_STATUS(AE_OK);
- }
-
- extra_desc = acpi_ns_get_secondary_object(obj_desc);
- if (!extra_desc) {
- return_ACPI_STATUS(AE_NOT_EXIST);
- }
-
- /* Get the Region node */
-
- node = obj_desc->region.node;
-
- ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname
- (ACPI_TYPE_REGION, node, NULL));
-
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "[%4.4s] OpRegion Arg Init at AML %p\n",
- acpi_ut_get_node_name(node),
- extra_desc->extra.aml_start));
-
- /* Execute the argument AML */
-
- status = acpi_ds_execute_arguments(node, acpi_ns_get_parent_node(node),
- extra_desc->extra.aml_length,
- extra_desc->extra.aml_start);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
- /* Validate the region address/length via the host OS */
-
- status = acpi_os_validate_address(obj_desc->region.space_id,
- obj_desc->region.address,
- (acpi_size) obj_desc->region.length,
- acpi_ut_get_node_name(node));
-
- if (ACPI_FAILURE(status)) {
- /*
- * Invalid address/length. We will emit an error message and mark
- * the region as invalid, so that it will cause an additional error if
- * it is ever used. Then return AE_OK.
- */
- ACPI_EXCEPTION((AE_INFO, status,
- "During address validation of OpRegion [%4.4s]",
- node->name.ascii));
- obj_desc->common.flags |= AOPOBJ_INVALID;
- status = AE_OK;
- }
-
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
* FUNCTION: acpi_ds_initialize_region
*
* PARAMETERS: obj_handle - Region namespace node
@@ -484,7 +123,7 @@ acpi_ds_init_buffer_field(u16 aml_opcode,
/* Host object must be a Buffer */
- if (ACPI_GET_OBJECT_TYPE(buffer_desc) != ACPI_TYPE_BUFFER) {
+ if (buffer_desc->common.type != ACPI_TYPE_BUFFER) {
ACPI_ERROR((AE_INFO,
"Target of Create Field is not a Buffer object - %s",
acpi_ut_get_object_type_name(buffer_desc)));
@@ -580,7 +219,8 @@ acpi_ds_init_buffer_field(u16 aml_opcode,
default:
ACPI_ERROR((AE_INFO,
- "Unknown field creation opcode %02x", aml_opcode));
+ "Unknown field creation opcode 0x%02X",
+ aml_opcode));
status = AE_AML_BAD_OPCODE;
goto cleanup;
}
@@ -589,7 +229,7 @@ acpi_ds_init_buffer_field(u16 aml_opcode,
if ((bit_offset + bit_count) > (8 * (u32) buffer_desc->buffer.length)) {
ACPI_ERROR((AE_INFO,
- "Field [%4.4s] at %d exceeds Buffer [%4.4s] size %d (bits)",
+ "Field [%4.4s] at %u exceeds Buffer [%4.4s] size %u (bits)",
acpi_ut_get_node_name(result_desc),
bit_offset + bit_count,
acpi_ut_get_node_name(buffer_desc->buffer.node),
@@ -617,7 +257,7 @@ acpi_ds_init_buffer_field(u16 aml_opcode,
(buffer_desc->common.reference_count +
obj_desc->common.reference_count);
- cleanup:
+cleanup:
/* Always delete the operands */
@@ -646,7 +286,7 @@ acpi_ds_init_buffer_field(u16 aml_opcode,
* FUNCTION: acpi_ds_eval_buffer_field_operands
*
* PARAMETERS: walk_state - Current walk
- * Op - A valid buffer_field Op object
+ * op - A valid buffer_field Op object
*
* RETURN: Status
*
@@ -693,7 +333,7 @@ acpi_ds_eval_buffer_field_operands(struct acpi_walk_state *walk_state,
status = acpi_ex_resolve_operands(op->common.aml_opcode,
ACPI_WALK_OPERANDS, walk_state);
if (ACPI_FAILURE(status)) {
- ACPI_ERROR((AE_INFO, "(%s) bad operand(s) (%X)",
+ ACPI_ERROR((AE_INFO, "(%s) bad operand(s), status 0x%X",
acpi_ps_get_opcode_name(op->common.aml_opcode),
status));
@@ -730,7 +370,7 @@ acpi_ds_eval_buffer_field_operands(struct acpi_walk_state *walk_state,
* FUNCTION: acpi_ds_eval_region_operands
*
* PARAMETERS: walk_state - Current walk
- * Op - A valid region Op object
+ * op - A valid region Op object
*
* RETURN: Status
*
@@ -757,7 +397,7 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
*/
node = op->common.node;
- /* next_op points to the op that holds the space_iD */
+ /* next_op points to the op that holds the space_ID */
next_op = op->common.value.arg;
@@ -821,12 +461,13 @@ acpi_ds_eval_region_operands(struct acpi_walk_state *walk_state,
* FUNCTION: acpi_ds_eval_table_region_operands
*
* PARAMETERS: walk_state - Current walk
- * Op - A valid region Op object
+ * op - A valid region Op object
*
* RETURN: Status
*
- * DESCRIPTION: Get region address and length
- * Called from acpi_ds_exec_end_op during data_table_region parse tree walk
+ * DESCRIPTION: Get region address and length.
+ * Called from acpi_ds_exec_end_op during data_table_region parse
+ * tree walk.
*
******************************************************************************/
@@ -845,18 +486,18 @@ acpi_ds_eval_table_region_operands(struct acpi_walk_state *walk_state,
ACPI_FUNCTION_TRACE_PTR(ds_eval_table_region_operands, op);
/*
- * This is where we evaluate the signature_string and oem_iDString
- * and oem_table_iDString of the data_table_region declaration
+ * This is where we evaluate the Signature string, oem_id string,
+ * and oem_table_id string of the Data Table Region declaration
*/
node = op->common.node;
- /* next_op points to signature_string op */
+ /* next_op points to Signature string op */
next_op = op->common.value.arg;
/*
- * Evaluate/create the signature_string and oem_iDString
- * and oem_table_iDString operands
+ * Evaluate/create the Signature string, oem_id string,
+ * and oem_table_id string operands
*/
status = acpi_ds_create_operands(walk_state, next_op);
if (ACPI_FAILURE(status)) {
@@ -864,8 +505,8 @@ acpi_ds_eval_table_region_operands(struct acpi_walk_state *walk_state,
}
/*
- * Resolve the signature_string and oem_iDString
- * and oem_table_iDString operands
+ * Resolve the Signature string, oem_id string,
+ * and oem_table_id string operands
*/
status = acpi_ex_resolve_operands(op->common.aml_opcode,
ACPI_WALK_OPERANDS, walk_state);
@@ -919,7 +560,7 @@ acpi_ds_eval_table_region_operands(struct acpi_walk_state *walk_state,
* FUNCTION: acpi_ds_eval_data_object_operands
*
* PARAMETERS: walk_state - Current walk
- * Op - A valid data_object Op object
+ * op - A valid data_object Op object
* obj_desc - data_object
*
* RETURN: Status
@@ -995,6 +636,7 @@ acpi_ds_eval_data_object_operands(struct acpi_walk_state *walk_state,
break;
default:
+
return_ACPI_STATUS(AE_AML_BAD_OPCODE);
}
@@ -1008,7 +650,8 @@ acpi_ds_eval_data_object_operands(struct acpi_walk_state *walk_state,
((op->common.parent->common.aml_opcode != AML_PACKAGE_OP) &&
(op->common.parent->common.aml_opcode !=
AML_VAR_PACKAGE_OP)
- && (op->common.parent->common.aml_opcode != AML_NAME_OP))) {
+ && (op->common.parent->common.aml_opcode !=
+ AML_NAME_OP))) {
walk_state->result_obj = obj_desc;
}
}
@@ -1021,7 +664,7 @@ acpi_ds_eval_data_object_operands(struct acpi_walk_state *walk_state,
* FUNCTION: acpi_ds_eval_bank_field_operands
*
* PARAMETERS: walk_state - Current walk
- * Op - A valid bank_field Op object
+ * op - A valid bank_field Op object
*
* RETURN: Status
*
@@ -1113,357 +756,3 @@ acpi_ds_eval_bank_field_operands(struct acpi_walk_state *walk_state,
acpi_ut_remove_reference(operand_desc);
return_ACPI_STATUS(status);
}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ds_exec_begin_control_op
- *
- * PARAMETERS: walk_list - The list that owns the walk stack
- * Op - The control Op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Handles all control ops encountered during control method
- * execution.
- *
- ******************************************************************************/
-
-acpi_status
-acpi_ds_exec_begin_control_op(struct acpi_walk_state *walk_state,
- union acpi_parse_object *op)
-{
- acpi_status status = AE_OK;
- union acpi_generic_state *control_state;
-
- ACPI_FUNCTION_NAME(ds_exec_begin_control_op);
-
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p Opcode=%2.2X State=%p\n", op,
- op->common.aml_opcode, walk_state));
-
- switch (op->common.aml_opcode) {
- case AML_WHILE_OP:
-
- /*
- * If this is an additional iteration of a while loop, continue.
- * There is no need to allocate a new control state.
- */
- if (walk_state->control_state) {
- if (walk_state->control_state->control.aml_predicate_start
- == (walk_state->parser_state.aml - 1)) {
-
- /* Reset the state to start-of-loop */
-
- walk_state->control_state->common.state =
- ACPI_CONTROL_CONDITIONAL_EXECUTING;
- break;
- }
- }
-
- /*lint -fallthrough */
-
- case AML_IF_OP:
-
- /*
- * IF/WHILE: Create a new control state to manage these
- * constructs. We need to manage these as a stack, in order
- * to handle nesting.
- */
- control_state = acpi_ut_create_control_state();
- if (!control_state) {
- status = AE_NO_MEMORY;
- break;
- }
- /*
- * Save a pointer to the predicate for multiple executions
- * of a loop
- */
- control_state->control.aml_predicate_start =
- walk_state->parser_state.aml - 1;
- control_state->control.package_end =
- walk_state->parser_state.pkg_end;
- control_state->control.opcode = op->common.aml_opcode;
-
- /* Push the control state on this walk's control stack */
-
- acpi_ut_push_generic_state(&walk_state->control_state,
- control_state);
- break;
-
- case AML_ELSE_OP:
-
- /* Predicate is in the state object */
- /* If predicate is true, the IF was executed, ignore ELSE part */
-
- if (walk_state->last_predicate) {
- status = AE_CTRL_TRUE;
- }
-
- break;
-
- case AML_RETURN_OP:
-
- break;
-
- default:
- break;
- }
-
- return (status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ds_exec_end_control_op
- *
- * PARAMETERS: walk_list - The list that owns the walk stack
- * Op - The control Op
- *
- * RETURN: Status
- *
- * DESCRIPTION: Handles all control ops encountered during control method
- * execution.
- *
- ******************************************************************************/
-
-acpi_status
-acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state,
- union acpi_parse_object * op)
-{
- acpi_status status = AE_OK;
- union acpi_generic_state *control_state;
-
- ACPI_FUNCTION_NAME(ds_exec_end_control_op);
-
- switch (op->common.aml_opcode) {
- case AML_IF_OP:
-
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "[IF_OP] Op=%p\n", op));
-
- /*
- * Save the result of the predicate in case there is an
- * ELSE to come
- */
- walk_state->last_predicate =
- (u8) walk_state->control_state->common.value;
-
- /*
- * Pop the control state that was created at the start
- * of the IF and free it
- */
- control_state =
- acpi_ut_pop_generic_state(&walk_state->control_state);
- acpi_ut_delete_generic_state(control_state);
- break;
-
- case AML_ELSE_OP:
-
- break;
-
- case AML_WHILE_OP:
-
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "[WHILE_OP] Op=%p\n", op));
-
- control_state = walk_state->control_state;
- if (control_state->common.value) {
-
- /* Predicate was true, the body of the loop was just executed */
-
- /*
- * This loop counter mechanism allows the interpreter to escape
- * possibly infinite loops. This can occur in poorly written AML
- * when the hardware does not respond within a while loop and the
- * loop does not implement a timeout.
- */
- control_state->control.loop_count++;
- if (control_state->control.loop_count >
- ACPI_MAX_LOOP_ITERATIONS) {
- status = AE_AML_INFINITE_LOOP;
- break;
- }
-
- /*
- * Go back and evaluate the predicate and maybe execute the loop
- * another time
- */
- status = AE_CTRL_PENDING;
- walk_state->aml_last_while =
- control_state->control.aml_predicate_start;
- break;
- }
-
- /* Predicate was false, terminate this while loop */
-
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "[WHILE_OP] termination! Op=%p\n", op));
-
- /* Pop this control state and free it */
-
- control_state =
- acpi_ut_pop_generic_state(&walk_state->control_state);
- acpi_ut_delete_generic_state(control_state);
- break;
-
- case AML_RETURN_OP:
-
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "[RETURN_OP] Op=%p Arg=%p\n", op,
- op->common.value.arg));
-
- /*
- * One optional operand -- the return value
- * It can be either an immediate operand or a result that
- * has been bubbled up the tree
- */
- if (op->common.value.arg) {
-
- /* Since we have a real Return(), delete any implicit return */
-
- acpi_ds_clear_implicit_return(walk_state);
-
- /* Return statement has an immediate operand */
-
- status =
- acpi_ds_create_operands(walk_state,
- op->common.value.arg);
- if (ACPI_FAILURE(status)) {
- return (status);
- }
-
- /*
- * If value being returned is a Reference (such as
- * an arg or local), resolve it now because it may
- * cease to exist at the end of the method.
- */
- status =
- acpi_ex_resolve_to_value(&walk_state->operands[0],
- walk_state);
- if (ACPI_FAILURE(status)) {
- return (status);
- }
-
- /*
- * Get the return value and save as the last result
- * value. This is the only place where walk_state->return_desc
- * is set to anything other than zero!
- */
- walk_state->return_desc = walk_state->operands[0];
- } else if (walk_state->result_count) {
-
- /* Since we have a real Return(), delete any implicit return */
-
- acpi_ds_clear_implicit_return(walk_state);
-
- /*
- * The return value has come from a previous calculation.
- *
- * If value being returned is a Reference (such as
- * an arg or local), resolve it now because it may
- * cease to exist at the end of the method.
- *
- * Allow references created by the Index operator to return unchanged.
- */
- if ((ACPI_GET_DESCRIPTOR_TYPE
- (walk_state->results->results.obj_desc[0]) ==
- ACPI_DESC_TYPE_OPERAND)
- &&
- (ACPI_GET_OBJECT_TYPE
- (walk_state->results->results.obj_desc[0]) ==
- ACPI_TYPE_LOCAL_REFERENCE)
- && ((walk_state->results->results.obj_desc[0])->
- reference.class != ACPI_REFCLASS_INDEX)) {
- status =
- acpi_ex_resolve_to_value(&walk_state->
- results->results.
- obj_desc[0],
- walk_state);
- if (ACPI_FAILURE(status)) {
- return (status);
- }
- }
-
- walk_state->return_desc =
- walk_state->results->results.obj_desc[0];
- } else {
- /* No return operand */
-
- if (walk_state->num_operands) {
- acpi_ut_remove_reference(walk_state->
- operands[0]);
- }
-
- walk_state->operands[0] = NULL;
- walk_state->num_operands = 0;
- walk_state->return_desc = NULL;
- }
-
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "Completed RETURN_OP State=%p, RetVal=%p\n",
- walk_state, walk_state->return_desc));
-
- /* End the control method execution right now */
-
- status = AE_CTRL_TERMINATE;
- break;
-
- case AML_NOOP_OP:
-
- /* Just do nothing! */
- break;
-
- case AML_BREAK_POINT_OP:
-
- /* Call up to the OS service layer to handle this */
-
- status =
- acpi_os_signal(ACPI_SIGNAL_BREAKPOINT,
- "Executed AML Breakpoint opcode");
-
- /* If and when it returns, all done. */
-
- break;
-
- case AML_BREAK_OP:
- case AML_CONTINUE_OP: /* ACPI 2.0 */
-
- /* Pop and delete control states until we find a while */
-
- while (walk_state->control_state &&
- (walk_state->control_state->control.opcode !=
- AML_WHILE_OP)) {
- control_state =
- acpi_ut_pop_generic_state(&walk_state->
- control_state);
- acpi_ut_delete_generic_state(control_state);
- }
-
- /* No while found? */
-
- if (!walk_state->control_state) {
- return (AE_AML_NO_WHILE);
- }
-
- /* Was: walk_state->aml_last_while = walk_state->control_state->Control.aml_predicate_start; */
-
- walk_state->aml_last_while =
- walk_state->control_state->control.package_end;
-
- /* Return status depending on opcode */
-
- if (op->common.aml_opcode == AML_BREAK_OP) {
- status = AE_CTRL_BREAK;
- } else {
- status = AE_CTRL_CONTINUE;
- }
- break;
-
- default:
-
- ACPI_ERROR((AE_INFO, "Unknown control opcode=%X Op=%p",
- op->common.aml_opcode, op));
-
- status = AE_AML_BAD_OPCODE;
- break;
- }
-
- return (status);
-}
diff --git a/drivers/acpi/acpica/dsutils.c b/drivers/acpi/acpica/dsutils.c
index dabc23a4617..9f74795e226 100644
--- a/drivers/acpi/acpica/dsutils.c
+++ b/drivers/acpi/acpica/dsutils.c
@@ -5,7 +5,7 @@
******************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -61,7 +61,7 @@ ACPI_MODULE_NAME("dsutils")
*
* RETURN: None.
*
- * DESCRIPTION: Clear and remove a reference on an implicit return value. Used
+ * DESCRIPTION: Clear and remove a reference on an implicit return value. Used
* to delete "stale" return values (if enabled, the return value
* from every operator is saved at least momentarily, in case the
* parent method exits.)
@@ -107,7 +107,7 @@ void acpi_ds_clear_implicit_return(struct acpi_walk_state *walk_state)
*
* DESCRIPTION: Implements the optional "implicit return". We save the result
* of every ASL operator and control method invocation in case the
- * parent method exit. Before storing a new return value, we
+ * parent method exit. Before storing a new return value, we
* delete the previous return value.
*
******************************************************************************/
@@ -157,7 +157,7 @@ acpi_ds_do_implicit_return(union acpi_operand_object *return_desc,
*
* FUNCTION: acpi_ds_is_result_used
*
- * PARAMETERS: Op - Current Op
+ * PARAMETERS: op - Current Op
* walk_state - Current State
*
* RETURN: TRUE if result is used, FALSE otherwise
@@ -198,7 +198,7 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
*
* If there is no parent, or the parent is a scope_op, we are executing
* at the method level. An executing method typically has no parent,
- * since each method is parsed separately. A method invoked externally
+ * since each method is parsed separately. A method invoked externally
* via execute_control_method has a scope_op as the parent.
*/
if ((!op->common.parent) ||
@@ -223,7 +223,7 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
}
/*
- * Decide what to do with the result based on the parent. If
+ * Decide what to do with the result based on the parent. If
* the parent opcode will not use the result, delete the object.
* Otherwise leave it as is, it will be deleted when it is used
* as an operand later.
@@ -240,7 +240,6 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
case AML_IF_OP:
case AML_WHILE_OP:
-
/*
* If we are executing the predicate AND this is the predicate op,
* we will use the return value
@@ -254,7 +253,9 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
break;
default:
+
/* Ignore other control opcodes */
+
break;
}
@@ -263,10 +264,9 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
goto result_not_used;
case AML_CLASS_CREATE:
-
/*
* These opcodes allow term_arg(s) as operands and therefore
- * the operands can be method calls. The result is used.
+ * the operands can be method calls. The result is used.
*/
goto result_used;
@@ -284,7 +284,7 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
AML_BANK_FIELD_OP)) {
/*
* These opcodes allow term_arg(s) as operands and therefore
- * the operands can be method calls. The result is used.
+ * the operands can be method calls. The result is used.
*/
goto result_used;
}
@@ -292,7 +292,6 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
goto result_not_used;
default:
-
/*
* In all other cases. the parent will actually use the return
* object, so keep it.
@@ -300,7 +299,7 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
goto result_used;
}
- result_used:
+result_used:
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
"Result of [%s] used by Parent [%s] Op=%p\n",
acpi_ps_get_opcode_name(op->common.aml_opcode),
@@ -309,7 +308,7 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
return_UINT8(TRUE);
- result_not_used:
+result_not_used:
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
"Result of [%s] not used by Parent [%s] Op=%p\n",
acpi_ps_get_opcode_name(op->common.aml_opcode),
@@ -323,15 +322,15 @@ acpi_ds_is_result_used(union acpi_parse_object * op,
*
* FUNCTION: acpi_ds_delete_result_if_not_used
*
- * PARAMETERS: Op - Current parse Op
+ * PARAMETERS: op - Current parse Op
* result_obj - Result of the operation
* walk_state - Current state
*
* RETURN: Status
*
- * DESCRIPTION: Used after interpretation of an opcode. If there is an internal
+ * DESCRIPTION: Used after interpretation of an opcode. If there is an internal
* result descriptor, check if the parent opcode will actually use
- * this result. If not, delete the result now so that it will
+ * this result. If not, delete the result now so that it will
* not become orphaned.
*
******************************************************************************/
@@ -376,7 +375,7 @@ acpi_ds_delete_result_if_not_used(union acpi_parse_object *op,
*
* RETURN: Status
*
- * DESCRIPTION: Resolve all operands to their values. Used to prepare
+ * DESCRIPTION: Resolve all operands to their values. Used to prepare
* arguments to a control method invocation (a call from one
* method to another.)
*
@@ -391,7 +390,7 @@ acpi_status acpi_ds_resolve_operands(struct acpi_walk_state *walk_state)
/*
* Attempt to resolve each of the valid operands
- * Method arguments are passed by reference, not by value. This means
+ * Method arguments are passed by reference, not by value. This means
* that the actual objects are passed, not copies of the objects.
*/
for (i = 0; i < walk_state->num_operands; i++) {
@@ -445,13 +444,13 @@ void acpi_ds_clear_operands(struct acpi_walk_state *walk_state)
* FUNCTION: acpi_ds_create_operand
*
* PARAMETERS: walk_state - Current walk state
- * Arg - Parse object for the argument
+ * arg - Parse object for the argument
* arg_index - Which argument (zero based)
*
* RETURN: Status
*
* DESCRIPTION: Translate a parse tree object that is an argument to an AML
- * opcode to the equivalent interpreter object. This may include
+ * opcode to the equivalent interpreter object. This may include
* looking up a name or entering a new name into the internal
* namespace.
*
@@ -496,9 +495,9 @@ acpi_ds_create_operand(struct acpi_walk_state *walk_state,
/*
* Special handling for buffer_field declarations. This is a deferred
* opcode that unfortunately defines the field name as the last
- * parameter instead of the first. We get here when we are performing
+ * parameter instead of the first. We get here when we are performing
* the deferred execution, so the actual name of the field is already
- * in the namespace. We don't want to attempt to look it up again
+ * in the namespace. We don't want to attempt to look it up again
* because we may be executing in a different scope than where the
* actual opcode exists.
*/
@@ -560,7 +559,8 @@ acpi_ds_create_operand(struct acpi_walk_state *walk_state,
* indicate this to the interpreter, set the
* object to the root
*/
- obj_desc = ACPI_CAST_PTR(union
+ obj_desc =
+ ACPI_CAST_PTR(union
acpi_operand_object,
acpi_gbl_root_node);
status = AE_OK;
@@ -604,8 +604,8 @@ acpi_ds_create_operand(struct acpi_walk_state *walk_state,
/*
* If the name is null, this means that this is an
* optional result parameter that was not specified
- * in the original ASL. Create a Zero Constant for a
- * placeholder. (Store to a constant is a Noop.)
+ * in the original ASL. Create a Zero Constant for a
+ * placeholder. (Store to a constant is a Noop.)
*/
opcode = AML_ZERO_OP; /* Has no arguments! */
@@ -727,32 +727,31 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
index++;
}
- index--;
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "NumOperands %d, ArgCount %d, Index %d\n",
+ walk_state->num_operands, arg_count, index));
- /* It is the appropriate order to get objects from the Result stack */
+ /* Create the interpreter arguments, in reverse order */
+ index--;
for (i = 0; i < arg_count; i++) {
arg = arguments[index];
-
- /* Force the filling of the operand stack in inverse order */
-
- walk_state->operand_index = (u8) index;
+ walk_state->operand_index = (u8)index;
status = acpi_ds_create_operand(walk_state, arg, index);
if (ACPI_FAILURE(status)) {
goto cleanup;
}
- index--;
-
ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "Arg #%d (%p) done, Arg1=%p\n", index, arg,
- first_arg));
+ "Created Arg #%u (%p) %u args total\n",
+ index, arg, arg_count));
+ index--;
}
return_ACPI_STATUS(status);
- cleanup:
+cleanup:
/*
* We must undo everything done above; meaning that we must
* pop everything off of the operand stack and delete those
@@ -760,7 +759,7 @@ acpi_ds_create_operands(struct acpi_walk_state *walk_state,
*/
acpi_ds_obj_stack_pop_and_delete(arg_count, walk_state);
- ACPI_EXCEPTION((AE_INFO, status, "While creating Arg %d", index));
+ ACPI_EXCEPTION((AE_INFO, status, "While creating Arg %u", index));
return_ACPI_STATUS(status);
}
@@ -816,7 +815,7 @@ acpi_status acpi_ds_evaluate_name_path(struct acpi_walk_state *walk_state)
goto push_result;
}
- type = ACPI_GET_OBJECT_TYPE(*operand);
+ type = (*operand)->common.type;
status = acpi_ex_resolve_to_value(operand, walk_state);
if (ACPI_FAILURE(status)) {
@@ -851,7 +850,7 @@ acpi_status acpi_ds_evaluate_name_path(struct acpi_walk_state *walk_state)
goto exit;
}
- push_result:
+push_result:
walk_state->result_obj = new_obj_desc;
@@ -863,7 +862,7 @@ acpi_status acpi_ds_evaluate_name_path(struct acpi_walk_state *walk_state)
op->common.flags |= ACPI_PARSEOP_IN_STACK;
}
- exit:
+exit:
return_ACPI_STATUS(status);
}
diff --git a/drivers/acpi/acpica/dswexec.c b/drivers/acpi/acpica/dswexec.c
index 350e6656bc8..f7f5107e754 100644
--- a/drivers/acpi/acpica/dswexec.c
+++ b/drivers/acpi/acpica/dswexec.c
@@ -6,7 +6,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -57,7 +57,7 @@ ACPI_MODULE_NAME("dswexec")
/*
* Dispatch table for opcode classes
*/
-static ACPI_EXECUTE_OP acpi_gbl_op_type_dispatch[] = {
+static acpi_execute_op acpi_gbl_op_type_dispatch[] = {
acpi_ex_opcode_0A_0T_1R,
acpi_ex_opcode_1A_0T_0R,
acpi_ex_opcode_1A_0T_1R,
@@ -138,11 +138,10 @@ acpi_ds_get_predicate_value(struct acpi_walk_state *walk_state,
goto cleanup;
}
- if (ACPI_GET_OBJECT_TYPE(local_obj_desc) != ACPI_TYPE_INTEGER) {
+ if (local_obj_desc->common.type != ACPI_TYPE_INTEGER) {
ACPI_ERROR((AE_INFO,
- "Bad predicate (not an integer) ObjDesc=%p State=%p Type=%X",
- obj_desc, walk_state,
- ACPI_GET_OBJECT_TYPE(obj_desc)));
+ "Bad predicate (not an integer) ObjDesc=%p State=%p Type=0x%X",
+ obj_desc, walk_state, obj_desc->common.type));
status = AE_AML_OPERAND_TYPE;
goto cleanup;
@@ -150,7 +149,7 @@ acpi_ds_get_predicate_value(struct acpi_walk_state *walk_state,
/* Truncate the predicate to 32-bits if necessary */
- acpi_ex_truncate_for32bit_table(local_obj_desc);
+ (void)acpi_ex_truncate_for32bit_table(local_obj_desc);
/*
* Save the result of the predicate evaluation on
@@ -171,7 +170,7 @@ acpi_ds_get_predicate_value(struct acpi_walk_state *walk_state,
(void)acpi_ds_do_implicit_return(local_obj_desc, walk_state, TRUE);
- cleanup:
+cleanup:
ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Completed a predicate eval=%X Op=%p\n",
walk_state->control_state->common.value,
@@ -205,7 +204,7 @@ acpi_ds_get_predicate_value(struct acpi_walk_state *walk_state,
* RETURN: Status
*
* DESCRIPTION: Descending callback used during the execution of control
- * methods. This is where most operators and operands are
+ * methods. This is where most operators and operands are
* dispatched to the interpreter.
*
****************************************************************************/
@@ -298,13 +297,28 @@ acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state,
if (walk_state->walk_type & ACPI_WALK_METHOD) {
/*
* Found a named object declaration during method execution;
- * we must enter this object into the namespace. The created
+ * we must enter this object into the namespace. The created
* object is temporary and will be deleted upon completion of
* the execution of this method.
+ *
+ * Note 10/2010: Except for the Scope() op. This opcode does
+ * not actually create a new object, it refers to an existing
+ * object. However, for Scope(), we want to indeed open a
+ * new scope.
*/
- status = acpi_ds_load2_begin_op(walk_state, NULL);
+ if (op->common.aml_opcode != AML_SCOPE_OP) {
+ status =
+ acpi_ds_load2_begin_op(walk_state, NULL);
+ } else {
+ status =
+ acpi_ds_scope_stack_push(op->named.node,
+ op->named.node->
+ type, walk_state);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+ }
}
-
break;
case AML_CLASS_EXECUTE:
@@ -313,6 +327,7 @@ acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state,
break;
default:
+
break;
}
@@ -320,7 +335,7 @@ acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state,
return_ACPI_STATUS(status);
- error_exit:
+error_exit:
status = acpi_ds_method_error(status, walk_state);
return_ACPI_STATUS(status);
}
@@ -334,7 +349,7 @@ acpi_ds_exec_begin_op(struct acpi_walk_state *walk_state,
* RETURN: Status
*
* DESCRIPTION: Ascending callback used during the execution of control
- * methods. The only thing we really need to do here is to
+ * methods. The only thing we really need to do here is to
* notice the beginning of IF, ELSE, and WHILE blocks.
*
****************************************************************************/
@@ -355,7 +370,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
op_class = walk_state->op_info->class;
if (op_class == AML_CLASS_UNKNOWN) {
- ACPI_ERROR((AE_INFO, "Unknown opcode %X",
+ ACPI_ERROR((AE_INFO, "Unknown opcode 0x%X",
op->common.aml_opcode));
return_ACPI_STATUS(AE_NOT_IMPLEMENTED);
}
@@ -418,7 +433,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
if (ACPI_SUCCESS(status)) {
/*
* Dispatch the request to the appropriate interpreter handler
- * routine. There is one routine per opcode "type" based upon the
+ * routine. There is one routine per opcode "type" based upon the
* number of opcode arguments and return type.
*/
status =
@@ -474,7 +489,6 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
break;
case AML_TYPE_METHOD_CALL:
-
/*
* If the method is referenced from within a package
* declaration, it is not a invocation of the method, just
@@ -568,7 +582,6 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
switch (op->common.parent->common.aml_opcode) {
case AML_NAME_OP:
-
/*
* Put the Node on the object stack (Contains the ACPI Name
* of this object)
@@ -679,7 +692,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
default:
ACPI_ERROR((AE_INFO,
- "Unimplemented opcode, class=%X type=%X Opcode=%X Op=%p",
+ "Unimplemented opcode, class=0x%X type=0x%X Opcode=0x%X Op=%p",
op_class, op_type, op->common.aml_opcode,
op));
@@ -692,7 +705,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
* ACPI 2.0 support for 64-bit integers: Truncate numeric
* result value if we are executing from a 32-bit ACPI table
*/
- acpi_ex_truncate_for32bit_table(walk_state->result_obj);
+ (void)acpi_ex_truncate_for32bit_table(walk_state->result_obj);
/*
* Check if we just completed the evaluation of a
@@ -709,7 +722,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state)
walk_state->result_obj = NULL;
}
- cleanup:
+cleanup:
if (walk_state->result_obj) {
diff --git a/drivers/acpi/acpica/dswload.c b/drivers/acpi/acpica/dswload.c
index 3023ceaa8d5..15623da2620 100644
--- a/drivers/acpi/acpica/dswload.c
+++ b/drivers/acpi/acpica/dswload.c
@@ -1,11 +1,11 @@
/******************************************************************************
*
- * Module Name: dswload - Dispatcher namespace load callbacks
+ * Module Name: dswload - Dispatcher first pass namespace load callbacks
*
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -48,10 +48,9 @@
#include "acdispat.h"
#include "acinterp.h"
#include "acnamesp.h"
-#include "acevents.h"
#ifdef ACPI_ASL_COMPILER
-#include <acpi/acdisasm.h>
+#include "acdisasm.h"
#endif
#define _COMPONENT ACPI_DISPATCHER
@@ -74,7 +73,20 @@ acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number)
{
switch (pass_number) {
+ case 0:
+
+ /* Parse only - caller will setup callbacks */
+
+ walk_state->parse_flags = ACPI_PARSE_LOAD_PASS1 |
+ ACPI_PARSE_DELETE_TREE | ACPI_PARSE_DISASSEMBLE;
+ walk_state->descending_callback = NULL;
+ walk_state->ascending_callback = NULL;
+ break;
+
case 1:
+
+ /* Load pass 1 */
+
walk_state->parse_flags = ACPI_PARSE_LOAD_PASS1 |
ACPI_PARSE_DELETE_TREE;
walk_state->descending_callback = acpi_ds_load1_begin_op;
@@ -82,6 +94,9 @@ acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number)
break;
case 2:
+
+ /* Load pass 2 */
+
walk_state->parse_flags = ACPI_PARSE_LOAD_PASS1 |
ACPI_PARSE_DELETE_TREE;
walk_state->descending_callback = acpi_ds_load2_begin_op;
@@ -89,6 +104,9 @@ acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number)
break;
case 3:
+
+ /* Execution pass */
+
#ifndef ACPI_NO_METHOD_EXECUTION
walk_state->parse_flags |= ACPI_PARSE_EXECUTE |
ACPI_PARSE_DELETE_TREE;
@@ -98,6 +116,7 @@ acpi_ds_init_callbacks(struct acpi_walk_state *walk_state, u32 pass_number)
break;
default:
+
return (AE_BAD_PARAMETER);
}
@@ -162,7 +181,6 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state,
switch (walk_state->opcode) {
case AML_SCOPE_OP:
-
/*
* The target name of the Scope() operator must exist at this point so
* that we can actually open the scope to enter new names underneath it.
@@ -179,7 +197,8 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state,
* Target of Scope() not found. Generate an External for it, and
* insert the name into the namespace.
*/
- acpi_dm_add_to_external_list(path, ACPI_TYPE_DEVICE, 0);
+ acpi_dm_add_op_to_external_list(op, path,
+ ACPI_TYPE_DEVICE, 0, 0);
status =
acpi_ns_lookup(walk_state->scope_info, path,
object_type, ACPI_IMODE_LOAD_PASS1,
@@ -210,33 +229,48 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state,
case ACPI_TYPE_INTEGER:
case ACPI_TYPE_STRING:
case ACPI_TYPE_BUFFER:
-
/*
- * These types we will allow, but we will change the type. This
- * enables some existing code of the form:
+ * These types we will allow, but we will change the type.
+ * This enables some existing code of the form:
*
* Name (DEB, 0)
* Scope (DEB) { ... }
*
- * Note: silently change the type here. On the second pass, we will report
- * a warning
+ * Note: silently change the type here. On the second pass,
+ * we will report a warning
*/
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "Type override - [%4.4s] had invalid type (%s) for Scope operator, changed to (Scope)\n",
- path,
+ "Type override - [%4.4s] had invalid type (%s) "
+ "for Scope operator, changed to type ANY\n",
+ acpi_ut_get_node_name(node),
acpi_ut_get_type_name(node->type)));
node->type = ACPI_TYPE_ANY;
walk_state->scope_info->common.value = ACPI_TYPE_ANY;
break;
+ case ACPI_TYPE_METHOD:
+ /*
+ * Allow scope change to root during execution of module-level
+ * code. Root is typed METHOD during this time.
+ */
+ if ((node == acpi_gbl_root_node) &&
+ (walk_state->
+ parse_flags & ACPI_PARSE_MODULE_LEVEL)) {
+ break;
+ }
+
+ /*lint -fallthrough */
+
default:
/* All other types are an error */
ACPI_ERROR((AE_INFO,
- "Invalid type (%s) for target of Scope operator [%4.4s] (Cannot override)",
- acpi_ut_get_type_name(node->type), path));
+ "Invalid type (%s) for target of "
+ "Scope operator [%4.4s] (Cannot override)",
+ acpi_ut_get_type_name(node->type),
+ acpi_ut_get_node_name(node)));
return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
}
@@ -448,7 +482,7 @@ acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state)
status =
acpi_ex_create_region(op->named.data,
op->named.length,
- REGION_DATA_TABLE,
+ ACPI_ADR_SPACE_DATA_TABLE,
walk_state);
if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
@@ -534,670 +568,3 @@ acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state)
return_ACPI_STATUS(status);
}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ds_load2_begin_op
- *
- * PARAMETERS: walk_state - Current state of the parse tree walk
- * out_op - Wher to return op if a new one is created
- *
- * RETURN: Status
- *
- * DESCRIPTION: Descending callback used during the loading of ACPI tables.
- *
- ******************************************************************************/
-
-acpi_status
-acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state,
- union acpi_parse_object **out_op)
-{
- union acpi_parse_object *op;
- struct acpi_namespace_node *node;
- acpi_status status;
- acpi_object_type object_type;
- char *buffer_ptr;
- u32 flags;
-
- ACPI_FUNCTION_TRACE(ds_load2_begin_op);
-
- op = walk_state->op;
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op,
- walk_state));
-
- if (op) {
- if ((walk_state->control_state) &&
- (walk_state->control_state->common.state ==
- ACPI_CONTROL_CONDITIONAL_EXECUTING)) {
-
- /* We are executing a while loop outside of a method */
-
- status = acpi_ds_exec_begin_op(walk_state, out_op);
- return_ACPI_STATUS(status);
- }
-
- /* We only care about Namespace opcodes here */
-
- if ((!(walk_state->op_info->flags & AML_NSOPCODE) &&
- (walk_state->opcode != AML_INT_NAMEPATH_OP)) ||
- (!(walk_state->op_info->flags & AML_NAMED))) {
-#ifdef ACPI_ENABLE_MODULE_LEVEL_CODE
- if ((walk_state->op_info->class == AML_CLASS_EXECUTE) ||
- (walk_state->op_info->class == AML_CLASS_CONTROL)) {
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "Begin/EXEC: %s (fl %8.8X)\n",
- walk_state->op_info->name,
- walk_state->op_info->flags));
-
- /* Executing a type1 or type2 opcode outside of a method */
-
- status =
- acpi_ds_exec_begin_op(walk_state, out_op);
- return_ACPI_STATUS(status);
- }
-#endif
- return_ACPI_STATUS(AE_OK);
- }
-
- /* Get the name we are going to enter or lookup in the namespace */
-
- if (walk_state->opcode == AML_INT_NAMEPATH_OP) {
-
- /* For Namepath op, get the path string */
-
- buffer_ptr = op->common.value.string;
- if (!buffer_ptr) {
-
- /* No name, just exit */
-
- return_ACPI_STATUS(AE_OK);
- }
- } else {
- /* Get name from the op */
-
- buffer_ptr = ACPI_CAST_PTR(char, &op->named.name);
- }
- } else {
- /* Get the namestring from the raw AML */
-
- buffer_ptr =
- acpi_ps_get_next_namestring(&walk_state->parser_state);
- }
-
- /* Map the opcode into an internal object type */
-
- object_type = walk_state->op_info->object_type;
-
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "State=%p Op=%p Type=%X\n", walk_state, op,
- object_type));
-
- switch (walk_state->opcode) {
- case AML_FIELD_OP:
- case AML_BANK_FIELD_OP:
- case AML_INDEX_FIELD_OP:
-
- node = NULL;
- status = AE_OK;
- break;
-
- case AML_INT_NAMEPATH_OP:
- /*
- * The name_path is an object reference to an existing object.
- * Don't enter the name into the namespace, but look it up
- * for use later.
- */
- status =
- acpi_ns_lookup(walk_state->scope_info, buffer_ptr,
- object_type, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT, walk_state, &(node));
- break;
-
- case AML_SCOPE_OP:
- /*
- * The Path is an object reference to an existing object.
- * Don't enter the name into the namespace, but look it up
- * for use later.
- */
- status =
- acpi_ns_lookup(walk_state->scope_info, buffer_ptr,
- object_type, ACPI_IMODE_EXECUTE,
- ACPI_NS_SEARCH_PARENT, walk_state, &(node));
- if (ACPI_FAILURE(status)) {
-#ifdef ACPI_ASL_COMPILER
- if (status == AE_NOT_FOUND) {
- status = AE_OK;
- } else {
- ACPI_ERROR_NAMESPACE(buffer_ptr, status);
- }
-#else
- ACPI_ERROR_NAMESPACE(buffer_ptr, status);
-#endif
- return_ACPI_STATUS(status);
- }
-
- /*
- * We must check to make sure that the target is
- * one of the opcodes that actually opens a scope
- */
- switch (node->type) {
- case ACPI_TYPE_ANY:
- case ACPI_TYPE_LOCAL_SCOPE: /* Scope */
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_POWER:
- case ACPI_TYPE_PROCESSOR:
- case ACPI_TYPE_THERMAL:
-
- /* These are acceptable types */
- break;
-
- case ACPI_TYPE_INTEGER:
- case ACPI_TYPE_STRING:
- case ACPI_TYPE_BUFFER:
-
- /*
- * These types we will allow, but we will change the type. This
- * enables some existing code of the form:
- *
- * Name (DEB, 0)
- * Scope (DEB) { ... }
- */
- ACPI_WARNING((AE_INFO,
- "Type override - [%4.4s] had invalid type (%s) for Scope operator, changed to (Scope)",
- buffer_ptr,
- acpi_ut_get_type_name(node->type)));
-
- node->type = ACPI_TYPE_ANY;
- walk_state->scope_info->common.value = ACPI_TYPE_ANY;
- break;
-
- default:
-
- /* All other types are an error */
-
- ACPI_ERROR((AE_INFO,
- "Invalid type (%s) for target of Scope operator [%4.4s]",
- acpi_ut_get_type_name(node->type),
- buffer_ptr));
-
- return (AE_AML_OPERAND_TYPE);
- }
- break;
-
- default:
-
- /* All other opcodes */
-
- if (op && op->common.node) {
-
- /* This op/node was previously entered into the namespace */
-
- node = op->common.node;
-
- if (acpi_ns_opens_scope(object_type)) {
- status =
- acpi_ds_scope_stack_push(node, object_type,
- walk_state);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
- }
-
- return_ACPI_STATUS(AE_OK);
- }
-
- /*
- * Enter the named type into the internal namespace. We enter the name
- * as we go downward in the parse tree. Any necessary subobjects that
- * involve arguments to the opcode must be created as we go back up the
- * parse tree later.
- *
- * Note: Name may already exist if we are executing a deferred opcode.
- */
- if (walk_state->deferred_node) {
-
- /* This name is already in the namespace, get the node */
-
- node = walk_state->deferred_node;
- status = AE_OK;
- break;
- }
-
- flags = ACPI_NS_NO_UPSEARCH;
- if (walk_state->pass_number == ACPI_IMODE_EXECUTE) {
-
- /* Execution mode, node cannot already exist, node is temporary */
-
- flags |= (ACPI_NS_ERROR_IF_FOUND | ACPI_NS_TEMPORARY);
- }
-
- /* Add new entry or lookup existing entry */
-
- status =
- acpi_ns_lookup(walk_state->scope_info, buffer_ptr,
- object_type, ACPI_IMODE_LOAD_PASS2, flags,
- walk_state, &node);
-
- if (ACPI_SUCCESS(status) && (flags & ACPI_NS_TEMPORARY)) {
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "***New Node [%4.4s] %p is temporary\n",
- acpi_ut_get_node_name(node), node));
- }
- break;
- }
-
- if (ACPI_FAILURE(status)) {
- ACPI_ERROR_NAMESPACE(buffer_ptr, status);
- return_ACPI_STATUS(status);
- }
-
- if (!op) {
-
- /* Create a new op */
-
- op = acpi_ps_alloc_op(walk_state->opcode);
- if (!op) {
- return_ACPI_STATUS(AE_NO_MEMORY);
- }
-
- /* Initialize the new op */
-
- if (node) {
- op->named.name = node->name.integer;
- }
- *out_op = op;
- }
-
- /*
- * Put the Node in the "op" object that the parser uses, so we
- * can get it again quickly when this scope is closed
- */
- op->common.node = node;
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ds_load2_end_op
- *
- * PARAMETERS: walk_state - Current state of the parse tree walk
- *
- * RETURN: Status
- *
- * DESCRIPTION: Ascending callback used during the loading of the namespace,
- * both control methods and everything else.
- *
- ******************************************************************************/
-
-acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
-{
- union acpi_parse_object *op;
- acpi_status status = AE_OK;
- acpi_object_type object_type;
- struct acpi_namespace_node *node;
- union acpi_parse_object *arg;
- struct acpi_namespace_node *new_node;
-#ifndef ACPI_NO_METHOD_EXECUTION
- u32 i;
- u8 region_space;
-#endif
-
- ACPI_FUNCTION_TRACE(ds_load2_end_op);
-
- op = walk_state->op;
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n",
- walk_state->op_info->name, op, walk_state));
-
- /* Check if opcode had an associated namespace object */
-
- if (!(walk_state->op_info->flags & AML_NSOBJECT)) {
-#ifndef ACPI_NO_METHOD_EXECUTION
-#ifdef ACPI_ENABLE_MODULE_LEVEL_CODE
- /* No namespace object. Executable opcode? */
-
- if ((walk_state->op_info->class == AML_CLASS_EXECUTE) ||
- (walk_state->op_info->class == AML_CLASS_CONTROL)) {
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "End/EXEC: %s (fl %8.8X)\n",
- walk_state->op_info->name,
- walk_state->op_info->flags));
-
- /* Executing a type1 or type2 opcode outside of a method */
-
- status = acpi_ds_exec_end_op(walk_state);
- return_ACPI_STATUS(status);
- }
-#endif
-#endif
- return_ACPI_STATUS(AE_OK);
- }
-
- if (op->common.aml_opcode == AML_SCOPE_OP) {
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "Ending scope Op=%p State=%p\n", op,
- walk_state));
- }
-
- object_type = walk_state->op_info->object_type;
-
- /*
- * Get the Node/name from the earlier lookup
- * (It was saved in the *op structure)
- */
- node = op->common.node;
-
- /*
- * Put the Node on the object stack (Contains the ACPI Name of
- * this object)
- */
- walk_state->operands[0] = (void *)node;
- walk_state->num_operands = 1;
-
- /* Pop the scope stack */
-
- if (acpi_ns_opens_scope(object_type) &&
- (op->common.aml_opcode != AML_INT_METHODCALL_OP)) {
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "(%s) Popping scope for Op %p\n",
- acpi_ut_get_type_name(object_type), op));
-
- status = acpi_ds_scope_stack_pop(walk_state);
- if (ACPI_FAILURE(status)) {
- goto cleanup;
- }
- }
-
- /*
- * Named operations are as follows:
- *
- * AML_ALIAS
- * AML_BANKFIELD
- * AML_CREATEBITFIELD
- * AML_CREATEBYTEFIELD
- * AML_CREATEDWORDFIELD
- * AML_CREATEFIELD
- * AML_CREATEQWORDFIELD
- * AML_CREATEWORDFIELD
- * AML_DATA_REGION
- * AML_DEVICE
- * AML_EVENT
- * AML_FIELD
- * AML_INDEXFIELD
- * AML_METHOD
- * AML_METHODCALL
- * AML_MUTEX
- * AML_NAME
- * AML_NAMEDFIELD
- * AML_OPREGION
- * AML_POWERRES
- * AML_PROCESSOR
- * AML_SCOPE
- * AML_THERMALZONE
- */
-
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "Create-Load [%s] State=%p Op=%p NamedObj=%p\n",
- acpi_ps_get_opcode_name(op->common.aml_opcode),
- walk_state, op, node));
-
- /* Decode the opcode */
-
- arg = op->common.value.arg;
-
- switch (walk_state->op_info->type) {
-#ifndef ACPI_NO_METHOD_EXECUTION
-
- case AML_TYPE_CREATE_FIELD:
- /*
- * Create the field object, but the field buffer and index must
- * be evaluated later during the execution phase
- */
- status = acpi_ds_create_buffer_field(op, walk_state);
- break;
-
- case AML_TYPE_NAMED_FIELD:
- /*
- * If we are executing a method, initialize the field
- */
- if (walk_state->method_node) {
- status = acpi_ds_init_field_objects(op, walk_state);
- }
-
- switch (op->common.aml_opcode) {
- case AML_INDEX_FIELD_OP:
-
- status =
- acpi_ds_create_index_field(op,
- (acpi_handle) arg->
- common.node, walk_state);
- break;
-
- case AML_BANK_FIELD_OP:
-
- status =
- acpi_ds_create_bank_field(op, arg->common.node,
- walk_state);
- break;
-
- case AML_FIELD_OP:
-
- status =
- acpi_ds_create_field(op, arg->common.node,
- walk_state);
- break;
-
- default:
- /* All NAMED_FIELD opcodes must be handled above */
- break;
- }
- break;
-
- case AML_TYPE_NAMED_SIMPLE:
-
- status = acpi_ds_create_operands(walk_state, arg);
- if (ACPI_FAILURE(status)) {
- goto cleanup;
- }
-
- switch (op->common.aml_opcode) {
- case AML_PROCESSOR_OP:
-
- status = acpi_ex_create_processor(walk_state);
- break;
-
- case AML_POWER_RES_OP:
-
- status = acpi_ex_create_power_resource(walk_state);
- break;
-
- case AML_MUTEX_OP:
-
- status = acpi_ex_create_mutex(walk_state);
- break;
-
- case AML_EVENT_OP:
-
- status = acpi_ex_create_event(walk_state);
- break;
-
- case AML_ALIAS_OP:
-
- status = acpi_ex_create_alias(walk_state);
- break;
-
- default:
- /* Unknown opcode */
-
- status = AE_OK;
- goto cleanup;
- }
-
- /* Delete operands */
-
- for (i = 1; i < walk_state->num_operands; i++) {
- acpi_ut_remove_reference(walk_state->operands[i]);
- walk_state->operands[i] = NULL;
- }
-
- break;
-#endif /* ACPI_NO_METHOD_EXECUTION */
-
- case AML_TYPE_NAMED_COMPLEX:
-
- switch (op->common.aml_opcode) {
-#ifndef ACPI_NO_METHOD_EXECUTION
- case AML_REGION_OP:
- case AML_DATA_REGION_OP:
-
- if (op->common.aml_opcode == AML_REGION_OP) {
- region_space = (acpi_adr_space_type)
- ((op->common.value.arg)->common.value.
- integer);
- } else {
- region_space = REGION_DATA_TABLE;
- }
-
- /*
- * If we are executing a method, initialize the region
- */
- if (walk_state->method_node) {
- status =
- acpi_ex_create_region(op->named.data,
- op->named.length,
- region_space,
- walk_state);
- if (ACPI_FAILURE(status)) {
- return (status);
- }
- }
-
- /*
- * The op_region is not fully parsed at this time. Only valid
- * argument is the space_id. (We must save the address of the
- * AML of the address and length operands)
- */
-
- /*
- * If we have a valid region, initialize it
- * Namespace is NOT locked at this point.
- */
- status =
- acpi_ev_initialize_region
- (acpi_ns_get_attached_object(node), FALSE);
- if (ACPI_FAILURE(status)) {
- /*
- * If AE_NOT_EXIST is returned, it is not fatal
- * because many regions get created before a handler
- * is installed for said region.
- */
- if (AE_NOT_EXIST == status) {
- status = AE_OK;
- }
- }
- break;
-
- case AML_NAME_OP:
-
- status = acpi_ds_create_node(walk_state, node, op);
- break;
-
- case AML_METHOD_OP:
- /*
- * method_op pkg_length name_string method_flags term_list
- *
- * Note: We must create the method node/object pair as soon as we
- * see the method declaration. This allows later pass1 parsing
- * of invocations of the method (need to know the number of
- * arguments.)
- */
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "LOADING-Method: State=%p Op=%p NamedObj=%p\n",
- walk_state, op, op->named.node));
-
- if (!acpi_ns_get_attached_object(op->named.node)) {
- walk_state->operands[0] =
- ACPI_CAST_PTR(void, op->named.node);
- walk_state->num_operands = 1;
-
- status =
- acpi_ds_create_operands(walk_state,
- op->common.value.
- arg);
- if (ACPI_SUCCESS(status)) {
- status =
- acpi_ex_create_method(op->named.
- data,
- op->named.
- length,
- walk_state);
- }
- walk_state->operands[0] = NULL;
- walk_state->num_operands = 0;
-
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
- }
- break;
-
-#endif /* ACPI_NO_METHOD_EXECUTION */
-
- default:
- /* All NAMED_COMPLEX opcodes must be handled above */
- break;
- }
- break;
-
- case AML_CLASS_INTERNAL:
-
- /* case AML_INT_NAMEPATH_OP: */
- break;
-
- case AML_CLASS_METHOD_CALL:
-
- ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
- "RESOLVING-MethodCall: State=%p Op=%p NamedObj=%p\n",
- walk_state, op, node));
-
- /*
- * Lookup the method name and save the Node
- */
- status =
- acpi_ns_lookup(walk_state->scope_info,
- arg->common.value.string, ACPI_TYPE_ANY,
- ACPI_IMODE_LOAD_PASS2,
- ACPI_NS_SEARCH_PARENT |
- ACPI_NS_DONT_OPEN_SCOPE, walk_state,
- &(new_node));
- if (ACPI_SUCCESS(status)) {
- /*
- * Make sure that what we found is indeed a method
- * We didn't search for a method on purpose, to see if the name
- * would resolve
- */
- if (new_node->type != ACPI_TYPE_METHOD) {
- status = AE_AML_OPERAND_TYPE;
- }
-
- /* We could put the returned object (Node) on the object stack for
- * later, but for now, we will put it in the "op" object that the
- * parser uses, so we can get it again at the end of this scope
- */
- op->common.node = new_node;
- } else {
- ACPI_ERROR_NAMESPACE(arg->common.value.string, status);
- }
- break;
-
- default:
- break;
- }
-
- cleanup:
-
- /* Remove the Node pushed at the very beginning */
-
- walk_state->operands[0] = NULL;
- walk_state->num_operands = 0;
- return_ACPI_STATUS(status);
-}
diff --git a/drivers/acpi/acpica/dswload2.c b/drivers/acpi/acpica/dswload2.c
new file mode 100644
index 00000000000..2ac28d29730
--- /dev/null
+++ b/drivers/acpi/acpica/dswload2.c
@@ -0,0 +1,738 @@
+/******************************************************************************
+ *
+ * Module Name: dswload2 - Dispatcher second pass namespace load callbacks
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#include <acpi/acpi.h>
+#include "accommon.h"
+#include "acparser.h"
+#include "amlcode.h"
+#include "acdispat.h"
+#include "acinterp.h"
+#include "acnamesp.h"
+#include "acevents.h"
+
+#define _COMPONENT ACPI_DISPATCHER
+ACPI_MODULE_NAME("dswload2")
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_load2_begin_op
+ *
+ * PARAMETERS: walk_state - Current state of the parse tree walk
+ * out_op - Wher to return op if a new one is created
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Descending callback used during the loading of ACPI tables.
+ *
+ ******************************************************************************/
+acpi_status
+acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state,
+ union acpi_parse_object **out_op)
+{
+ union acpi_parse_object *op;
+ struct acpi_namespace_node *node;
+ acpi_status status;
+ acpi_object_type object_type;
+ char *buffer_ptr;
+ u32 flags;
+
+ ACPI_FUNCTION_TRACE(ds_load2_begin_op);
+
+ op = walk_state->op;
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op,
+ walk_state));
+
+ if (op) {
+ if ((walk_state->control_state) &&
+ (walk_state->control_state->common.state ==
+ ACPI_CONTROL_CONDITIONAL_EXECUTING)) {
+
+ /* We are executing a while loop outside of a method */
+
+ status = acpi_ds_exec_begin_op(walk_state, out_op);
+ return_ACPI_STATUS(status);
+ }
+
+ /* We only care about Namespace opcodes here */
+
+ if ((!(walk_state->op_info->flags & AML_NSOPCODE) &&
+ (walk_state->opcode != AML_INT_NAMEPATH_OP)) ||
+ (!(walk_state->op_info->flags & AML_NAMED))) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /* Get the name we are going to enter or lookup in the namespace */
+
+ if (walk_state->opcode == AML_INT_NAMEPATH_OP) {
+
+ /* For Namepath op, get the path string */
+
+ buffer_ptr = op->common.value.string;
+ if (!buffer_ptr) {
+
+ /* No name, just exit */
+
+ return_ACPI_STATUS(AE_OK);
+ }
+ } else {
+ /* Get name from the op */
+
+ buffer_ptr = ACPI_CAST_PTR(char, &op->named.name);
+ }
+ } else {
+ /* Get the namestring from the raw AML */
+
+ buffer_ptr =
+ acpi_ps_get_next_namestring(&walk_state->parser_state);
+ }
+
+ /* Map the opcode into an internal object type */
+
+ object_type = walk_state->op_info->object_type;
+
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "State=%p Op=%p Type=%X\n", walk_state, op,
+ object_type));
+
+ switch (walk_state->opcode) {
+ case AML_FIELD_OP:
+ case AML_BANK_FIELD_OP:
+ case AML_INDEX_FIELD_OP:
+
+ node = NULL;
+ status = AE_OK;
+ break;
+
+ case AML_INT_NAMEPATH_OP:
+ /*
+ * The name_path is an object reference to an existing object.
+ * Don't enter the name into the namespace, but look it up
+ * for use later.
+ */
+ status =
+ acpi_ns_lookup(walk_state->scope_info, buffer_ptr,
+ object_type, ACPI_IMODE_EXECUTE,
+ ACPI_NS_SEARCH_PARENT, walk_state, &(node));
+ break;
+
+ case AML_SCOPE_OP:
+
+ /* Special case for Scope(\) -> refers to the Root node */
+
+ if (op && (op->named.node == acpi_gbl_root_node)) {
+ node = op->named.node;
+
+ status =
+ acpi_ds_scope_stack_push(node, object_type,
+ walk_state);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+ } else {
+ /*
+ * The Path is an object reference to an existing object.
+ * Don't enter the name into the namespace, but look it up
+ * for use later.
+ */
+ status =
+ acpi_ns_lookup(walk_state->scope_info, buffer_ptr,
+ object_type, ACPI_IMODE_EXECUTE,
+ ACPI_NS_SEARCH_PARENT, walk_state,
+ &(node));
+ if (ACPI_FAILURE(status)) {
+#ifdef ACPI_ASL_COMPILER
+ if (status == AE_NOT_FOUND) {
+ status = AE_OK;
+ } else {
+ ACPI_ERROR_NAMESPACE(buffer_ptr,
+ status);
+ }
+#else
+ ACPI_ERROR_NAMESPACE(buffer_ptr, status);
+#endif
+ return_ACPI_STATUS(status);
+ }
+ }
+
+ /*
+ * We must check to make sure that the target is
+ * one of the opcodes that actually opens a scope
+ */
+ switch (node->type) {
+ case ACPI_TYPE_ANY:
+ case ACPI_TYPE_LOCAL_SCOPE: /* Scope */
+ case ACPI_TYPE_DEVICE:
+ case ACPI_TYPE_POWER:
+ case ACPI_TYPE_PROCESSOR:
+ case ACPI_TYPE_THERMAL:
+
+ /* These are acceptable types */
+ break;
+
+ case ACPI_TYPE_INTEGER:
+ case ACPI_TYPE_STRING:
+ case ACPI_TYPE_BUFFER:
+
+ /*
+ * These types we will allow, but we will change the type.
+ * This enables some existing code of the form:
+ *
+ * Name (DEB, 0)
+ * Scope (DEB) { ... }
+ */
+ ACPI_WARNING((AE_INFO,
+ "Type override - [%4.4s] had invalid type (%s) "
+ "for Scope operator, changed to type ANY",
+ acpi_ut_get_node_name(node),
+ acpi_ut_get_type_name(node->type)));
+
+ node->type = ACPI_TYPE_ANY;
+ walk_state->scope_info->common.value = ACPI_TYPE_ANY;
+ break;
+
+ case ACPI_TYPE_METHOD:
+
+ /*
+ * Allow scope change to root during execution of module-level
+ * code. Root is typed METHOD during this time.
+ */
+ if ((node == acpi_gbl_root_node) &&
+ (walk_state->
+ parse_flags & ACPI_PARSE_MODULE_LEVEL)) {
+ break;
+ }
+
+ /*lint -fallthrough */
+
+ default:
+
+ /* All other types are an error */
+
+ ACPI_ERROR((AE_INFO,
+ "Invalid type (%s) for target of "
+ "Scope operator [%4.4s] (Cannot override)",
+ acpi_ut_get_type_name(node->type),
+ acpi_ut_get_node_name(node)));
+
+ return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
+ }
+ break;
+
+ default:
+
+ /* All other opcodes */
+
+ if (op && op->common.node) {
+
+ /* This op/node was previously entered into the namespace */
+
+ node = op->common.node;
+
+ if (acpi_ns_opens_scope(object_type)) {
+ status =
+ acpi_ds_scope_stack_push(node, object_type,
+ walk_state);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+ }
+
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /*
+ * Enter the named type into the internal namespace. We enter the name
+ * as we go downward in the parse tree. Any necessary subobjects that
+ * involve arguments to the opcode must be created as we go back up the
+ * parse tree later.
+ *
+ * Note: Name may already exist if we are executing a deferred opcode.
+ */
+ if (walk_state->deferred_node) {
+
+ /* This name is already in the namespace, get the node */
+
+ node = walk_state->deferred_node;
+ status = AE_OK;
+ break;
+ }
+
+ flags = ACPI_NS_NO_UPSEARCH;
+ if (walk_state->pass_number == ACPI_IMODE_EXECUTE) {
+
+ /* Execution mode, node cannot already exist, node is temporary */
+
+ flags |= ACPI_NS_ERROR_IF_FOUND;
+
+ if (!
+ (walk_state->
+ parse_flags & ACPI_PARSE_MODULE_LEVEL)) {
+ flags |= ACPI_NS_TEMPORARY;
+ }
+ }
+
+ /* Add new entry or lookup existing entry */
+
+ status =
+ acpi_ns_lookup(walk_state->scope_info, buffer_ptr,
+ object_type, ACPI_IMODE_LOAD_PASS2, flags,
+ walk_state, &node);
+
+ if (ACPI_SUCCESS(status) && (flags & ACPI_NS_TEMPORARY)) {
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "***New Node [%4.4s] %p is temporary\n",
+ acpi_ut_get_node_name(node), node));
+ }
+ break;
+ }
+
+ if (ACPI_FAILURE(status)) {
+ ACPI_ERROR_NAMESPACE(buffer_ptr, status);
+ return_ACPI_STATUS(status);
+ }
+
+ if (!op) {
+
+ /* Create a new op */
+
+ op = acpi_ps_alloc_op(walk_state->opcode);
+ if (!op) {
+ return_ACPI_STATUS(AE_NO_MEMORY);
+ }
+
+ /* Initialize the new op */
+
+ if (node) {
+ op->named.name = node->name.integer;
+ }
+ *out_op = op;
+ }
+
+ /*
+ * Put the Node in the "op" object that the parser uses, so we
+ * can get it again quickly when this scope is closed
+ */
+ op->common.node = node;
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ds_load2_end_op
+ *
+ * PARAMETERS: walk_state - Current state of the parse tree walk
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Ascending callback used during the loading of the namespace,
+ * both control methods and everything else.
+ *
+ ******************************************************************************/
+
+acpi_status acpi_ds_load2_end_op(struct acpi_walk_state *walk_state)
+{
+ union acpi_parse_object *op;
+ acpi_status status = AE_OK;
+ acpi_object_type object_type;
+ struct acpi_namespace_node *node;
+ union acpi_parse_object *arg;
+ struct acpi_namespace_node *new_node;
+#ifndef ACPI_NO_METHOD_EXECUTION
+ u32 i;
+ u8 region_space;
+#endif
+
+ ACPI_FUNCTION_TRACE(ds_load2_end_op);
+
+ op = walk_state->op;
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Opcode [%s] Op %p State %p\n",
+ walk_state->op_info->name, op, walk_state));
+
+ /* Check if opcode had an associated namespace object */
+
+ if (!(walk_state->op_info->flags & AML_NSOBJECT)) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ if (op->common.aml_opcode == AML_SCOPE_OP) {
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "Ending scope Op=%p State=%p\n", op,
+ walk_state));
+ }
+
+ object_type = walk_state->op_info->object_type;
+
+ /*
+ * Get the Node/name from the earlier lookup
+ * (It was saved in the *op structure)
+ */
+ node = op->common.node;
+
+ /*
+ * Put the Node on the object stack (Contains the ACPI Name of
+ * this object)
+ */
+ walk_state->operands[0] = (void *)node;
+ walk_state->num_operands = 1;
+
+ /* Pop the scope stack */
+
+ if (acpi_ns_opens_scope(object_type) &&
+ (op->common.aml_opcode != AML_INT_METHODCALL_OP)) {
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "(%s) Popping scope for Op %p\n",
+ acpi_ut_get_type_name(object_type), op));
+
+ status = acpi_ds_scope_stack_pop(walk_state);
+ if (ACPI_FAILURE(status)) {
+ goto cleanup;
+ }
+ }
+
+ /*
+ * Named operations are as follows:
+ *
+ * AML_ALIAS
+ * AML_BANKFIELD
+ * AML_CREATEBITFIELD
+ * AML_CREATEBYTEFIELD
+ * AML_CREATEDWORDFIELD
+ * AML_CREATEFIELD
+ * AML_CREATEQWORDFIELD
+ * AML_CREATEWORDFIELD
+ * AML_DATA_REGION
+ * AML_DEVICE
+ * AML_EVENT
+ * AML_FIELD
+ * AML_INDEXFIELD
+ * AML_METHOD
+ * AML_METHODCALL
+ * AML_MUTEX
+ * AML_NAME
+ * AML_NAMEDFIELD
+ * AML_OPREGION
+ * AML_POWERRES
+ * AML_PROCESSOR
+ * AML_SCOPE
+ * AML_THERMALZONE
+ */
+
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "Create-Load [%s] State=%p Op=%p NamedObj=%p\n",
+ acpi_ps_get_opcode_name(op->common.aml_opcode),
+ walk_state, op, node));
+
+ /* Decode the opcode */
+
+ arg = op->common.value.arg;
+
+ switch (walk_state->op_info->type) {
+#ifndef ACPI_NO_METHOD_EXECUTION
+
+ case AML_TYPE_CREATE_FIELD:
+ /*
+ * Create the field object, but the field buffer and index must
+ * be evaluated later during the execution phase
+ */
+ status = acpi_ds_create_buffer_field(op, walk_state);
+ break;
+
+ case AML_TYPE_NAMED_FIELD:
+ /*
+ * If we are executing a method, initialize the field
+ */
+ if (walk_state->method_node) {
+ status = acpi_ds_init_field_objects(op, walk_state);
+ }
+
+ switch (op->common.aml_opcode) {
+ case AML_INDEX_FIELD_OP:
+
+ status =
+ acpi_ds_create_index_field(op,
+ (acpi_handle) arg->
+ common.node, walk_state);
+ break;
+
+ case AML_BANK_FIELD_OP:
+
+ status =
+ acpi_ds_create_bank_field(op, arg->common.node,
+ walk_state);
+ break;
+
+ case AML_FIELD_OP:
+
+ status =
+ acpi_ds_create_field(op, arg->common.node,
+ walk_state);
+ break;
+
+ default:
+
+ /* All NAMED_FIELD opcodes must be handled above */
+ break;
+ }
+ break;
+
+ case AML_TYPE_NAMED_SIMPLE:
+
+ status = acpi_ds_create_operands(walk_state, arg);
+ if (ACPI_FAILURE(status)) {
+ goto cleanup;
+ }
+
+ switch (op->common.aml_opcode) {
+ case AML_PROCESSOR_OP:
+
+ status = acpi_ex_create_processor(walk_state);
+ break;
+
+ case AML_POWER_RES_OP:
+
+ status = acpi_ex_create_power_resource(walk_state);
+ break;
+
+ case AML_MUTEX_OP:
+
+ status = acpi_ex_create_mutex(walk_state);
+ break;
+
+ case AML_EVENT_OP:
+
+ status = acpi_ex_create_event(walk_state);
+ break;
+
+ case AML_ALIAS_OP:
+
+ status = acpi_ex_create_alias(walk_state);
+ break;
+
+ default:
+
+ /* Unknown opcode */
+
+ status = AE_OK;
+ goto cleanup;
+ }
+
+ /* Delete operands */
+
+ for (i = 1; i < walk_state->num_operands; i++) {
+ acpi_ut_remove_reference(walk_state->operands[i]);
+ walk_state->operands[i] = NULL;
+ }
+
+ break;
+#endif /* ACPI_NO_METHOD_EXECUTION */
+
+ case AML_TYPE_NAMED_COMPLEX:
+
+ switch (op->common.aml_opcode) {
+#ifndef ACPI_NO_METHOD_EXECUTION
+ case AML_REGION_OP:
+ case AML_DATA_REGION_OP:
+
+ if (op->common.aml_opcode == AML_REGION_OP) {
+ region_space = (acpi_adr_space_type)
+ ((op->common.value.arg)->common.value.
+ integer);
+ } else {
+ region_space = ACPI_ADR_SPACE_DATA_TABLE;
+ }
+
+ /*
+ * The op_region is not fully parsed at this time. The only valid
+ * argument is the space_id. (We must save the address of the
+ * AML of the address and length operands)
+ *
+ * If we have a valid region, initialize it. The namespace is
+ * unlocked at this point.
+ *
+ * Need to unlock interpreter if it is locked (if we are running
+ * a control method), in order to allow _REG methods to be run
+ * during acpi_ev_initialize_region.
+ */
+ if (walk_state->method_node) {
+ /*
+ * Executing a method: initialize the region and unlock
+ * the interpreter
+ */
+ status =
+ acpi_ex_create_region(op->named.data,
+ op->named.length,
+ region_space,
+ walk_state);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ acpi_ex_exit_interpreter();
+ }
+
+ status =
+ acpi_ev_initialize_region
+ (acpi_ns_get_attached_object(node), FALSE);
+ if (walk_state->method_node) {
+ acpi_ex_enter_interpreter();
+ }
+
+ if (ACPI_FAILURE(status)) {
+ /*
+ * If AE_NOT_EXIST is returned, it is not fatal
+ * because many regions get created before a handler
+ * is installed for said region.
+ */
+ if (AE_NOT_EXIST == status) {
+ status = AE_OK;
+ }
+ }
+ break;
+
+ case AML_NAME_OP:
+
+ status = acpi_ds_create_node(walk_state, node, op);
+ break;
+
+ case AML_METHOD_OP:
+ /*
+ * method_op pkg_length name_string method_flags term_list
+ *
+ * Note: We must create the method node/object pair as soon as we
+ * see the method declaration. This allows later pass1 parsing
+ * of invocations of the method (need to know the number of
+ * arguments.)
+ */
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "LOADING-Method: State=%p Op=%p NamedObj=%p\n",
+ walk_state, op, op->named.node));
+
+ if (!acpi_ns_get_attached_object(op->named.node)) {
+ walk_state->operands[0] =
+ ACPI_CAST_PTR(void, op->named.node);
+ walk_state->num_operands = 1;
+
+ status =
+ acpi_ds_create_operands(walk_state,
+ op->common.value.
+ arg);
+ if (ACPI_SUCCESS(status)) {
+ status =
+ acpi_ex_create_method(op->named.
+ data,
+ op->named.
+ length,
+ walk_state);
+ }
+ walk_state->operands[0] = NULL;
+ walk_state->num_operands = 0;
+
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+ }
+ break;
+
+#endif /* ACPI_NO_METHOD_EXECUTION */
+
+ default:
+
+ /* All NAMED_COMPLEX opcodes must be handled above */
+ break;
+ }
+ break;
+
+ case AML_CLASS_INTERNAL:
+
+ /* case AML_INT_NAMEPATH_OP: */
+ break;
+
+ case AML_CLASS_METHOD_CALL:
+
+ ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH,
+ "RESOLVING-MethodCall: State=%p Op=%p NamedObj=%p\n",
+ walk_state, op, node));
+
+ /*
+ * Lookup the method name and save the Node
+ */
+ status =
+ acpi_ns_lookup(walk_state->scope_info,
+ arg->common.value.string, ACPI_TYPE_ANY,
+ ACPI_IMODE_LOAD_PASS2,
+ ACPI_NS_SEARCH_PARENT |
+ ACPI_NS_DONT_OPEN_SCOPE, walk_state,
+ &(new_node));
+ if (ACPI_SUCCESS(status)) {
+ /*
+ * Make sure that what we found is indeed a method
+ * We didn't search for a method on purpose, to see if the name
+ * would resolve
+ */
+ if (new_node->type != ACPI_TYPE_METHOD) {
+ status = AE_AML_OPERAND_TYPE;
+ }
+
+ /* We could put the returned object (Node) on the object stack for
+ * later, but for now, we will put it in the "op" object that the
+ * parser uses, so we can get it again at the end of this scope
+ */
+ op->common.node = new_node;
+ } else {
+ ACPI_ERROR_NAMESPACE(arg->common.value.string, status);
+ }
+ break;
+
+ default:
+
+ break;
+ }
+
+cleanup:
+
+ /* Remove the Node pushed at the very beginning */
+
+ walk_state->operands[0] = NULL;
+ walk_state->num_operands = 0;
+ return_ACPI_STATUS(status);
+}
diff --git a/drivers/acpi/acpica/dswscope.c b/drivers/acpi/acpica/dswscope.c
index 908645e72f0..9d6e2c1de1f 100644
--- a/drivers/acpi/acpica/dswscope.c
+++ b/drivers/acpi/acpica/dswscope.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -85,8 +85,8 @@ void acpi_ds_scope_stack_clear(struct acpi_walk_state *walk_state)
*
* FUNCTION: acpi_ds_scope_stack_push
*
- * PARAMETERS: Node - Name to be made current
- * Type - Type of frame being pushed
+ * PARAMETERS: node - Name to be made current
+ * type - Type of frame being pushed
* walk_state - Current state
*
* RETURN: Status
diff --git a/drivers/acpi/acpica/dswstate.c b/drivers/acpi/acpica/dswstate.c
index 40f92bf7dce..24f7d5ea678 100644
--- a/drivers/acpi/acpica/dswstate.c
+++ b/drivers/acpi/acpica/dswstate.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -51,14 +51,15 @@
ACPI_MODULE_NAME("dswstate")
/* Local prototypes */
-static acpi_status acpi_ds_result_stack_push(struct acpi_walk_state *ws);
-static acpi_status acpi_ds_result_stack_pop(struct acpi_walk_state *ws);
+static acpi_status
+acpi_ds_result_stack_push(struct acpi_walk_state *walk_state);
+static acpi_status acpi_ds_result_stack_pop(struct acpi_walk_state *walk_state);
/*******************************************************************************
*
* FUNCTION: acpi_ds_result_pop
*
- * PARAMETERS: Object - Where to return the popped object
+ * PARAMETERS: object - Where to return the popped object
* walk_state - Current Walk state
*
* RETURN: Status
@@ -102,7 +103,7 @@ acpi_ds_result_pop(union acpi_operand_object **object,
/* Return object of the top element and clean that top element result stack */
walk_state->result_count--;
- index = walk_state->result_count % ACPI_RESULTS_FRAME_OBJ_NUM;
+ index = (u32)walk_state->result_count % ACPI_RESULTS_FRAME_OBJ_NUM;
*object = state->results.obj_desc[index];
if (!*object) {
@@ -132,7 +133,7 @@ acpi_ds_result_pop(union acpi_operand_object **object,
*
* FUNCTION: acpi_ds_result_push
*
- * PARAMETERS: Object - Where to return the popped object
+ * PARAMETERS: object - Where to return the popped object
* walk_state - Current Walk state
*
* RETURN: Status
@@ -179,14 +180,14 @@ acpi_ds_result_push(union acpi_operand_object * object,
if (!object) {
ACPI_ERROR((AE_INFO,
- "Null Object! Obj=%p State=%p Num=%X",
+ "Null Object! Obj=%p State=%p Num=%u",
object, walk_state, walk_state->result_count));
return (AE_BAD_PARAMETER);
}
/* Assign the address of object to the top free element of result stack */
- index = walk_state->result_count % ACPI_RESULTS_FRAME_OBJ_NUM;
+ index = (u32)walk_state->result_count % ACPI_RESULTS_FRAME_OBJ_NUM;
state->results.obj_desc[index] = object;
walk_state->result_count++;
@@ -223,7 +224,7 @@ static acpi_status acpi_ds_result_stack_push(struct acpi_walk_state *walk_state)
if (((u32) walk_state->result_size + ACPI_RESULTS_FRAME_OBJ_NUM) >
ACPI_RESULTS_OBJ_NUM_MAX) {
- ACPI_ERROR((AE_INFO, "Result stack overflow: State=%p Num=%X",
+ ACPI_ERROR((AE_INFO, "Result stack overflow: State=%p Num=%u",
walk_state, walk_state->result_size));
return (AE_STACK_OVERFLOW);
}
@@ -296,7 +297,7 @@ static acpi_status acpi_ds_result_stack_pop(struct acpi_walk_state *walk_state)
*
* FUNCTION: acpi_ds_obj_stack_push
*
- * PARAMETERS: Object - Object to push
+ * PARAMETERS: object - Object to push
* walk_state - Current Walk state
*
* RETURN: Status
@@ -314,7 +315,7 @@ acpi_ds_obj_stack_push(void *object, struct acpi_walk_state * walk_state)
if (walk_state->num_operands >= ACPI_OBJ_NUM_OPERANDS) {
ACPI_ERROR((AE_INFO,
- "Object stack overflow! Obj=%p State=%p #Ops=%X",
+ "Object stack overflow! Obj=%p State=%p #Ops=%u",
object, walk_state, walk_state->num_operands));
return (AE_STACK_OVERFLOW);
}
@@ -347,7 +348,7 @@ acpi_ds_obj_stack_push(void *object, struct acpi_walk_state * walk_state)
*
* RETURN: Status
*
- * DESCRIPTION: Pop this walk's object stack. Objects on the stack are NOT
+ * DESCRIPTION: Pop this walk's object stack. Objects on the stack are NOT
* deleted by this routine.
*
******************************************************************************/
@@ -365,7 +366,7 @@ acpi_ds_obj_stack_pop(u32 pop_count, struct acpi_walk_state * walk_state)
if (walk_state->num_operands == 0) {
ACPI_ERROR((AE_INFO,
- "Object stack underflow! Count=%X State=%p #Ops=%X",
+ "Object stack underflow! Count=%X State=%p #Ops=%u",
pop_count, walk_state,
walk_state->num_operands));
return (AE_STACK_UNDERFLOW);
@@ -377,7 +378,7 @@ acpi_ds_obj_stack_pop(u32 pop_count, struct acpi_walk_state * walk_state)
walk_state->operands[walk_state->num_operands] = NULL;
}
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Count=%X State=%p #Ops=%X\n",
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Count=%X State=%p #Ops=%u\n",
pop_count, walk_state, walk_state->num_operands));
return (AE_OK);
@@ -433,7 +434,7 @@ acpi_ds_obj_stack_pop_and_delete(u32 pop_count,
*
* FUNCTION: acpi_ds_get_current_walk_state
*
- * PARAMETERS: Thread - Get current active state for this Thread
+ * PARAMETERS: thread - Get current active state for this Thread
*
* RETURN: Pointer to the current walk state
*
@@ -462,7 +463,7 @@ struct acpi_walk_state *acpi_ds_get_current_walk_state(struct acpi_thread_state
* FUNCTION: acpi_ds_push_walk_state
*
* PARAMETERS: walk_state - State to push
- * Thread - Thread state object
+ * thread - Thread state object
*
* RETURN: None
*
@@ -486,12 +487,12 @@ acpi_ds_push_walk_state(struct acpi_walk_state *walk_state,
*
* FUNCTION: acpi_ds_pop_walk_state
*
- * PARAMETERS: Thread - Current thread state
+ * PARAMETERS: thread - Current thread state
*
* RETURN: A walk_state object popped from the thread's stack
*
* DESCRIPTION: Remove and return the walkstate object that is at the head of
- * the walk stack for the given walk list. NULL indicates that
+ * the walk stack for the given walk list. NULL indicates that
* the list is empty.
*
******************************************************************************/
@@ -525,20 +526,23 @@ struct acpi_walk_state *acpi_ds_pop_walk_state(struct acpi_thread_state *thread)
* FUNCTION: acpi_ds_create_walk_state
*
* PARAMETERS: owner_id - ID for object creation
- * Origin - Starting point for this walk
+ * origin - Starting point for this walk
* method_desc - Method object
- * Thread - Current thread state
+ * thread - Current thread state
*
* RETURN: Pointer to the new walk state.
*
- * DESCRIPTION: Allocate and initialize a new walk state. The current walk
+ * DESCRIPTION: Allocate and initialize a new walk state. The current walk
* state is set to this new state.
*
******************************************************************************/
-struct acpi_walk_state *acpi_ds_create_walk_state(acpi_owner_id owner_id, union acpi_parse_object
- *origin, union acpi_operand_object
- *method_desc, struct acpi_thread_state
+struct acpi_walk_state *acpi_ds_create_walk_state(acpi_owner_id owner_id,
+ union acpi_parse_object
+ *origin,
+ union acpi_operand_object
+ *method_desc,
+ struct acpi_thread_state
*thread)
{
struct acpi_walk_state *walk_state;
@@ -578,11 +582,11 @@ struct acpi_walk_state *acpi_ds_create_walk_state(acpi_owner_id owner_id, union
* FUNCTION: acpi_ds_init_aml_walk
*
* PARAMETERS: walk_state - New state to be initialized
- * Op - Current parse op
+ * op - Current parse op
* method_node - Control method NS node, if any
* aml_start - Start of AML
* aml_length - Length of AML
- * Info - Method info block (params, etc.)
+ * info - Method info block (params, etc.)
* pass_number - 1, 2, or 3
*
* RETURN: Status
@@ -653,7 +657,7 @@ acpi_ds_init_aml_walk(struct acpi_walk_state *walk_state,
/*
* Setup the current scope.
* Find a Named Op that has a namespace node associated with it.
- * search upwards from this Op. Current scope is the first
+ * search upwards from this Op. Current scope is the first
* Op with a namespace node.
*/
extra_op = parser_state->start_op;
@@ -704,13 +708,13 @@ void acpi_ds_delete_walk_state(struct acpi_walk_state *walk_state)
ACPI_FUNCTION_TRACE_PTR(ds_delete_walk_state, walk_state);
if (!walk_state) {
- return;
+ return_VOID;
}
if (walk_state->descriptor_type != ACPI_DESC_TYPE_WALK) {
ACPI_ERROR((AE_INFO, "%p is not a valid walk state",
walk_state));
- return;
+ return_VOID;
}
/* There should not be any open scopes */
diff --git a/drivers/acpi/acpica/evevent.c b/drivers/acpi/acpica/evevent.c
index 803edd9e3f6..c7bffff9ed3 100644
--- a/drivers/acpi/acpica/evevent.c
+++ b/drivers/acpi/acpica/evevent.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -47,7 +47,7 @@
#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evevent")
-
+#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */
static acpi_status acpi_ev_fixed_event_initialize(void);
@@ -71,6 +71,12 @@ acpi_status acpi_ev_initialize_events(void)
ACPI_FUNCTION_TRACE(ev_initialize_events);
+ /* If Hardware Reduced flag is set, there are no fixed events */
+
+ if (acpi_gbl_reduced_hardware) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
/*
* Initialize the Fixed and General Purpose Events. This is done prior to
* enabling SCIs to prevent interrupts from occurring before the handlers
@@ -95,48 +101,6 @@ acpi_status acpi_ev_initialize_events(void)
/*******************************************************************************
*
- * FUNCTION: acpi_ev_install_fadt_gpes
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Completes initialization of the FADT-defined GPE blocks
- * (0 and 1). This causes the _PRW methods to be run, so the HW
- * must be fully initialized at this point, including global lock
- * support.
- *
- ******************************************************************************/
-
-acpi_status acpi_ev_install_fadt_gpes(void)
-{
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(ev_install_fadt_gpes);
-
- /* Namespace must be locked */
-
- status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE(status)) {
- return (status);
- }
-
- /* FADT GPE Block 0 */
-
- (void)acpi_ev_initialize_gpe_block(acpi_gbl_fadt_gpe_device,
- acpi_gbl_gpe_fadt_blocks[0]);
-
- /* FADT GPE Block 1 */
-
- (void)acpi_ev_initialize_gpe_block(acpi_gbl_fadt_gpe_device,
- acpi_gbl_gpe_fadt_blocks[1]);
-
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS(AE_OK);
-}
-
-/*******************************************************************************
- *
* FUNCTION: acpi_ev_install_xrupt_handlers
*
* PARAMETERS: None
@@ -153,6 +117,12 @@ acpi_status acpi_ev_install_xrupt_handlers(void)
ACPI_FUNCTION_TRACE(ev_install_xrupt_handlers);
+ /* If Hardware Reduced flag is set, there is no ACPI h/w */
+
+ if (acpi_gbl_reduced_hardware) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
/* Install the SCI handler */
status = acpi_ev_install_sci_handler();
@@ -183,7 +153,7 @@ acpi_status acpi_ev_install_xrupt_handlers(void)
*
* RETURN: Status
*
- * DESCRIPTION: Install the fixed event handlers and enable the fixed events.
+ * DESCRIPTION: Install the fixed event handlers and disable all fixed events.
*
******************************************************************************/
@@ -200,12 +170,13 @@ static acpi_status acpi_ev_fixed_event_initialize(void)
acpi_gbl_fixed_event_handlers[i].handler = NULL;
acpi_gbl_fixed_event_handlers[i].context = NULL;
- /* Enable the fixed event */
+ /* Disable the fixed event */
if (acpi_gbl_fixed_event_info[i].enable_register_id != 0xFF) {
status =
- acpi_set_register(acpi_gbl_fixed_event_info[i].
- enable_register_id, 0);
+ acpi_write_bit_register(acpi_gbl_fixed_event_info
+ [i].enable_register_id,
+ ACPI_DISABLE_EVENT);
if (ACPI_FAILURE(status)) {
return (status);
}
@@ -258,9 +229,17 @@ u32 acpi_ev_fixed_event_detect(void)
status_bit_mask)
&& (fixed_enable & acpi_gbl_fixed_event_info[i].
enable_bit_mask)) {
+ /*
+ * Found an active (signalled) event. Invoke global event
+ * handler if present.
+ */
+ acpi_fixed_event_count[i]++;
+ if (acpi_gbl_global_event_handler) {
+ acpi_gbl_global_event_handler
+ (ACPI_EVENT_TYPE_FIXED, NULL, i,
+ acpi_gbl_global_event_handler_context);
+ }
- /* Found an active (signalled) event */
- acpi_os_fixed_event_count(i);
int_status |= acpi_ev_fixed_event_dispatch(i);
}
}
@@ -272,12 +251,14 @@ u32 acpi_ev_fixed_event_detect(void)
*
* FUNCTION: acpi_ev_fixed_event_dispatch
*
- * PARAMETERS: Event - Event type
+ * PARAMETERS: event - Event type
*
* RETURN: INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
*
* DESCRIPTION: Clears the status bit for the requested event, calls the
* handler that previously registered for the event.
+ * NOTE: If there is no handler for the event, the event is
+ * disabled to prevent further interrupts.
*
******************************************************************************/
@@ -288,20 +269,21 @@ static u32 acpi_ev_fixed_event_dispatch(u32 event)
/* Clear the status bit */
- (void)acpi_set_register(acpi_gbl_fixed_event_info[event].
- status_register_id, 1);
+ (void)acpi_write_bit_register(acpi_gbl_fixed_event_info[event].
+ status_register_id, ACPI_CLEAR_STATUS);
/*
- * Make sure we've got a handler. If not, report an error. The event is
- * disabled to prevent further interrupts.
+ * Make sure that a handler exists. If not, report an error
+ * and disable the event to prevent further interrupts.
*/
- if (NULL == acpi_gbl_fixed_event_handlers[event].handler) {
- (void)acpi_set_register(acpi_gbl_fixed_event_info[event].
- enable_register_id, 0);
+ if (!acpi_gbl_fixed_event_handlers[event].handler) {
+ (void)acpi_write_bit_register(acpi_gbl_fixed_event_info[event].
+ enable_register_id,
+ ACPI_DISABLE_EVENT);
ACPI_ERROR((AE_INFO,
- "No installed handler for fixed event [%08X]",
- event));
+ "No installed handler for fixed event - %s (%u), disabling",
+ acpi_ut_get_event_name(event), event));
return (ACPI_INTERRUPT_NOT_HANDLED);
}
@@ -311,3 +293,5 @@ static u32 acpi_ev_fixed_event_dispatch(u32 event)
return ((acpi_gbl_fixed_event_handlers[event].
handler) (acpi_gbl_fixed_event_handlers[event].context));
}
+
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evglock.c b/drivers/acpi/acpica/evglock.c
new file mode 100644
index 00000000000..3393a73ca0d
--- /dev/null
+++ b/drivers/acpi/acpica/evglock.c
@@ -0,0 +1,344 @@
+/******************************************************************************
+ *
+ * Module Name: evglock - Global Lock support
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#include <acpi/acpi.h>
+#include "accommon.h"
+#include "acevents.h"
+#include "acinterp.h"
+
+#define _COMPONENT ACPI_EVENTS
+ACPI_MODULE_NAME("evglock")
+#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
+/* Local prototypes */
+static u32 acpi_ev_global_lock_handler(void *context);
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_init_global_lock_handler
+ *
+ * PARAMETERS: None
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Install a handler for the global lock release event
+ *
+ ******************************************************************************/
+
+acpi_status acpi_ev_init_global_lock_handler(void)
+{
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE(ev_init_global_lock_handler);
+
+ /* If Hardware Reduced flag is set, there is no global lock */
+
+ if (acpi_gbl_reduced_hardware) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /* Attempt installation of the global lock handler */
+
+ status = acpi_install_fixed_event_handler(ACPI_EVENT_GLOBAL,
+ acpi_ev_global_lock_handler,
+ NULL);
+
+ /*
+ * If the global lock does not exist on this platform, the attempt to
+ * enable GBL_STATUS will fail (the GBL_ENABLE bit will not stick).
+ * Map to AE_OK, but mark global lock as not present. Any attempt to
+ * actually use the global lock will be flagged with an error.
+ */
+ acpi_gbl_global_lock_present = FALSE;
+ if (status == AE_NO_HARDWARE_RESPONSE) {
+ ACPI_ERROR((AE_INFO,
+ "No response from Global Lock hardware, disabling lock"));
+
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ status = acpi_os_create_lock(&acpi_gbl_global_lock_pending_lock);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ acpi_gbl_global_lock_pending = FALSE;
+ acpi_gbl_global_lock_present = TRUE;
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_remove_global_lock_handler
+ *
+ * PARAMETERS: None
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Remove the handler for the Global Lock
+ *
+ ******************************************************************************/
+
+acpi_status acpi_ev_remove_global_lock_handler(void)
+{
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE(ev_remove_global_lock_handler);
+
+ acpi_gbl_global_lock_present = FALSE;
+ status = acpi_remove_fixed_event_handler(ACPI_EVENT_GLOBAL,
+ acpi_ev_global_lock_handler);
+
+ acpi_os_delete_lock(acpi_gbl_global_lock_pending_lock);
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_global_lock_handler
+ *
+ * PARAMETERS: context - From thread interface, not used
+ *
+ * RETURN: ACPI_INTERRUPT_HANDLED
+ *
+ * DESCRIPTION: Invoked directly from the SCI handler when a global lock
+ * release interrupt occurs. If there is actually a pending
+ * request for the lock, signal the waiting thread.
+ *
+ ******************************************************************************/
+
+static u32 acpi_ev_global_lock_handler(void *context)
+{
+ acpi_status status;
+ acpi_cpu_flags flags;
+
+ flags = acpi_os_acquire_lock(acpi_gbl_global_lock_pending_lock);
+
+ /*
+ * If a request for the global lock is not actually pending,
+ * we are done. This handles "spurious" global lock interrupts
+ * which are possible (and have been seen) with bad BIOSs.
+ */
+ if (!acpi_gbl_global_lock_pending) {
+ goto cleanup_and_exit;
+ }
+
+ /*
+ * Send a unit to the global lock semaphore. The actual acquisition
+ * of the global lock will be performed by the waiting thread.
+ */
+ status = acpi_os_signal_semaphore(acpi_gbl_global_lock_semaphore, 1);
+ if (ACPI_FAILURE(status)) {
+ ACPI_ERROR((AE_INFO, "Could not signal Global Lock semaphore"));
+ }
+
+ acpi_gbl_global_lock_pending = FALSE;
+
+cleanup_and_exit:
+
+ acpi_os_release_lock(acpi_gbl_global_lock_pending_lock, flags);
+ return (ACPI_INTERRUPT_HANDLED);
+}
+
+/******************************************************************************
+ *
+ * FUNCTION: acpi_ev_acquire_global_lock
+ *
+ * PARAMETERS: timeout - Max time to wait for the lock, in millisec.
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Attempt to gain ownership of the Global Lock.
+ *
+ * MUTEX: Interpreter must be locked
+ *
+ * Note: The original implementation allowed multiple threads to "acquire" the
+ * Global Lock, and the OS would hold the lock until the last thread had
+ * released it. However, this could potentially starve the BIOS out of the
+ * lock, especially in the case where there is a tight handshake between the
+ * Embedded Controller driver and the BIOS. Therefore, this implementation
+ * allows only one thread to acquire the HW Global Lock at a time, and makes
+ * the global lock appear as a standard mutex on the OS side.
+ *
+ *****************************************************************************/
+
+acpi_status acpi_ev_acquire_global_lock(u16 timeout)
+{
+ acpi_cpu_flags flags;
+ acpi_status status;
+ u8 acquired = FALSE;
+
+ ACPI_FUNCTION_TRACE(ev_acquire_global_lock);
+
+ /*
+ * Only one thread can acquire the GL at a time, the global_lock_mutex
+ * enforces this. This interface releases the interpreter if we must wait.
+ */
+ status =
+ acpi_ex_system_wait_mutex(acpi_gbl_global_lock_mutex->mutex.
+ os_mutex, timeout);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ /*
+ * Update the global lock handle and check for wraparound. The handle is
+ * only used for the external global lock interfaces, but it is updated
+ * here to properly handle the case where a single thread may acquire the
+ * lock via both the AML and the acpi_acquire_global_lock interfaces. The
+ * handle is therefore updated on the first acquire from a given thread
+ * regardless of where the acquisition request originated.
+ */
+ acpi_gbl_global_lock_handle++;
+ if (acpi_gbl_global_lock_handle == 0) {
+ acpi_gbl_global_lock_handle = 1;
+ }
+
+ /*
+ * Make sure that a global lock actually exists. If not, just
+ * treat the lock as a standard mutex.
+ */
+ if (!acpi_gbl_global_lock_present) {
+ acpi_gbl_global_lock_acquired = TRUE;
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ flags = acpi_os_acquire_lock(acpi_gbl_global_lock_pending_lock);
+
+ do {
+
+ /* Attempt to acquire the actual hardware lock */
+
+ ACPI_ACQUIRE_GLOBAL_LOCK(acpi_gbl_FACS, acquired);
+ if (acquired) {
+ acpi_gbl_global_lock_acquired = TRUE;
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
+ "Acquired hardware Global Lock\n"));
+ break;
+ }
+
+ /*
+ * Did not get the lock. The pending bit was set above, and
+ * we must now wait until we receive the global lock
+ * released interrupt.
+ */
+ acpi_gbl_global_lock_pending = TRUE;
+ acpi_os_release_lock(acpi_gbl_global_lock_pending_lock, flags);
+
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
+ "Waiting for hardware Global Lock\n"));
+
+ /*
+ * Wait for handshake with the global lock interrupt handler.
+ * This interface releases the interpreter if we must wait.
+ */
+ status =
+ acpi_ex_system_wait_semaphore
+ (acpi_gbl_global_lock_semaphore, ACPI_WAIT_FOREVER);
+
+ flags = acpi_os_acquire_lock(acpi_gbl_global_lock_pending_lock);
+
+ } while (ACPI_SUCCESS(status));
+
+ acpi_gbl_global_lock_pending = FALSE;
+ acpi_os_release_lock(acpi_gbl_global_lock_pending_lock, flags);
+
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_release_global_lock
+ *
+ * PARAMETERS: None
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Releases ownership of the Global Lock.
+ *
+ ******************************************************************************/
+
+acpi_status acpi_ev_release_global_lock(void)
+{
+ u8 pending = FALSE;
+ acpi_status status = AE_OK;
+
+ ACPI_FUNCTION_TRACE(ev_release_global_lock);
+
+ /* Lock must be already acquired */
+
+ if (!acpi_gbl_global_lock_acquired) {
+ ACPI_WARNING((AE_INFO,
+ "Cannot release the ACPI Global Lock, it has not been acquired"));
+ return_ACPI_STATUS(AE_NOT_ACQUIRED);
+ }
+
+ if (acpi_gbl_global_lock_present) {
+
+ /* Allow any thread to release the lock */
+
+ ACPI_RELEASE_GLOBAL_LOCK(acpi_gbl_FACS, pending);
+
+ /*
+ * If the pending bit was set, we must write GBL_RLS to the control
+ * register
+ */
+ if (pending) {
+ status =
+ acpi_write_bit_register
+ (ACPI_BITREG_GLOBAL_LOCK_RELEASE,
+ ACPI_ENABLE_EVENT);
+ }
+
+ ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
+ "Released hardware Global Lock\n"));
+ }
+
+ acpi_gbl_global_lock_acquired = FALSE;
+
+ /* Release the local GL mutex */
+
+ acpi_os_release_mutex(acpi_gbl_global_lock_mutex->mutex.os_mutex);
+ return_ACPI_STATUS(status);
+}
+
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evgpe.c b/drivers/acpi/acpica/evgpe.c
index f345ced3647..48f70013b48 100644
--- a/drivers/acpi/acpica/evgpe.c
+++ b/drivers/acpi/acpica/evgpe.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -48,114 +48,49 @@
#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evgpe")
-
+#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */
static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context);
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_set_gpe_type
- *
- * PARAMETERS: gpe_event_info - GPE to set
- * Type - New type
- *
- * RETURN: Status
- *
- * DESCRIPTION: Sets the new type for the GPE (wake, run, or wake/run)
- *
- ******************************************************************************/
-
-acpi_status
-acpi_ev_set_gpe_type(struct acpi_gpe_event_info *gpe_event_info, u8 type)
-{
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(ev_set_gpe_type);
-
- /* Validate type and update register enable masks */
-
- switch (type) {
- case ACPI_GPE_TYPE_WAKE:
- case ACPI_GPE_TYPE_RUNTIME:
- case ACPI_GPE_TYPE_WAKE_RUN:
- break;
-
- default:
- return_ACPI_STATUS(AE_BAD_PARAMETER);
- }
-
- /* Disable the GPE if currently enabled */
-
- status = acpi_ev_disable_gpe(gpe_event_info);
-
- /* Type was validated above */
-
- gpe_event_info->flags &= ~ACPI_GPE_TYPE_MASK; /* Clear type bits */
- gpe_event_info->flags |= type; /* Insert type */
- return_ACPI_STATUS(status);
-}
+static void ACPI_SYSTEM_XFACE acpi_ev_asynch_enable_gpe(void *context);
/*******************************************************************************
*
- * FUNCTION: acpi_ev_update_gpe_enable_masks
+ * FUNCTION: acpi_ev_update_gpe_enable_mask
*
* PARAMETERS: gpe_event_info - GPE to update
- * Type - What to do: ACPI_GPE_DISABLE or
- * ACPI_GPE_ENABLE
*
* RETURN: Status
*
- * DESCRIPTION: Updates GPE register enable masks based on the GPE type
+ * DESCRIPTION: Updates GPE register enable mask based upon whether there are
+ * runtime references to this GPE
*
******************************************************************************/
acpi_status
-acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info,
- u8 type)
+acpi_ev_update_gpe_enable_mask(struct acpi_gpe_event_info *gpe_event_info)
{
struct acpi_gpe_register_info *gpe_register_info;
- u8 register_bit;
+ u32 register_bit;
- ACPI_FUNCTION_TRACE(ev_update_gpe_enable_masks);
+ ACPI_FUNCTION_TRACE(ev_update_gpe_enable_mask);
gpe_register_info = gpe_event_info->register_info;
if (!gpe_register_info) {
return_ACPI_STATUS(AE_NOT_EXIST);
}
- register_bit = (u8)
- (1 <<
- (gpe_event_info->gpe_number - gpe_register_info->base_gpe_number));
-
- /* 1) Disable case. Simply clear all enable bits */
- if (type == ACPI_GPE_DISABLE) {
- ACPI_CLEAR_BIT(gpe_register_info->enable_for_wake,
- register_bit);
- ACPI_CLEAR_BIT(gpe_register_info->enable_for_run, register_bit);
- return_ACPI_STATUS(AE_OK);
- }
+ register_bit = acpi_hw_get_gpe_register_bit(gpe_event_info);
- /* 2) Enable case. Set/Clear the appropriate enable bits */
+ /* Clear the run bit up front */
- switch (gpe_event_info->flags & ACPI_GPE_TYPE_MASK) {
- case ACPI_GPE_TYPE_WAKE:
- ACPI_SET_BIT(gpe_register_info->enable_for_wake, register_bit);
- ACPI_CLEAR_BIT(gpe_register_info->enable_for_run, register_bit);
- break;
+ ACPI_CLEAR_BIT(gpe_register_info->enable_for_run, register_bit);
- case ACPI_GPE_TYPE_RUNTIME:
- ACPI_CLEAR_BIT(gpe_register_info->enable_for_wake,
- register_bit);
- ACPI_SET_BIT(gpe_register_info->enable_for_run, register_bit);
- break;
-
- case ACPI_GPE_TYPE_WAKE_RUN:
- ACPI_SET_BIT(gpe_register_info->enable_for_wake, register_bit);
- ACPI_SET_BIT(gpe_register_info->enable_for_run, register_bit);
- break;
+ /* Set the mask bit only if there are references to this GPE */
- default:
- return_ACPI_STATUS(AE_BAD_PARAMETER);
+ if (gpe_event_info->runtime_count) {
+ ACPI_SET_BIT(gpe_register_info->enable_for_run,
+ (u8)register_bit);
}
return_ACPI_STATUS(AE_OK);
@@ -165,133 +100,167 @@ acpi_ev_update_gpe_enable_masks(struct acpi_gpe_event_info *gpe_event_info,
*
* FUNCTION: acpi_ev_enable_gpe
*
- * PARAMETERS: gpe_event_info - GPE to enable
- * write_to_hardware - Enable now, or just mark data structs
- * (WAKE GPEs should be deferred)
+ * PARAMETERS: gpe_event_info - GPE to enable
*
* RETURN: Status
*
- * DESCRIPTION: Enable a GPE based on the GPE type
+ * DESCRIPTION: Clear a GPE of stale events and enable it.
*
******************************************************************************/
-
-acpi_status
-acpi_ev_enable_gpe(struct acpi_gpe_event_info *gpe_event_info,
- u8 write_to_hardware)
+acpi_status acpi_ev_enable_gpe(struct acpi_gpe_event_info *gpe_event_info)
{
acpi_status status;
ACPI_FUNCTION_TRACE(ev_enable_gpe);
- /* Make sure HW enable masks are updated */
+ /*
+ * We will only allow a GPE to be enabled if it has either an associated
+ * method (_Lxx/_Exx) or a handler, or is using the implicit notify
+ * feature. Otherwise, the GPE will be immediately disabled by
+ * acpi_ev_gpe_dispatch the first time it fires.
+ */
+ if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
+ ACPI_GPE_DISPATCH_NONE) {
+ return_ACPI_STATUS(AE_NO_HANDLER);
+ }
- status =
- acpi_ev_update_gpe_enable_masks(gpe_event_info, ACPI_GPE_ENABLE);
+ /* Clear the GPE (of stale events) */
+ status = acpi_hw_clear_gpe(gpe_event_info);
if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
}
- /* Mark wake-enabled or HW enable, or both */
+ /* Enable the requested GPE */
- switch (gpe_event_info->flags & ACPI_GPE_TYPE_MASK) {
- case ACPI_GPE_TYPE_WAKE:
-
- ACPI_SET_BIT(gpe_event_info->flags, ACPI_GPE_WAKE_ENABLED);
- break;
-
- case ACPI_GPE_TYPE_WAKE_RUN:
-
- ACPI_SET_BIT(gpe_event_info->flags, ACPI_GPE_WAKE_ENABLED);
+ status = acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_ENABLE);
+ return_ACPI_STATUS(status);
+}
- /*lint -fallthrough */
- case ACPI_GPE_TYPE_RUNTIME:
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_add_gpe_reference
+ *
+ * PARAMETERS: gpe_event_info - Add a reference to this GPE
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Add a reference to a GPE. On the first reference, the GPE is
+ * hardware-enabled.
+ *
+ ******************************************************************************/
- ACPI_SET_BIT(gpe_event_info->flags, ACPI_GPE_RUN_ENABLED);
+acpi_status
+acpi_ev_add_gpe_reference(struct acpi_gpe_event_info *gpe_event_info)
+{
+ acpi_status status = AE_OK;
- if (write_to_hardware) {
+ ACPI_FUNCTION_TRACE(ev_add_gpe_reference);
- /* Clear the GPE (of stale events), then enable it */
+ if (gpe_event_info->runtime_count == ACPI_UINT8_MAX) {
+ return_ACPI_STATUS(AE_LIMIT);
+ }
- status = acpi_hw_clear_gpe(gpe_event_info);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
+ gpe_event_info->runtime_count++;
+ if (gpe_event_info->runtime_count == 1) {
- /* Enable the requested runtime GPE */
+ /* Enable on first reference */
- status = acpi_hw_write_gpe_enable_reg(gpe_event_info);
+ status = acpi_ev_update_gpe_enable_mask(gpe_event_info);
+ if (ACPI_SUCCESS(status)) {
+ status = acpi_ev_enable_gpe(gpe_event_info);
}
- break;
- default:
- return_ACPI_STATUS(AE_BAD_PARAMETER);
+ if (ACPI_FAILURE(status)) {
+ gpe_event_info->runtime_count--;
+ }
}
- return_ACPI_STATUS(AE_OK);
+ return_ACPI_STATUS(status);
}
/*******************************************************************************
*
- * FUNCTION: acpi_ev_disable_gpe
+ * FUNCTION: acpi_ev_remove_gpe_reference
*
- * PARAMETERS: gpe_event_info - GPE to disable
+ * PARAMETERS: gpe_event_info - Remove a reference to this GPE
*
* RETURN: Status
*
- * DESCRIPTION: Disable a GPE based on the GPE type
+ * DESCRIPTION: Remove a reference to a GPE. When the last reference is
+ * removed, the GPE is hardware-disabled.
*
******************************************************************************/
-acpi_status acpi_ev_disable_gpe(struct acpi_gpe_event_info *gpe_event_info)
+acpi_status
+acpi_ev_remove_gpe_reference(struct acpi_gpe_event_info *gpe_event_info)
{
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(ev_disable_gpe);
+ acpi_status status = AE_OK;
- /* Make sure HW enable masks are updated */
+ ACPI_FUNCTION_TRACE(ev_remove_gpe_reference);
- status =
- acpi_ev_update_gpe_enable_masks(gpe_event_info, ACPI_GPE_DISABLE);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
+ if (!gpe_event_info->runtime_count) {
+ return_ACPI_STATUS(AE_LIMIT);
}
- /* Clear the appropriate enabled flags for this GPE */
-
- switch (gpe_event_info->flags & ACPI_GPE_TYPE_MASK) {
- case ACPI_GPE_TYPE_WAKE:
- ACPI_CLEAR_BIT(gpe_event_info->flags, ACPI_GPE_WAKE_ENABLED);
- break;
+ gpe_event_info->runtime_count--;
+ if (!gpe_event_info->runtime_count) {
- case ACPI_GPE_TYPE_WAKE_RUN:
- ACPI_CLEAR_BIT(gpe_event_info->flags, ACPI_GPE_WAKE_ENABLED);
+ /* Disable on last reference */
- /* fallthrough */
+ status = acpi_ev_update_gpe_enable_mask(gpe_event_info);
+ if (ACPI_SUCCESS(status)) {
+ status =
+ acpi_hw_low_set_gpe(gpe_event_info,
+ ACPI_GPE_DISABLE);
+ }
- case ACPI_GPE_TYPE_RUNTIME:
+ if (ACPI_FAILURE(status)) {
+ gpe_event_info->runtime_count++;
+ }
+ }
- /* Disable the requested runtime GPE */
+ return_ACPI_STATUS(status);
+}
- ACPI_CLEAR_BIT(gpe_event_info->flags, ACPI_GPE_RUN_ENABLED);
- break;
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_low_get_gpe_info
+ *
+ * PARAMETERS: gpe_number - Raw GPE number
+ * gpe_block - A GPE info block
+ *
+ * RETURN: A GPE event_info struct. NULL if not a valid GPE (The gpe_number
+ * is not within the specified GPE block)
+ *
+ * DESCRIPTION: Returns the event_info struct associated with this GPE. This is
+ * the low-level implementation of ev_get_gpe_event_info.
+ *
+ ******************************************************************************/
- default:
- break;
- }
+struct acpi_gpe_event_info *acpi_ev_low_get_gpe_info(u32 gpe_number,
+ struct acpi_gpe_block_info
+ *gpe_block)
+{
+ u32 gpe_index;
/*
- * Even if we don't know the GPE type, make sure that we always
- * disable it. low_disable_gpe will just clear the enable bit for this
- * GPE and write it. It will not write out the current GPE enable mask,
- * since this may inadvertently enable GPEs too early, if a rogue GPE has
- * come in during ACPICA initialization - possibly as a result of AML or
- * other code that has enabled the GPE.
+ * Validate that the gpe_number is within the specified gpe_block.
+ * (Two steps)
*/
- status = acpi_hw_low_disable_gpe(gpe_event_info);
- return_ACPI_STATUS(status);
+ if (!gpe_block || (gpe_number < gpe_block->block_base_number)) {
+ return (NULL);
+ }
+
+ gpe_index = gpe_number - gpe_block->block_base_number;
+ if (gpe_index >= gpe_block->gpe_count) {
+ return (NULL);
+ }
+
+ return (&gpe_block->event_info[gpe_index]);
}
+
/*******************************************************************************
*
* FUNCTION: acpi_ev_get_gpe_event_info
@@ -313,29 +282,23 @@ struct acpi_gpe_event_info *acpi_ev_get_gpe_event_info(acpi_handle gpe_device,
u32 gpe_number)
{
union acpi_operand_object *obj_desc;
- struct acpi_gpe_block_info *gpe_block;
+ struct acpi_gpe_event_info *gpe_info;
u32 i;
ACPI_FUNCTION_ENTRY();
- /* A NULL gpe_block means use the FADT-defined GPE block(s) */
+ /* A NULL gpe_device means use the FADT-defined GPE block(s) */
if (!gpe_device) {
/* Examine GPE Block 0 and 1 (These blocks are permanent) */
for (i = 0; i < ACPI_MAX_GPE_BLOCKS; i++) {
- gpe_block = acpi_gbl_gpe_fadt_blocks[i];
- if (gpe_block) {
- if ((gpe_number >= gpe_block->block_base_number)
- && (gpe_number <
- gpe_block->block_base_number +
- (gpe_block->register_count * 8))) {
- return (&gpe_block->
- event_info[gpe_number -
- gpe_block->
- block_base_number]);
- }
+ gpe_info = acpi_ev_low_get_gpe_info(gpe_number,
+ acpi_gbl_gpe_fadt_blocks
+ [i]);
+ if (gpe_info) {
+ return (gpe_info);
}
}
@@ -346,22 +309,15 @@ struct acpi_gpe_event_info *acpi_ev_get_gpe_event_info(acpi_handle gpe_device,
/* A Non-NULL gpe_device means this is a GPE Block Device */
- obj_desc = acpi_ns_get_attached_object((struct acpi_namespace_node *)
+ obj_desc =
+ acpi_ns_get_attached_object((struct acpi_namespace_node *)
gpe_device);
if (!obj_desc || !obj_desc->device.gpe_block) {
return (NULL);
}
- gpe_block = obj_desc->device.gpe_block;
-
- if ((gpe_number >= gpe_block->block_base_number) &&
- (gpe_number <
- gpe_block->block_base_number + (gpe_block->register_count * 8))) {
- return (&gpe_block->
- event_info[gpe_number - gpe_block->block_base_number]);
- }
-
- return (NULL);
+ return (acpi_ev_low_get_gpe_info
+ (gpe_number, obj_desc->device.gpe_block));
}
/*******************************************************************************
@@ -420,11 +376,32 @@ u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info * gpe_xrupt_list)
gpe_register_info = &gpe_block->register_info[i];
+ /*
+ * Optimization: If there are no GPEs enabled within this
+ * register, we can safely ignore the entire register.
+ */
+ if (!(gpe_register_info->enable_for_run |
+ gpe_register_info->enable_for_wake)) {
+ ACPI_DEBUG_PRINT((ACPI_DB_INTERRUPTS,
+ "Ignore disabled registers for GPE %02X-%02X: "
+ "RunEnable=%02X, WakeEnable=%02X\n",
+ gpe_register_info->
+ base_gpe_number,
+ gpe_register_info->
+ base_gpe_number +
+ (ACPI_GPE_REGISTER_WIDTH - 1),
+ gpe_register_info->
+ enable_for_run,
+ gpe_register_info->
+ enable_for_wake));
+ continue;
+ }
+
/* Read the Status Register */
status =
- acpi_read(&status_reg,
- &gpe_register_info->status_address);
+ acpi_hw_read(&status_reg,
+ &gpe_register_info->status_address);
if (ACPI_FAILURE(status)) {
goto unlock_and_exit;
}
@@ -432,16 +409,21 @@ u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info * gpe_xrupt_list)
/* Read the Enable Register */
status =
- acpi_read(&enable_reg,
- &gpe_register_info->enable_address);
+ acpi_hw_read(&enable_reg,
+ &gpe_register_info->enable_address);
if (ACPI_FAILURE(status)) {
goto unlock_and_exit;
}
ACPI_DEBUG_PRINT((ACPI_DB_INTERRUPTS,
- "Read GPE Register at GPE%X: Status=%02X, Enable=%02X\n",
+ "Read registers for GPE %02X-%02X: Status=%02X, Enable=%02X, "
+ "RunEnable=%02X, WakeEnable=%02X\n",
gpe_register_info->base_gpe_number,
- status_reg, enable_reg));
+ gpe_register_info->base_gpe_number +
+ (ACPI_GPE_REGISTER_WIDTH - 1),
+ status_reg, enable_reg,
+ gpe_register_info->enable_for_run,
+ gpe_register_info->enable_for_wake));
/* Check if there is anything active at all in this register */
@@ -465,7 +447,9 @@ u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info * gpe_xrupt_list)
* or method.
*/
int_status |=
- acpi_ev_gpe_dispatch(&gpe_block->
+ acpi_ev_gpe_dispatch(gpe_block->
+ node,
+ &gpe_block->
event_info[((acpi_size) i * ACPI_GPE_REGISTER_WIDTH) + j], j + gpe_register_info->base_gpe_number);
}
}
@@ -474,7 +458,7 @@ u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info * gpe_xrupt_list)
gpe_block = gpe_block->next;
}
- unlock_and_exit:
+unlock_and_exit:
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
return (int_status);
@@ -495,19 +479,29 @@ u32 acpi_ev_gpe_detect(struct acpi_gpe_xrupt_info * gpe_xrupt_list)
* an interrupt handler.
*
******************************************************************************/
-static void acpi_ev_asynch_enable_gpe(void *context);
static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context)
{
- struct acpi_gpe_event_info *gpe_event_info = (void *)context;
+ struct acpi_gpe_event_info *gpe_event_info = context;
acpi_status status;
- struct acpi_gpe_event_info local_gpe_event_info;
+ struct acpi_gpe_event_info *local_gpe_event_info;
struct acpi_evaluate_info *info;
+ struct acpi_gpe_notify_info *notify;
ACPI_FUNCTION_TRACE(ev_asynch_execute_gpe_method);
+ /* Allocate a local GPE block */
+
+ local_gpe_event_info =
+ ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_gpe_event_info));
+ if (!local_gpe_event_info) {
+ ACPI_EXCEPTION((AE_INFO, AE_NO_MEMORY, "while handling a GPE"));
+ return_VOID;
+ }
+
status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
if (ACPI_FAILURE(status)) {
+ ACPI_FREE(local_gpe_event_info);
return_VOID;
}
@@ -515,31 +509,50 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context)
if (!acpi_ev_valid_gpe_event(gpe_event_info)) {
status = acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+ ACPI_FREE(local_gpe_event_info);
return_VOID;
}
- /* Set the GPE flags for return to enabled state */
-
- (void)acpi_ev_enable_gpe(gpe_event_info, FALSE);
-
/*
* Take a snapshot of the GPE info for this level - we copy the info to
* prevent a race condition with remove_handler/remove_block.
*/
- ACPI_MEMCPY(&local_gpe_event_info, gpe_event_info,
+ ACPI_MEMCPY(local_gpe_event_info, gpe_event_info,
sizeof(struct acpi_gpe_event_info));
status = acpi_ut_release_mutex(ACPI_MTX_EVENTS);
if (ACPI_FAILURE(status)) {
+ ACPI_FREE(local_gpe_event_info);
return_VOID;
}
- /*
- * Must check for control method type dispatch one more time to avoid a
- * race with ev_gpe_install_handler
- */
- if ((local_gpe_event_info.flags & ACPI_GPE_DISPATCH_MASK) ==
- ACPI_GPE_DISPATCH_METHOD) {
+ /* Do the correct dispatch - normal method or implicit notify */
+
+ switch (local_gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) {
+ case ACPI_GPE_DISPATCH_NOTIFY:
+ /*
+ * Implicit notify.
+ * Dispatch a DEVICE_WAKE notify to the appropriate handler.
+ * NOTE: the request is queued for execution after this method
+ * completes. The notify handlers are NOT invoked synchronously
+ * from this thread -- because handlers may in turn run other
+ * control methods.
+ *
+ * June 2012: Expand implicit notify mechanism to support
+ * notifies on multiple device objects.
+ */
+ notify = local_gpe_event_info->dispatch.notify_list;
+ while (ACPI_SUCCESS(status) && notify) {
+ status =
+ acpi_ev_queue_notify_request(notify->device_node,
+ ACPI_NOTIFY_DEVICE_WAKE);
+
+ notify = notify->next;
+ }
+
+ break;
+
+ case ACPI_GPE_DISPATCH_METHOD:
/* Allocate the evaluation information block */
@@ -548,11 +561,11 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context)
status = AE_NO_MEMORY;
} else {
/*
- * Invoke the GPE Method (_Lxx, _Exx) i.e., evaluate the _Lxx/_Exx
- * control method that corresponds to this GPE
+ * Invoke the GPE Method (_Lxx, _Exx) i.e., evaluate the
+ * _Lxx/_Exx control method that corresponds to this GPE
*/
info->prefix_node =
- local_gpe_event_info.dispatch.method_node;
+ local_gpe_event_info->dispatch.method_node;
info->flags = ACPI_IGNORE_RETURN_VALUE;
status = acpi_ns_evaluate(info);
@@ -563,42 +576,98 @@ static void ACPI_SYSTEM_XFACE acpi_ev_asynch_execute_gpe_method(void *context)
ACPI_EXCEPTION((AE_INFO, status,
"while evaluating GPE method [%4.4s]",
acpi_ut_get_node_name
- (local_gpe_event_info.dispatch.
+ (local_gpe_event_info->dispatch.
method_node)));
}
+ break;
+
+ default:
+
+ return_VOID; /* Should never happen */
}
+
/* Defer enabling of GPE until all notify handlers are done */
- acpi_os_execute(OSL_NOTIFY_HANDLER, acpi_ev_asynch_enable_gpe,
- gpe_event_info);
+
+ status = acpi_os_execute(OSL_NOTIFY_HANDLER,
+ acpi_ev_asynch_enable_gpe,
+ local_gpe_event_info);
+ if (ACPI_FAILURE(status)) {
+ ACPI_FREE(local_gpe_event_info);
+ }
return_VOID;
}
-static void acpi_ev_asynch_enable_gpe(void *context)
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_asynch_enable_gpe
+ *
+ * PARAMETERS: Context (gpe_event_info) - Info for this GPE
+ * Callback from acpi_os_execute
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Asynchronous clear/enable for GPE. This allows the GPE to
+ * complete (i.e., finish execution of Notify)
+ *
+ ******************************************************************************/
+
+static void ACPI_SYSTEM_XFACE acpi_ev_asynch_enable_gpe(void *context)
{
struct acpi_gpe_event_info *gpe_event_info = context;
+
+ (void)acpi_ev_finish_gpe(gpe_event_info);
+
+ ACPI_FREE(gpe_event_info);
+ return;
+}
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_finish_gpe
+ *
+ * PARAMETERS: gpe_event_info - Info for this GPE
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Clear/Enable a GPE. Common code that is used after execution
+ * of a GPE method or a synchronous or asynchronous GPE handler.
+ *
+ ******************************************************************************/
+
+acpi_status acpi_ev_finish_gpe(struct acpi_gpe_event_info *gpe_event_info)
+{
acpi_status status;
+
if ((gpe_event_info->flags & ACPI_GPE_XRUPT_TYPE_MASK) ==
ACPI_GPE_LEVEL_TRIGGERED) {
/*
- * GPE is level-triggered, we clear the GPE status bit after handling
- * the event.
+ * GPE is level-triggered, we clear the GPE status bit after
+ * handling the event.
*/
status = acpi_hw_clear_gpe(gpe_event_info);
if (ACPI_FAILURE(status)) {
- return_VOID;
+ return (status);
}
}
- /* Enable this GPE */
- (void)acpi_hw_write_gpe_enable_reg(gpe_event_info);
- return_VOID;
+ /*
+ * Enable this GPE, conditionally. This means that the GPE will
+ * only be physically enabled if the enable_for_run bit is set
+ * in the event_info.
+ */
+ (void)acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_CONDITIONAL_ENABLE);
+ return (AE_OK);
}
+
/*******************************************************************************
*
* FUNCTION: acpi_ev_gpe_dispatch
*
- * PARAMETERS: gpe_event_info - Info for this GPE
+ * PARAMETERS: gpe_device - Device node. NULL for GPE0/GPE1
+ * gpe_event_info - Info for this GPE
* gpe_number - Number relative to the parent GPE block
*
* RETURN: INTERRUPT_HANDLED or INTERRUPT_NOT_HANDLED
@@ -611,13 +680,22 @@ static void acpi_ev_asynch_enable_gpe(void *context)
******************************************************************************/
u32
-acpi_ev_gpe_dispatch(struct acpi_gpe_event_info *gpe_event_info, u32 gpe_number)
+acpi_ev_gpe_dispatch(struct acpi_namespace_node *gpe_device,
+ struct acpi_gpe_event_info *gpe_event_info, u32 gpe_number)
{
acpi_status status;
+ u32 return_value;
ACPI_FUNCTION_TRACE(ev_gpe_dispatch);
- acpi_os_gpe_count(gpe_number);
+ /* Invoke global event handler if present */
+
+ acpi_gpe_count++;
+ if (acpi_gbl_global_event_handler) {
+ acpi_gbl_global_event_handler(ACPI_EVENT_TYPE_GPE, gpe_device,
+ gpe_number,
+ acpi_gbl_global_event_handler_context);
+ }
/*
* If edge-triggered, clear the GPE status bit now. Note that
@@ -628,60 +706,56 @@ acpi_ev_gpe_dispatch(struct acpi_gpe_event_info *gpe_event_info, u32 gpe_number)
status = acpi_hw_clear_gpe(gpe_event_info);
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status,
- "Unable to clear GPE[%2X]",
+ "Unable to clear GPE %02X",
gpe_number));
return_UINT32(ACPI_INTERRUPT_NOT_HANDLED);
}
}
/*
- * Dispatch the GPE to either an installed handler, or the control method
- * associated with this GPE (_Lxx or _Exx). If a handler exists, we invoke
- * it and do not attempt to run the method. If there is neither a handler
- * nor a method, we disable this GPE to prevent further such pointless
- * events from firing.
+ * Always disable the GPE so that it does not keep firing before
+ * any asynchronous activity completes (either from the execution
+ * of a GPE method or an asynchronous GPE handler.)
+ *
+ * If there is no handler or method to run, just disable the
+ * GPE and leave it disabled permanently to prevent further such
+ * pointless events from firing.
+ */
+ status = acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_DISABLE);
+ if (ACPI_FAILURE(status)) {
+ ACPI_EXCEPTION((AE_INFO, status,
+ "Unable to disable GPE %02X", gpe_number));
+ return_UINT32(ACPI_INTERRUPT_NOT_HANDLED);
+ }
+
+ /*
+ * Dispatch the GPE to either an installed handler or the control
+ * method associated with this GPE (_Lxx or _Exx). If a handler
+ * exists, we invoke it and do not attempt to run the method.
+ * If there is neither a handler nor a method, leave the GPE
+ * disabled.
*/
switch (gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) {
case ACPI_GPE_DISPATCH_HANDLER:
- /*
- * Invoke the installed handler (at interrupt level)
- * Ignore return status for now.
- * TBD: leave GPE disabled on error?
- */
- (void)gpe_event_info->dispatch.handler->address(gpe_event_info->
- dispatch.
- handler->
- context);
+ /* Invoke the installed handler (at interrupt level) */
- /* It is now safe to clear level-triggered events. */
+ return_value =
+ gpe_event_info->dispatch.handler->address(gpe_device,
+ gpe_number,
+ gpe_event_info->
+ dispatch.handler->
+ context);
- if ((gpe_event_info->flags & ACPI_GPE_XRUPT_TYPE_MASK) ==
- ACPI_GPE_LEVEL_TRIGGERED) {
- status = acpi_hw_clear_gpe(gpe_event_info);
- if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status,
- "Unable to clear GPE[%2X]",
- gpe_number));
- return_UINT32(ACPI_INTERRUPT_NOT_HANDLED);
- }
+ /* If requested, clear (if level-triggered) and reenable the GPE */
+
+ if (return_value & ACPI_REENABLE_GPE) {
+ (void)acpi_ev_finish_gpe(gpe_event_info);
}
break;
case ACPI_GPE_DISPATCH_METHOD:
-
- /*
- * Disable the GPE, so it doesn't keep firing before the method has a
- * chance to run (it runs asynchronously with interrupts enabled).
- */
- status = acpi_ev_disable_gpe(gpe_event_info);
- if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status,
- "Unable to disable GPE[%2X]",
- gpe_number));
- return_UINT32(ACPI_INTERRUPT_NOT_HANDLED);
- }
-
+ case ACPI_GPE_DISPATCH_NOTIFY:
/*
* Execute the method associated with the GPE
* NOTE: Level-triggered GPEs are cleared after the method completes.
@@ -691,32 +765,25 @@ acpi_ev_gpe_dispatch(struct acpi_gpe_event_info *gpe_event_info, u32 gpe_number)
gpe_event_info);
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status,
- "Unable to queue handler for GPE[%2X] - event disabled",
+ "Unable to queue handler for GPE %02X - event disabled",
gpe_number));
}
break;
default:
-
- /* No handler or method to run! */
-
+ /*
+ * No handler or method to run!
+ * 03/2010: This case should no longer be possible. We will not allow
+ * a GPE to be enabled if it has no handler or method.
+ */
ACPI_ERROR((AE_INFO,
- "No handler or method for GPE[%2X], disabling event",
+ "No handler or method for GPE %02X, disabling event",
gpe_number));
- /*
- * Disable the GPE. The GPE will remain disabled until the ACPICA
- * Core Subsystem is restarted, or a handler is installed.
- */
- status = acpi_ev_disable_gpe(gpe_event_info);
- if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status,
- "Unable to disable GPE[%2X]",
- gpe_number));
- return_UINT32(ACPI_INTERRUPT_NOT_HANDLED);
- }
break;
}
return_UINT32(ACPI_INTERRUPT_HANDLED);
}
+
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evgpeblk.c b/drivers/acpi/acpica/evgpeblk.c
index 484cc0565d5..d86699eea33 100644
--- a/drivers/acpi/acpica/evgpeblk.c
+++ b/drivers/acpi/acpica/evgpeblk.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -48,23 +48,9 @@
#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evgpeblk")
-
+#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */
static acpi_status
-acpi_ev_save_method_info(acpi_handle obj_handle,
- u32 level, void *obj_desc, void **return_value);
-
-static acpi_status
-acpi_ev_match_prw_and_gpe(acpi_handle obj_handle,
- u32 level, void *info, void **return_value);
-
-static struct acpi_gpe_xrupt_info *acpi_ev_get_gpe_xrupt_block(u32
- interrupt_number);
-
-static acpi_status
-acpi_ev_delete_gpe_xrupt(struct acpi_gpe_xrupt_info *gpe_xrupt);
-
-static acpi_status
acpi_ev_install_gpe_block(struct acpi_gpe_block_info *gpe_block,
u32 interrupt_number);
@@ -73,549 +59,6 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block);
/*******************************************************************************
*
- * FUNCTION: acpi_ev_valid_gpe_event
- *
- * PARAMETERS: gpe_event_info - Info for this GPE
- *
- * RETURN: TRUE if the gpe_event is valid
- *
- * DESCRIPTION: Validate a GPE event. DO NOT CALL FROM INTERRUPT LEVEL.
- * Should be called only when the GPE lists are semaphore locked
- * and not subject to change.
- *
- ******************************************************************************/
-
-u8 acpi_ev_valid_gpe_event(struct acpi_gpe_event_info *gpe_event_info)
-{
- struct acpi_gpe_xrupt_info *gpe_xrupt_block;
- struct acpi_gpe_block_info *gpe_block;
-
- ACPI_FUNCTION_ENTRY();
-
- /* No need for spin lock since we are not changing any list elements */
-
- /* Walk the GPE interrupt levels */
-
- gpe_xrupt_block = acpi_gbl_gpe_xrupt_list_head;
- while (gpe_xrupt_block) {
- gpe_block = gpe_xrupt_block->gpe_block_list_head;
-
- /* Walk the GPE blocks on this interrupt level */
-
- while (gpe_block) {
- if ((&gpe_block->event_info[0] <= gpe_event_info) &&
- (&gpe_block->
- event_info[((acpi_size) gpe_block->
- register_count) * 8] >
- gpe_event_info)) {
- return (TRUE);
- }
-
- gpe_block = gpe_block->next;
- }
-
- gpe_xrupt_block = gpe_xrupt_block->next;
- }
-
- return (FALSE);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_walk_gpe_list
- *
- * PARAMETERS: gpe_walk_callback - Routine called for each GPE block
- * Context - Value passed to callback
- *
- * RETURN: Status
- *
- * DESCRIPTION: Walk the GPE lists.
- *
- ******************************************************************************/
-
-acpi_status
-acpi_ev_walk_gpe_list(acpi_gpe_callback gpe_walk_callback, void *context)
-{
- struct acpi_gpe_block_info *gpe_block;
- struct acpi_gpe_xrupt_info *gpe_xrupt_info;
- acpi_status status = AE_OK;
- acpi_cpu_flags flags;
-
- ACPI_FUNCTION_TRACE(ev_walk_gpe_list);
-
- flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
-
- /* Walk the interrupt level descriptor list */
-
- gpe_xrupt_info = acpi_gbl_gpe_xrupt_list_head;
- while (gpe_xrupt_info) {
-
- /* Walk all Gpe Blocks attached to this interrupt level */
-
- gpe_block = gpe_xrupt_info->gpe_block_list_head;
- while (gpe_block) {
-
- /* One callback per GPE block */
-
- status =
- gpe_walk_callback(gpe_xrupt_info, gpe_block,
- context);
- if (ACPI_FAILURE(status)) {
- if (status == AE_CTRL_END) { /* Callback abort */
- status = AE_OK;
- }
- goto unlock_and_exit;
- }
-
- gpe_block = gpe_block->next;
- }
-
- gpe_xrupt_info = gpe_xrupt_info->next;
- }
-
- unlock_and_exit:
- acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_delete_gpe_handlers
- *
- * PARAMETERS: gpe_xrupt_info - GPE Interrupt info
- * gpe_block - Gpe Block info
- *
- * RETURN: Status
- *
- * DESCRIPTION: Delete all Handler objects found in the GPE data structs.
- * Used only prior to termination.
- *
- ******************************************************************************/
-
-acpi_status
-acpi_ev_delete_gpe_handlers(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
- struct acpi_gpe_block_info *gpe_block,
- void *context)
-{
- struct acpi_gpe_event_info *gpe_event_info;
- u32 i;
- u32 j;
-
- ACPI_FUNCTION_TRACE(ev_delete_gpe_handlers);
-
- /* Examine each GPE Register within the block */
-
- for (i = 0; i < gpe_block->register_count; i++) {
-
- /* Now look at the individual GPEs in this byte register */
-
- for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++) {
- gpe_event_info =
- &gpe_block->
- event_info[((acpi_size) i *
- ACPI_GPE_REGISTER_WIDTH) + j];
-
- if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
- ACPI_GPE_DISPATCH_HANDLER) {
- ACPI_FREE(gpe_event_info->dispatch.handler);
- gpe_event_info->dispatch.handler = NULL;
- gpe_event_info->flags &=
- ~ACPI_GPE_DISPATCH_MASK;
- }
- }
- }
-
- return_ACPI_STATUS(AE_OK);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_save_method_info
- *
- * PARAMETERS: Callback from walk_namespace
- *
- * RETURN: Status
- *
- * DESCRIPTION: Called from acpi_walk_namespace. Expects each object to be a
- * control method under the _GPE portion of the namespace.
- * Extract the name and GPE type from the object, saving this
- * information for quick lookup during GPE dispatch
- *
- * The name of each GPE control method is of the form:
- * "_Lxx" or "_Exx"
- * Where:
- * L - means that the GPE is level triggered
- * E - means that the GPE is edge triggered
- * xx - is the GPE number [in HEX]
- *
- ******************************************************************************/
-
-static acpi_status
-acpi_ev_save_method_info(acpi_handle obj_handle,
- u32 level, void *obj_desc, void **return_value)
-{
- struct acpi_gpe_block_info *gpe_block = (void *)obj_desc;
- struct acpi_gpe_event_info *gpe_event_info;
- u32 gpe_number;
- char name[ACPI_NAME_SIZE + 1];
- u8 type;
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(ev_save_method_info);
-
- /*
- * _Lxx and _Exx GPE method support
- *
- * 1) Extract the name from the object and convert to a string
- */
- ACPI_MOVE_32_TO_32(name,
- &((struct acpi_namespace_node *)obj_handle)->name.
- integer);
- name[ACPI_NAME_SIZE] = 0;
-
- /*
- * 2) Edge/Level determination is based on the 2nd character
- * of the method name
- *
- * NOTE: Default GPE type is RUNTIME. May be changed later to WAKE
- * if a _PRW object is found that points to this GPE.
- */
- switch (name[1]) {
- case 'L':
- type = ACPI_GPE_LEVEL_TRIGGERED;
- break;
-
- case 'E':
- type = ACPI_GPE_EDGE_TRIGGERED;
- break;
-
- default:
- /* Unknown method type, just ignore it! */
-
- ACPI_DEBUG_PRINT((ACPI_DB_LOAD,
- "Ignoring unknown GPE method type: %s (name not of form _Lxx or _Exx)",
- name));
- return_ACPI_STATUS(AE_OK);
- }
-
- /* Convert the last two characters of the name to the GPE Number */
-
- gpe_number = ACPI_STRTOUL(&name[2], NULL, 16);
- if (gpe_number == ACPI_UINT32_MAX) {
-
- /* Conversion failed; invalid method, just ignore it */
-
- ACPI_DEBUG_PRINT((ACPI_DB_LOAD,
- "Could not extract GPE number from name: %s (name is not of form _Lxx or _Exx)",
- name));
- return_ACPI_STATUS(AE_OK);
- }
-
- /* Ensure that we have a valid GPE number for this GPE block */
-
- if ((gpe_number < gpe_block->block_base_number) ||
- (gpe_number >=
- (gpe_block->block_base_number +
- (gpe_block->register_count * 8)))) {
- /*
- * Not valid for this GPE block, just ignore it. However, it may be
- * valid for a different GPE block, since GPE0 and GPE1 methods both
- * appear under \_GPE.
- */
- return_ACPI_STATUS(AE_OK);
- }
-
- /*
- * Now we can add this information to the gpe_event_info block for use
- * during dispatch of this GPE. Default type is RUNTIME, although this may
- * change when the _PRW methods are executed later.
- */
- gpe_event_info =
- &gpe_block->event_info[gpe_number - gpe_block->block_base_number];
-
- gpe_event_info->flags = (u8)
- (type | ACPI_GPE_DISPATCH_METHOD | ACPI_GPE_TYPE_RUNTIME);
-
- gpe_event_info->dispatch.method_node =
- (struct acpi_namespace_node *)obj_handle;
-
- /* Update enable mask, but don't enable the HW GPE as of yet */
-
- status = acpi_ev_enable_gpe(gpe_event_info, FALSE);
-
- ACPI_DEBUG_PRINT((ACPI_DB_LOAD,
- "Registered GPE method %s as GPE number 0x%.2X\n",
- name, gpe_number));
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_match_prw_and_gpe
- *
- * PARAMETERS: Callback from walk_namespace
- *
- * RETURN: Status. NOTE: We ignore errors so that the _PRW walk is
- * not aborted on a single _PRW failure.
- *
- * DESCRIPTION: Called from acpi_walk_namespace. Expects each object to be a
- * Device. Run the _PRW method. If present, extract the GPE
- * number and mark the GPE as a WAKE GPE.
- *
- ******************************************************************************/
-
-static acpi_status
-acpi_ev_match_prw_and_gpe(acpi_handle obj_handle,
- u32 level, void *info, void **return_value)
-{
- struct acpi_gpe_walk_info *gpe_info = (void *)info;
- struct acpi_namespace_node *gpe_device;
- struct acpi_gpe_block_info *gpe_block;
- struct acpi_namespace_node *target_gpe_device;
- struct acpi_gpe_event_info *gpe_event_info;
- union acpi_operand_object *pkg_desc;
- union acpi_operand_object *obj_desc;
- u32 gpe_number;
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(ev_match_prw_and_gpe);
-
- /* Check for a _PRW method under this device */
-
- status = acpi_ut_evaluate_object(obj_handle, METHOD_NAME__PRW,
- ACPI_BTYPE_PACKAGE, &pkg_desc);
- if (ACPI_FAILURE(status)) {
-
- /* Ignore all errors from _PRW, we don't want to abort the subsystem */
-
- return_ACPI_STATUS(AE_OK);
- }
-
- /* The returned _PRW package must have at least two elements */
-
- if (pkg_desc->package.count < 2) {
- goto cleanup;
- }
-
- /* Extract pointers from the input context */
-
- gpe_device = gpe_info->gpe_device;
- gpe_block = gpe_info->gpe_block;
-
- /*
- * The _PRW object must return a package, we are only interested in the
- * first element
- */
- obj_desc = pkg_desc->package.elements[0];
-
- if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
-
- /* Use FADT-defined GPE device (from definition of _PRW) */
-
- target_gpe_device = acpi_gbl_fadt_gpe_device;
-
- /* Integer is the GPE number in the FADT described GPE blocks */
-
- gpe_number = (u32) obj_desc->integer.value;
- } else if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_PACKAGE) {
-
- /* Package contains a GPE reference and GPE number within a GPE block */
-
- if ((obj_desc->package.count < 2) ||
- (ACPI_GET_OBJECT_TYPE(obj_desc->package.elements[0]) !=
- ACPI_TYPE_LOCAL_REFERENCE)
- || (ACPI_GET_OBJECT_TYPE(obj_desc->package.elements[1]) !=
- ACPI_TYPE_INTEGER)) {
- goto cleanup;
- }
-
- /* Get GPE block reference and decode */
-
- target_gpe_device =
- obj_desc->package.elements[0]->reference.node;
- gpe_number = (u32) obj_desc->package.elements[1]->integer.value;
- } else {
- /* Unknown type, just ignore it */
-
- goto cleanup;
- }
-
- /*
- * Is this GPE within this block?
- *
- * TRUE if and only if these conditions are true:
- * 1) The GPE devices match.
- * 2) The GPE index(number) is within the range of the Gpe Block
- * associated with the GPE device.
- */
- if ((gpe_device == target_gpe_device) &&
- (gpe_number >= gpe_block->block_base_number) &&
- (gpe_number <
- gpe_block->block_base_number + (gpe_block->register_count * 8))) {
- gpe_event_info =
- &gpe_block->event_info[gpe_number -
- gpe_block->block_base_number];
-
- /* Mark GPE for WAKE-ONLY but WAKE_DISABLED */
-
- gpe_event_info->flags &=
- ~(ACPI_GPE_WAKE_ENABLED | ACPI_GPE_RUN_ENABLED);
-
- status =
- acpi_ev_set_gpe_type(gpe_event_info, ACPI_GPE_TYPE_WAKE);
- if (ACPI_FAILURE(status)) {
- goto cleanup;
- }
-
- status =
- acpi_ev_update_gpe_enable_masks(gpe_event_info,
- ACPI_GPE_DISABLE);
- }
-
- cleanup:
- acpi_ut_remove_reference(pkg_desc);
- return_ACPI_STATUS(AE_OK);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_get_gpe_xrupt_block
- *
- * PARAMETERS: interrupt_number - Interrupt for a GPE block
- *
- * RETURN: A GPE interrupt block
- *
- * DESCRIPTION: Get or Create a GPE interrupt block. There is one interrupt
- * block per unique interrupt level used for GPEs. Should be
- * called only when the GPE lists are semaphore locked and not
- * subject to change.
- *
- ******************************************************************************/
-
-static struct acpi_gpe_xrupt_info *acpi_ev_get_gpe_xrupt_block(u32
- interrupt_number)
-{
- struct acpi_gpe_xrupt_info *next_gpe_xrupt;
- struct acpi_gpe_xrupt_info *gpe_xrupt;
- acpi_status status;
- acpi_cpu_flags flags;
-
- ACPI_FUNCTION_TRACE(ev_get_gpe_xrupt_block);
-
- /* No need for lock since we are not changing any list elements here */
-
- next_gpe_xrupt = acpi_gbl_gpe_xrupt_list_head;
- while (next_gpe_xrupt) {
- if (next_gpe_xrupt->interrupt_number == interrupt_number) {
- return_PTR(next_gpe_xrupt);
- }
-
- next_gpe_xrupt = next_gpe_xrupt->next;
- }
-
- /* Not found, must allocate a new xrupt descriptor */
-
- gpe_xrupt = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_gpe_xrupt_info));
- if (!gpe_xrupt) {
- return_PTR(NULL);
- }
-
- gpe_xrupt->interrupt_number = interrupt_number;
-
- /* Install new interrupt descriptor with spin lock */
-
- flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
- if (acpi_gbl_gpe_xrupt_list_head) {
- next_gpe_xrupt = acpi_gbl_gpe_xrupt_list_head;
- while (next_gpe_xrupt->next) {
- next_gpe_xrupt = next_gpe_xrupt->next;
- }
-
- next_gpe_xrupt->next = gpe_xrupt;
- gpe_xrupt->previous = next_gpe_xrupt;
- } else {
- acpi_gbl_gpe_xrupt_list_head = gpe_xrupt;
- }
- acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
-
- /* Install new interrupt handler if not SCI_INT */
-
- if (interrupt_number != acpi_gbl_FADT.sci_interrupt) {
- status = acpi_os_install_interrupt_handler(interrupt_number,
- acpi_ev_gpe_xrupt_handler,
- gpe_xrupt);
- if (ACPI_FAILURE(status)) {
- ACPI_ERROR((AE_INFO,
- "Could not install GPE interrupt handler at level 0x%X",
- interrupt_number));
- return_PTR(NULL);
- }
- }
-
- return_PTR(gpe_xrupt);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_delete_gpe_xrupt
- *
- * PARAMETERS: gpe_xrupt - A GPE interrupt info block
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove and free a gpe_xrupt block. Remove an associated
- * interrupt handler if not the SCI interrupt.
- *
- ******************************************************************************/
-
-static acpi_status
-acpi_ev_delete_gpe_xrupt(struct acpi_gpe_xrupt_info *gpe_xrupt)
-{
- acpi_status status;
- acpi_cpu_flags flags;
-
- ACPI_FUNCTION_TRACE(ev_delete_gpe_xrupt);
-
- /* We never want to remove the SCI interrupt handler */
-
- if (gpe_xrupt->interrupt_number == acpi_gbl_FADT.sci_interrupt) {
- gpe_xrupt->gpe_block_list_head = NULL;
- return_ACPI_STATUS(AE_OK);
- }
-
- /* Disable this interrupt */
-
- status =
- acpi_os_remove_interrupt_handler(gpe_xrupt->interrupt_number,
- acpi_ev_gpe_xrupt_handler);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
- /* Unlink the interrupt block with lock */
-
- flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
- if (gpe_xrupt->previous) {
- gpe_xrupt->previous->next = gpe_xrupt->next;
- } else {
- /* No previous, update list head */
-
- acpi_gbl_gpe_xrupt_list_head = gpe_xrupt->next;
- }
-
- if (gpe_xrupt->next) {
- gpe_xrupt->next->previous = gpe_xrupt->previous;
- }
- acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
-
- /* Free the block */
-
- ACPI_FREE(gpe_xrupt);
- return_ACPI_STATUS(AE_OK);
-}
-
-/*******************************************************************************
- *
* FUNCTION: acpi_ev_install_gpe_block
*
* PARAMETERS: gpe_block - New GPE block
@@ -644,9 +87,9 @@ acpi_ev_install_gpe_block(struct acpi_gpe_block_info *gpe_block,
return_ACPI_STATUS(status);
}
- gpe_xrupt_block = acpi_ev_get_gpe_xrupt_block(interrupt_number);
- if (!gpe_xrupt_block) {
- status = AE_NO_MEMORY;
+ status =
+ acpi_ev_get_gpe_xrupt_block(interrupt_number, &gpe_xrupt_block);
+ if (ACPI_FAILURE(status)) {
goto unlock_and_exit;
}
@@ -668,8 +111,8 @@ acpi_ev_install_gpe_block(struct acpi_gpe_block_info *gpe_block,
gpe_block->xrupt_block = gpe_xrupt_block;
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
- unlock_and_exit:
- status = acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+unlock_and_exit:
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
return_ACPI_STATUS(status);
}
@@ -727,8 +170,7 @@ acpi_status acpi_ev_delete_gpe_block(struct acpi_gpe_block_info *gpe_block)
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
}
- acpi_current_gpe_count -=
- gpe_block->register_count * ACPI_GPE_REGISTER_WIDTH;
+ acpi_current_gpe_count -= gpe_block->gpe_count;
/* Free the gpe_block */
@@ -736,7 +178,7 @@ acpi_status acpi_ev_delete_gpe_block(struct acpi_gpe_block_info *gpe_block)
ACPI_FREE(gpe_block->event_info);
ACPI_FREE(gpe_block);
- unlock_and_exit:
+unlock_and_exit:
status = acpi_ut_release_mutex(ACPI_MTX_EVENTS);
return_ACPI_STATUS(status);
}
@@ -782,9 +224,7 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block)
* Allocate the GPE event_info block. There are eight distinct GPEs
* per register. Initialization to zeros is sufficient.
*/
- gpe_event_info = ACPI_ALLOCATE_ZEROED(((acpi_size) gpe_block->
- register_count *
- ACPI_GPE_REGISTER_WIDTH) *
+ gpe_event_info = ACPI_ALLOCATE_ZEROED((acpi_size) gpe_block->gpe_count *
sizeof(struct
acpi_gpe_event_info));
if (!gpe_event_info) {
@@ -812,21 +252,17 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block)
/* Init the register_info for this GPE register (8 GPEs) */
- this_register->base_gpe_number =
- (u8) (gpe_block->block_base_number +
- (i * ACPI_GPE_REGISTER_WIDTH));
+ this_register->base_gpe_number = (u16)
+ (gpe_block->block_base_number +
+ (i * ACPI_GPE_REGISTER_WIDTH));
- this_register->status_address.address =
- gpe_block->block_address.address + i;
+ this_register->status_address.address = gpe_block->address + i;
this_register->enable_address.address =
- gpe_block->block_address.address + i +
- gpe_block->register_count;
+ gpe_block->address + i + gpe_block->register_count;
- this_register->status_address.space_id =
- gpe_block->block_address.space_id;
- this_register->enable_address.space_id =
- gpe_block->block_address.space_id;
+ this_register->status_address.space_id = gpe_block->space_id;
+ this_register->enable_address.space_id = gpe_block->space_id;
this_register->status_address.bit_width =
ACPI_GPE_REGISTER_WIDTH;
this_register->enable_address.bit_width =
@@ -845,14 +281,14 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block)
/* Disable all GPEs within this register */
- status = acpi_write(0x00, &this_register->enable_address);
+ status = acpi_hw_write(0x00, &this_register->enable_address);
if (ACPI_FAILURE(status)) {
goto error_exit;
}
/* Clear any pending GPE events within this register */
- status = acpi_write(0xFF, &this_register->status_address);
+ status = acpi_hw_write(0xFF, &this_register->status_address);
if (ACPI_FAILURE(status)) {
goto error_exit;
}
@@ -862,7 +298,7 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block)
return_ACPI_STATUS(AE_OK);
- error_exit:
+error_exit:
if (gpe_register_info) {
ACPI_FREE(gpe_register_info);
}
@@ -878,7 +314,7 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block)
* FUNCTION: acpi_ev_create_gpe_block
*
* PARAMETERS: gpe_device - Handle to the parent GPE block
- * gpe_block_address - Address and space_iD
+ * gpe_block_address - Address and space_ID
* register_count - Number of GPE register pairs in the block
* gpe_block_base_number - Starting GPE number for the block
* interrupt_number - H/W interrupt for the block
@@ -894,14 +330,16 @@ acpi_ev_create_gpe_info_blocks(struct acpi_gpe_block_info *gpe_block)
acpi_status
acpi_ev_create_gpe_block(struct acpi_namespace_node *gpe_device,
- struct acpi_generic_address *gpe_block_address,
+ u64 address,
+ u8 space_id,
u32 register_count,
- u8 gpe_block_base_number,
+ u16 gpe_block_base_number,
u32 interrupt_number,
struct acpi_gpe_block_info **return_gpe_block)
{
acpi_status status;
struct acpi_gpe_block_info *gpe_block;
+ struct acpi_gpe_walk_info walk_info;
ACPI_FUNCTION_TRACE(ev_create_gpe_block);
@@ -918,13 +356,14 @@ acpi_ev_create_gpe_block(struct acpi_namespace_node *gpe_device,
/* Initialize the new GPE block */
+ gpe_block->address = address;
+ gpe_block->space_id = space_id;
gpe_block->node = gpe_device;
+ gpe_block->gpe_count = (u16)(register_count * ACPI_GPE_REGISTER_WIDTH);
+ gpe_block->initialized = FALSE;
gpe_block->register_count = register_count;
gpe_block->block_base_number = gpe_block_base_number;
- ACPI_MEMCPY(&gpe_block->block_address, gpe_block_address,
- sizeof(struct acpi_generic_address));
-
/*
* Create the register_info and event_info sub-structures
* Note: disables and clears all GPEs in the block
@@ -939,16 +378,24 @@ acpi_ev_create_gpe_block(struct acpi_namespace_node *gpe_device,
status = acpi_ev_install_gpe_block(gpe_block, interrupt_number);
if (ACPI_FAILURE(status)) {
+ ACPI_FREE(gpe_block->register_info);
+ ACPI_FREE(gpe_block->event_info);
ACPI_FREE(gpe_block);
return_ACPI_STATUS(status);
}
- /* Find all GPE methods (_Lxx, _Exx) for this block */
+ acpi_gbl_all_gpes_initialized = FALSE;
+
+ /* Find all GPE methods (_Lxx or_Exx) for this block */
+
+ walk_info.gpe_block = gpe_block;
+ walk_info.gpe_device = gpe_device;
+ walk_info.execute_by_owner_id = FALSE;
status = acpi_ns_walk_namespace(ACPI_TYPE_METHOD, gpe_device,
ACPI_UINT32_MAX, ACPI_NS_WALK_NO_UNLOCK,
- acpi_ev_save_method_info, gpe_block,
- NULL);
+ acpi_ev_match_gpe_method, NULL,
+ &walk_info, NULL);
/* Return the new block */
@@ -956,18 +403,19 @@ acpi_ev_create_gpe_block(struct acpi_namespace_node *gpe_device,
(*return_gpe_block) = gpe_block;
}
- ACPI_DEBUG_PRINT((ACPI_DB_INIT,
- "GPE %02X to %02X [%4.4s] %u regs on int 0x%X\n",
- (u32) gpe_block->block_base_number,
- (u32) (gpe_block->block_base_number +
- ((gpe_block->register_count *
- ACPI_GPE_REGISTER_WIDTH) - 1)),
- gpe_device->name.ascii, gpe_block->register_count,
- interrupt_number));
+ ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT,
+ " Initialized GPE %02X to %02X [%4.4s] %u regs on interrupt 0x%X%s\n",
+ (u32)gpe_block->block_base_number,
+ (u32)(gpe_block->block_base_number +
+ (gpe_block->gpe_count - 1)),
+ gpe_device->name.ascii, gpe_block->register_count,
+ interrupt_number,
+ interrupt_number ==
+ acpi_gbl_FADT.sci_interrupt ? " (SCI)" : ""));
/* Update global count of currently available GPEs */
- acpi_current_gpe_count += register_count * ACPI_GPE_REGISTER_WIDTH;
+ acpi_current_gpe_count += gpe_block->gpe_count;
return_ACPI_STATUS(AE_OK);
}
@@ -975,253 +423,89 @@ acpi_ev_create_gpe_block(struct acpi_namespace_node *gpe_device,
*
* FUNCTION: acpi_ev_initialize_gpe_block
*
- * PARAMETERS: gpe_device - Handle to the parent GPE block
- * gpe_block - Gpe Block info
+ * PARAMETERS: acpi_gpe_callback
*
* RETURN: Status
*
- * DESCRIPTION: Initialize and enable a GPE block. First find and run any
- * _PRT methods associated with the block, then enable the
- * appropriate GPEs.
+ * DESCRIPTION: Initialize and enable a GPE block. Enable GPEs that have
+ * associated methods.
* Note: Assumes namespace is locked.
*
******************************************************************************/
acpi_status
-acpi_ev_initialize_gpe_block(struct acpi_namespace_node *gpe_device,
- struct acpi_gpe_block_info *gpe_block)
+acpi_ev_initialize_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
+ struct acpi_gpe_block_info *gpe_block,
+ void *ignored)
{
acpi_status status;
struct acpi_gpe_event_info *gpe_event_info;
- struct acpi_gpe_walk_info gpe_info;
- u32 wake_gpe_count;
u32 gpe_enabled_count;
+ u32 gpe_index;
u32 i;
u32 j;
ACPI_FUNCTION_TRACE(ev_initialize_gpe_block);
- /* Ignore a null GPE block (e.g., if no GPE block 1 exists) */
-
- if (!gpe_block) {
- return_ACPI_STATUS(AE_OK);
- }
-
/*
- * Runtime option: Should wake GPEs be enabled at runtime? The default
- * is no, they should only be enabled just as the machine goes to sleep.
+ * Ignore a null GPE block (e.g., if no GPE block 1 exists), and
+ * any GPE blocks that have been initialized already.
*/
- if (acpi_gbl_leave_wake_gpes_disabled) {
- /*
- * Differentiate runtime vs wake GPEs, via the _PRW control methods.
- * Each GPE that has one or more _PRWs that reference it is by
- * definition a wake GPE and will not be enabled while the machine
- * is running.
- */
- gpe_info.gpe_block = gpe_block;
- gpe_info.gpe_device = gpe_device;
-
- status =
- acpi_ns_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
- ACPI_UINT32_MAX, ACPI_NS_WALK_UNLOCK,
- acpi_ev_match_prw_and_gpe, &gpe_info,
- NULL);
+ if (!gpe_block || gpe_block->initialized) {
+ return_ACPI_STATUS(AE_OK);
}
/*
- * Enable all GPEs in this block that have these attributes:
- * 1) are "runtime" or "run/wake" GPEs, and
- * 2) have a corresponding _Lxx or _Exx method
- *
- * Any other GPEs within this block must be enabled via the acpi_enable_gpe()
- * external interface.
+ * Enable all GPEs that have a corresponding method and have the
+ * ACPI_GPE_CAN_WAKE flag unset. Any other GPEs within this block
+ * must be enabled via the acpi_enable_gpe() interface.
*/
- wake_gpe_count = 0;
gpe_enabled_count = 0;
for (i = 0; i < gpe_block->register_count; i++) {
- for (j = 0; j < 8; j++) {
+ for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++) {
/* Get the info block for this particular GPE */
- gpe_event_info =
- &gpe_block->
- event_info[((acpi_size) i *
- ACPI_GPE_REGISTER_WIDTH) + j];
+ gpe_index = (i * ACPI_GPE_REGISTER_WIDTH) + j;
+ gpe_event_info = &gpe_block->event_info[gpe_index];
+ /*
+ * Ignore GPEs that have no corresponding _Lxx/_Exx method
+ * and GPEs that are used to wake the system
+ */
if (((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
- ACPI_GPE_DISPATCH_METHOD)
- && (gpe_event_info->flags & ACPI_GPE_TYPE_RUNTIME)) {
- gpe_enabled_count++;
- }
-
- if (gpe_event_info->flags & ACPI_GPE_TYPE_WAKE) {
- wake_gpe_count++;
+ ACPI_GPE_DISPATCH_NONE)
+ || ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK)
+ == ACPI_GPE_DISPATCH_HANDLER)
+ || (gpe_event_info->flags & ACPI_GPE_CAN_WAKE)) {
+ continue;
}
- }
- }
-
- ACPI_DEBUG_PRINT((ACPI_DB_INIT,
- "Found %u Wake, Enabled %u Runtime GPEs in this block\n",
- wake_gpe_count, gpe_enabled_count));
-
- /* Enable all valid runtime GPEs found above */
-
- status = acpi_hw_enable_runtime_gpe_block(NULL, gpe_block, NULL);
- if (ACPI_FAILURE(status)) {
- ACPI_ERROR((AE_INFO, "Could not enable GPEs in GpeBlock %p",
- gpe_block));
- }
-
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_gpe_initialize
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Initialize the GPE data structures
- *
- ******************************************************************************/
-
-acpi_status acpi_ev_gpe_initialize(void)
-{
- u32 register_count0 = 0;
- u32 register_count1 = 0;
- u32 gpe_number_max = 0;
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(ev_gpe_initialize);
-
- status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
- /*
- * Initialize the GPE Block(s) defined in the FADT
- *
- * Why the GPE register block lengths are divided by 2: From the ACPI Spec,
- * section "General-Purpose Event Registers", we have:
- *
- * "Each register block contains two registers of equal length
- * GPEx_STS and GPEx_EN (where x is 0 or 1). The length of the
- * GPE0_STS and GPE0_EN registers is equal to half the GPE0_LEN
- * The length of the GPE1_STS and GPE1_EN registers is equal to
- * half the GPE1_LEN. If a generic register block is not supported
- * then its respective block pointer and block length values in the
- * FADT table contain zeros. The GPE0_LEN and GPE1_LEN do not need
- * to be the same size."
- */
-
- /*
- * Determine the maximum GPE number for this machine.
- *
- * Note: both GPE0 and GPE1 are optional, and either can exist without
- * the other.
- *
- * If EITHER the register length OR the block address are zero, then that
- * particular block is not supported.
- */
- if (acpi_gbl_FADT.gpe0_block_length &&
- acpi_gbl_FADT.xgpe0_block.address) {
-
- /* GPE block 0 exists (has both length and address > 0) */
-
- register_count0 = (u16) (acpi_gbl_FADT.gpe0_block_length / 2);
-
- gpe_number_max =
- (register_count0 * ACPI_GPE_REGISTER_WIDTH) - 1;
-
- /* Install GPE Block 0 */
-
- status = acpi_ev_create_gpe_block(acpi_gbl_fadt_gpe_device,
- &acpi_gbl_FADT.xgpe0_block,
- register_count0, 0,
- acpi_gbl_FADT.sci_interrupt,
- &acpi_gbl_gpe_fadt_blocks[0]);
-
- if (ACPI_FAILURE(status)) {
- ACPI_EXCEPTION((AE_INFO, status,
- "Could not create GPE Block 0"));
- }
- }
-
- if (acpi_gbl_FADT.gpe1_block_length &&
- acpi_gbl_FADT.xgpe1_block.address) {
-
- /* GPE block 1 exists (has both length and address > 0) */
-
- register_count1 = (u16) (acpi_gbl_FADT.gpe1_block_length / 2);
-
- /* Check for GPE0/GPE1 overlap (if both banks exist) */
-
- if ((register_count0) &&
- (gpe_number_max >= acpi_gbl_FADT.gpe1_base)) {
- ACPI_ERROR((AE_INFO,
- "GPE0 block (GPE 0 to %d) overlaps the GPE1 block (GPE %d to %d) - Ignoring GPE1",
- gpe_number_max, acpi_gbl_FADT.gpe1_base,
- acpi_gbl_FADT.gpe1_base +
- ((register_count1 *
- ACPI_GPE_REGISTER_WIDTH) - 1)));
-
- /* Ignore GPE1 block by setting the register count to zero */
-
- register_count1 = 0;
- } else {
- /* Install GPE Block 1 */
-
- status =
- acpi_ev_create_gpe_block(acpi_gbl_fadt_gpe_device,
- &acpi_gbl_FADT.xgpe1_block,
- register_count1,
- acpi_gbl_FADT.gpe1_base,
- acpi_gbl_FADT.
- sci_interrupt,
- &acpi_gbl_gpe_fadt_blocks
- [1]);
+ status = acpi_ev_add_gpe_reference(gpe_event_info);
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status,
- "Could not create GPE Block 1"));
+ "Could not enable GPE 0x%02X",
+ gpe_index +
+ gpe_block->block_base_number));
+ continue;
}
- /*
- * GPE0 and GPE1 do not have to be contiguous in the GPE number
- * space. However, GPE0 always starts at GPE number zero.
- */
- gpe_number_max = acpi_gbl_FADT.gpe1_base +
- ((register_count1 * ACPI_GPE_REGISTER_WIDTH) - 1);
+ gpe_enabled_count++;
}
}
- /* Exit if there are no GPE registers */
-
- if ((register_count0 + register_count1) == 0) {
-
- /* GPEs are not required by ACPI, this is OK */
-
- ACPI_DEBUG_PRINT((ACPI_DB_INIT,
- "There are no GPE blocks defined in the FADT\n"));
- status = AE_OK;
- goto cleanup;
+ if (gpe_enabled_count) {
+ ACPI_INFO((AE_INFO,
+ "Enabled %u GPEs in block %02X to %02X",
+ gpe_enabled_count, (u32)gpe_block->block_base_number,
+ (u32)(gpe_block->block_base_number +
+ (gpe_block->gpe_count - 1))));
}
- /* Check for Max GPE number out-of-range */
+ gpe_block->initialized = TRUE;
- if (gpe_number_max > ACPI_GPE_MAX) {
- ACPI_ERROR((AE_INFO,
- "Maximum GPE number from FADT is too large: 0x%X",
- gpe_number_max));
- status = AE_BAD_VALUE;
- goto cleanup;
- }
-
- cleanup:
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
return_ACPI_STATUS(AE_OK);
}
+
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evgpeinit.c b/drivers/acpi/acpica/evgpeinit.c
new file mode 100644
index 00000000000..49fc7effd96
--- /dev/null
+++ b/drivers/acpi/acpica/evgpeinit.c
@@ -0,0 +1,443 @@
+/******************************************************************************
+ *
+ * Module Name: evgpeinit - System GPE initialization and update
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#include <acpi/acpi.h>
+#include "accommon.h"
+#include "acevents.h"
+#include "acnamesp.h"
+
+#define _COMPONENT ACPI_EVENTS
+ACPI_MODULE_NAME("evgpeinit")
+#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
+/*
+ * Note: History of _PRW support in ACPICA
+ *
+ * Originally (2000 - 2010), the GPE initialization code performed a walk of
+ * the entire namespace to execute the _PRW methods and detect all GPEs
+ * capable of waking the system.
+ *
+ * As of 10/2010, the _PRW method execution has been removed since it is
+ * actually unnecessary. The host OS must in fact execute all _PRW methods
+ * in order to identify the device/power-resource dependencies. We now put
+ * the onus on the host OS to identify the wake GPEs as part of this process
+ * and to inform ACPICA of these GPEs via the acpi_setup_gpe_for_wake interface. This
+ * not only reduces the complexity of the ACPICA initialization code, but in
+ * some cases (on systems with very large namespaces) it should reduce the
+ * kernel boot time as well.
+ */
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_gpe_initialize
+ *
+ * PARAMETERS: None
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Initialize the GPE data structures and the FADT GPE 0/1 blocks
+ *
+ ******************************************************************************/
+acpi_status acpi_ev_gpe_initialize(void)
+{
+ u32 register_count0 = 0;
+ u32 register_count1 = 0;
+ u32 gpe_number_max = 0;
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE(ev_gpe_initialize);
+
+ ACPI_DEBUG_PRINT_RAW((ACPI_DB_INIT,
+ "Initializing General Purpose Events (GPEs):\n"));
+
+ status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ /*
+ * Initialize the GPE Block(s) defined in the FADT
+ *
+ * Why the GPE register block lengths are divided by 2: From the ACPI
+ * Spec, section "General-Purpose Event Registers", we have:
+ *
+ * "Each register block contains two registers of equal length
+ * GPEx_STS and GPEx_EN (where x is 0 or 1). The length of the
+ * GPE0_STS and GPE0_EN registers is equal to half the GPE0_LEN
+ * The length of the GPE1_STS and GPE1_EN registers is equal to
+ * half the GPE1_LEN. If a generic register block is not supported
+ * then its respective block pointer and block length values in the
+ * FADT table contain zeros. The GPE0_LEN and GPE1_LEN do not need
+ * to be the same size."
+ */
+
+ /*
+ * Determine the maximum GPE number for this machine.
+ *
+ * Note: both GPE0 and GPE1 are optional, and either can exist without
+ * the other.
+ *
+ * If EITHER the register length OR the block address are zero, then that
+ * particular block is not supported.
+ */
+ if (acpi_gbl_FADT.gpe0_block_length &&
+ acpi_gbl_FADT.xgpe0_block.address) {
+
+ /* GPE block 0 exists (has both length and address > 0) */
+
+ register_count0 = (u16)(acpi_gbl_FADT.gpe0_block_length / 2);
+ gpe_number_max =
+ (register_count0 * ACPI_GPE_REGISTER_WIDTH) - 1;
+
+ /* Install GPE Block 0 */
+
+ status = acpi_ev_create_gpe_block(acpi_gbl_fadt_gpe_device,
+ acpi_gbl_FADT.xgpe0_block.
+ address,
+ acpi_gbl_FADT.xgpe0_block.
+ space_id, register_count0, 0,
+ acpi_gbl_FADT.sci_interrupt,
+ &acpi_gbl_gpe_fadt_blocks[0]);
+
+ if (ACPI_FAILURE(status)) {
+ ACPI_EXCEPTION((AE_INFO, status,
+ "Could not create GPE Block 0"));
+ }
+ }
+
+ if (acpi_gbl_FADT.gpe1_block_length &&
+ acpi_gbl_FADT.xgpe1_block.address) {
+
+ /* GPE block 1 exists (has both length and address > 0) */
+
+ register_count1 = (u16)(acpi_gbl_FADT.gpe1_block_length / 2);
+
+ /* Check for GPE0/GPE1 overlap (if both banks exist) */
+
+ if ((register_count0) &&
+ (gpe_number_max >= acpi_gbl_FADT.gpe1_base)) {
+ ACPI_ERROR((AE_INFO,
+ "GPE0 block (GPE 0 to %u) overlaps the GPE1 block "
+ "(GPE %u to %u) - Ignoring GPE1",
+ gpe_number_max, acpi_gbl_FADT.gpe1_base,
+ acpi_gbl_FADT.gpe1_base +
+ ((register_count1 *
+ ACPI_GPE_REGISTER_WIDTH) - 1)));
+
+ /* Ignore GPE1 block by setting the register count to zero */
+
+ register_count1 = 0;
+ } else {
+ /* Install GPE Block 1 */
+
+ status =
+ acpi_ev_create_gpe_block(acpi_gbl_fadt_gpe_device,
+ acpi_gbl_FADT.xgpe1_block.
+ address,
+ acpi_gbl_FADT.xgpe1_block.
+ space_id, register_count1,
+ acpi_gbl_FADT.gpe1_base,
+ acpi_gbl_FADT.
+ sci_interrupt,
+ &acpi_gbl_gpe_fadt_blocks
+ [1]);
+
+ if (ACPI_FAILURE(status)) {
+ ACPI_EXCEPTION((AE_INFO, status,
+ "Could not create GPE Block 1"));
+ }
+
+ /*
+ * GPE0 and GPE1 do not have to be contiguous in the GPE number
+ * space. However, GPE0 always starts at GPE number zero.
+ */
+ gpe_number_max = acpi_gbl_FADT.gpe1_base +
+ ((register_count1 * ACPI_GPE_REGISTER_WIDTH) - 1);
+ }
+ }
+
+ /* Exit if there are no GPE registers */
+
+ if ((register_count0 + register_count1) == 0) {
+
+ /* GPEs are not required by ACPI, this is OK */
+
+ ACPI_DEBUG_PRINT((ACPI_DB_INIT,
+ "There are no GPE blocks defined in the FADT\n"));
+ status = AE_OK;
+ goto cleanup;
+ }
+
+cleanup:
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
+ return_ACPI_STATUS(AE_OK);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_update_gpes
+ *
+ * PARAMETERS: table_owner_id - ID of the newly-loaded ACPI table
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Check for new GPE methods (_Lxx/_Exx) made available as a
+ * result of a Load() or load_table() operation. If new GPE
+ * methods have been installed, register the new methods.
+ *
+ ******************************************************************************/
+
+void acpi_ev_update_gpes(acpi_owner_id table_owner_id)
+{
+ struct acpi_gpe_xrupt_info *gpe_xrupt_info;
+ struct acpi_gpe_block_info *gpe_block;
+ struct acpi_gpe_walk_info walk_info;
+ acpi_status status = AE_OK;
+
+ /*
+ * Find any _Lxx/_Exx GPE methods that have just been loaded.
+ *
+ * Any GPEs that correspond to new _Lxx/_Exx methods are immediately
+ * enabled.
+ *
+ * Examine the namespace underneath each gpe_device within the
+ * gpe_block lists.
+ */
+ status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+ if (ACPI_FAILURE(status)) {
+ return;
+ }
+
+ walk_info.count = 0;
+ walk_info.owner_id = table_owner_id;
+ walk_info.execute_by_owner_id = TRUE;
+
+ /* Walk the interrupt level descriptor list */
+
+ gpe_xrupt_info = acpi_gbl_gpe_xrupt_list_head;
+ while (gpe_xrupt_info) {
+
+ /* Walk all Gpe Blocks attached to this interrupt level */
+
+ gpe_block = gpe_xrupt_info->gpe_block_list_head;
+ while (gpe_block) {
+ walk_info.gpe_block = gpe_block;
+ walk_info.gpe_device = gpe_block->node;
+
+ status = acpi_ns_walk_namespace(ACPI_TYPE_METHOD,
+ walk_info.gpe_device,
+ ACPI_UINT32_MAX,
+ ACPI_NS_WALK_NO_UNLOCK,
+ acpi_ev_match_gpe_method,
+ NULL, &walk_info, NULL);
+ if (ACPI_FAILURE(status)) {
+ ACPI_EXCEPTION((AE_INFO, status,
+ "While decoding _Lxx/_Exx methods"));
+ }
+
+ gpe_block = gpe_block->next;
+ }
+
+ gpe_xrupt_info = gpe_xrupt_info->next;
+ }
+
+ if (walk_info.count) {
+ ACPI_INFO((AE_INFO, "Enabled %u new GPEs", walk_info.count));
+ }
+
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+ return;
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_match_gpe_method
+ *
+ * PARAMETERS: Callback from walk_namespace
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Called from acpi_walk_namespace. Expects each object to be a
+ * control method under the _GPE portion of the namespace.
+ * Extract the name and GPE type from the object, saving this
+ * information for quick lookup during GPE dispatch. Allows a
+ * per-owner_id evaluation if execute_by_owner_id is TRUE in the
+ * walk_info parameter block.
+ *
+ * The name of each GPE control method is of the form:
+ * "_Lxx" or "_Exx", where:
+ * L - means that the GPE is level triggered
+ * E - means that the GPE is edge triggered
+ * xx - is the GPE number [in HEX]
+ *
+ * If walk_info->execute_by_owner_id is TRUE, we only execute examine GPE methods
+ * with that owner.
+ *
+ ******************************************************************************/
+
+acpi_status
+acpi_ev_match_gpe_method(acpi_handle obj_handle,
+ u32 level, void *context, void **return_value)
+{
+ struct acpi_namespace_node *method_node =
+ ACPI_CAST_PTR(struct acpi_namespace_node, obj_handle);
+ struct acpi_gpe_walk_info *walk_info =
+ ACPI_CAST_PTR(struct acpi_gpe_walk_info, context);
+ struct acpi_gpe_event_info *gpe_event_info;
+ u32 gpe_number;
+ char name[ACPI_NAME_SIZE + 1];
+ u8 type;
+
+ ACPI_FUNCTION_TRACE(ev_match_gpe_method);
+
+ /* Check if requested owner_id matches this owner_id */
+
+ if ((walk_info->execute_by_owner_id) &&
+ (method_node->owner_id != walk_info->owner_id)) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /*
+ * Match and decode the _Lxx and _Exx GPE method names
+ *
+ * 1) Extract the method name and null terminate it
+ */
+ ACPI_MOVE_32_TO_32(name, &method_node->name.integer);
+ name[ACPI_NAME_SIZE] = 0;
+
+ /* 2) Name must begin with an underscore */
+
+ if (name[0] != '_') {
+ return_ACPI_STATUS(AE_OK); /* Ignore this method */
+ }
+
+ /*
+ * 3) Edge/Level determination is based on the 2nd character
+ * of the method name
+ */
+ switch (name[1]) {
+ case 'L':
+
+ type = ACPI_GPE_LEVEL_TRIGGERED;
+ break;
+
+ case 'E':
+
+ type = ACPI_GPE_EDGE_TRIGGERED;
+ break;
+
+ default:
+
+ /* Unknown method type, just ignore it */
+
+ ACPI_DEBUG_PRINT((ACPI_DB_LOAD,
+ "Ignoring unknown GPE method type: %s "
+ "(name not of form _Lxx or _Exx)", name));
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /* 4) The last two characters of the name are the hex GPE Number */
+
+ gpe_number = ACPI_STRTOUL(&name[2], NULL, 16);
+ if (gpe_number == ACPI_UINT32_MAX) {
+
+ /* Conversion failed; invalid method, just ignore it */
+
+ ACPI_DEBUG_PRINT((ACPI_DB_LOAD,
+ "Could not extract GPE number from name: %s "
+ "(name is not of form _Lxx or _Exx)", name));
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /* Ensure that we have a valid GPE number for this GPE block */
+
+ gpe_event_info =
+ acpi_ev_low_get_gpe_info(gpe_number, walk_info->gpe_block);
+ if (!gpe_event_info) {
+ /*
+ * This gpe_number is not valid for this GPE block, just ignore it.
+ * However, it may be valid for a different GPE block, since GPE0
+ * and GPE1 methods both appear under \_GPE.
+ */
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
+ ACPI_GPE_DISPATCH_HANDLER) {
+
+ /* If there is already a handler, ignore this GPE method */
+
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
+ ACPI_GPE_DISPATCH_METHOD) {
+ /*
+ * If there is already a method, ignore this method. But check
+ * for a type mismatch (if both the _Lxx AND _Exx exist)
+ */
+ if (type != (gpe_event_info->flags & ACPI_GPE_XRUPT_TYPE_MASK)) {
+ ACPI_ERROR((AE_INFO,
+ "For GPE 0x%.2X, found both _L%2.2X and _E%2.2X methods",
+ gpe_number, gpe_number, gpe_number));
+ }
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /* Disable the GPE in case it's been enabled already. */
+ (void)acpi_hw_low_set_gpe(gpe_event_info, ACPI_GPE_DISABLE);
+
+ /*
+ * Add the GPE information from above to the gpe_event_info block for
+ * use during dispatch of this GPE.
+ */
+ gpe_event_info->flags &= ~(ACPI_GPE_DISPATCH_MASK);
+ gpe_event_info->flags |= (u8)(type | ACPI_GPE_DISPATCH_METHOD);
+ gpe_event_info->dispatch.method_node = method_node;
+
+ ACPI_DEBUG_PRINT((ACPI_DB_LOAD,
+ "Registered GPE method %s as GPE number 0x%.2X\n",
+ name, gpe_number));
+ return_ACPI_STATUS(AE_OK);
+}
+
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evgpeutil.c b/drivers/acpi/acpica/evgpeutil.c
new file mode 100644
index 00000000000..17e4bbfdb09
--- /dev/null
+++ b/drivers/acpi/acpica/evgpeutil.c
@@ -0,0 +1,406 @@
+/******************************************************************************
+ *
+ * Module Name: evgpeutil - GPE utilities
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#include <acpi/acpi.h>
+#include "accommon.h"
+#include "acevents.h"
+
+#define _COMPONENT ACPI_EVENTS
+ACPI_MODULE_NAME("evgpeutil")
+
+#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_walk_gpe_list
+ *
+ * PARAMETERS: gpe_walk_callback - Routine called for each GPE block
+ * context - Value passed to callback
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Walk the GPE lists.
+ *
+ ******************************************************************************/
+acpi_status
+acpi_ev_walk_gpe_list(acpi_gpe_callback gpe_walk_callback, void *context)
+{
+ struct acpi_gpe_block_info *gpe_block;
+ struct acpi_gpe_xrupt_info *gpe_xrupt_info;
+ acpi_status status = AE_OK;
+ acpi_cpu_flags flags;
+
+ ACPI_FUNCTION_TRACE(ev_walk_gpe_list);
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+ /* Walk the interrupt level descriptor list */
+
+ gpe_xrupt_info = acpi_gbl_gpe_xrupt_list_head;
+ while (gpe_xrupt_info) {
+
+ /* Walk all Gpe Blocks attached to this interrupt level */
+
+ gpe_block = gpe_xrupt_info->gpe_block_list_head;
+ while (gpe_block) {
+
+ /* One callback per GPE block */
+
+ status =
+ gpe_walk_callback(gpe_xrupt_info, gpe_block,
+ context);
+ if (ACPI_FAILURE(status)) {
+ if (status == AE_CTRL_END) { /* Callback abort */
+ status = AE_OK;
+ }
+ goto unlock_and_exit;
+ }
+
+ gpe_block = gpe_block->next;
+ }
+
+ gpe_xrupt_info = gpe_xrupt_info->next;
+ }
+
+unlock_and_exit:
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_valid_gpe_event
+ *
+ * PARAMETERS: gpe_event_info - Info for this GPE
+ *
+ * RETURN: TRUE if the gpe_event is valid
+ *
+ * DESCRIPTION: Validate a GPE event. DO NOT CALL FROM INTERRUPT LEVEL.
+ * Should be called only when the GPE lists are semaphore locked
+ * and not subject to change.
+ *
+ ******************************************************************************/
+
+u8 acpi_ev_valid_gpe_event(struct acpi_gpe_event_info *gpe_event_info)
+{
+ struct acpi_gpe_xrupt_info *gpe_xrupt_block;
+ struct acpi_gpe_block_info *gpe_block;
+
+ ACPI_FUNCTION_ENTRY();
+
+ /* No need for spin lock since we are not changing any list elements */
+
+ /* Walk the GPE interrupt levels */
+
+ gpe_xrupt_block = acpi_gbl_gpe_xrupt_list_head;
+ while (gpe_xrupt_block) {
+ gpe_block = gpe_xrupt_block->gpe_block_list_head;
+
+ /* Walk the GPE blocks on this interrupt level */
+
+ while (gpe_block) {
+ if ((&gpe_block->event_info[0] <= gpe_event_info) &&
+ (&gpe_block->event_info[gpe_block->gpe_count] >
+ gpe_event_info)) {
+ return (TRUE);
+ }
+
+ gpe_block = gpe_block->next;
+ }
+
+ gpe_xrupt_block = gpe_xrupt_block->next;
+ }
+
+ return (FALSE);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_get_gpe_device
+ *
+ * PARAMETERS: GPE_WALK_CALLBACK
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Matches the input GPE index (0-current_gpe_count) with a GPE
+ * block device. NULL if the GPE is one of the FADT-defined GPEs.
+ *
+ ******************************************************************************/
+
+acpi_status
+acpi_ev_get_gpe_device(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
+ struct acpi_gpe_block_info *gpe_block, void *context)
+{
+ struct acpi_gpe_device_info *info = context;
+
+ /* Increment Index by the number of GPEs in this block */
+
+ info->next_block_base_index += gpe_block->gpe_count;
+
+ if (info->index < info->next_block_base_index) {
+ /*
+ * The GPE index is within this block, get the node. Leave the node
+ * NULL for the FADT-defined GPEs
+ */
+ if ((gpe_block->node)->type == ACPI_TYPE_DEVICE) {
+ info->gpe_device = gpe_block->node;
+ }
+
+ info->status = AE_OK;
+ return (AE_CTRL_END);
+ }
+
+ return (AE_OK);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_get_gpe_xrupt_block
+ *
+ * PARAMETERS: interrupt_number - Interrupt for a GPE block
+ * gpe_xrupt_block - Where the block is returned
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Get or Create a GPE interrupt block. There is one interrupt
+ * block per unique interrupt level used for GPEs. Should be
+ * called only when the GPE lists are semaphore locked and not
+ * subject to change.
+ *
+ ******************************************************************************/
+
+acpi_status
+acpi_ev_get_gpe_xrupt_block(u32 interrupt_number,
+ struct acpi_gpe_xrupt_info ** gpe_xrupt_block)
+{
+ struct acpi_gpe_xrupt_info *next_gpe_xrupt;
+ struct acpi_gpe_xrupt_info *gpe_xrupt;
+ acpi_status status;
+ acpi_cpu_flags flags;
+
+ ACPI_FUNCTION_TRACE(ev_get_gpe_xrupt_block);
+
+ /* No need for lock since we are not changing any list elements here */
+
+ next_gpe_xrupt = acpi_gbl_gpe_xrupt_list_head;
+ while (next_gpe_xrupt) {
+ if (next_gpe_xrupt->interrupt_number == interrupt_number) {
+ *gpe_xrupt_block = next_gpe_xrupt;
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ next_gpe_xrupt = next_gpe_xrupt->next;
+ }
+
+ /* Not found, must allocate a new xrupt descriptor */
+
+ gpe_xrupt = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_gpe_xrupt_info));
+ if (!gpe_xrupt) {
+ return_ACPI_STATUS(AE_NO_MEMORY);
+ }
+
+ gpe_xrupt->interrupt_number = interrupt_number;
+
+ /* Install new interrupt descriptor with spin lock */
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+ if (acpi_gbl_gpe_xrupt_list_head) {
+ next_gpe_xrupt = acpi_gbl_gpe_xrupt_list_head;
+ while (next_gpe_xrupt->next) {
+ next_gpe_xrupt = next_gpe_xrupt->next;
+ }
+
+ next_gpe_xrupt->next = gpe_xrupt;
+ gpe_xrupt->previous = next_gpe_xrupt;
+ } else {
+ acpi_gbl_gpe_xrupt_list_head = gpe_xrupt;
+ }
+
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+
+ /* Install new interrupt handler if not SCI_INT */
+
+ if (interrupt_number != acpi_gbl_FADT.sci_interrupt) {
+ status = acpi_os_install_interrupt_handler(interrupt_number,
+ acpi_ev_gpe_xrupt_handler,
+ gpe_xrupt);
+ if (ACPI_FAILURE(status)) {
+ ACPI_EXCEPTION((AE_INFO, status,
+ "Could not install GPE interrupt handler at level 0x%X",
+ interrupt_number));
+ return_ACPI_STATUS(status);
+ }
+ }
+
+ *gpe_xrupt_block = gpe_xrupt;
+ return_ACPI_STATUS(AE_OK);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_delete_gpe_xrupt
+ *
+ * PARAMETERS: gpe_xrupt - A GPE interrupt info block
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Remove and free a gpe_xrupt block. Remove an associated
+ * interrupt handler if not the SCI interrupt.
+ *
+ ******************************************************************************/
+
+acpi_status acpi_ev_delete_gpe_xrupt(struct acpi_gpe_xrupt_info *gpe_xrupt)
+{
+ acpi_status status;
+ acpi_cpu_flags flags;
+
+ ACPI_FUNCTION_TRACE(ev_delete_gpe_xrupt);
+
+ /* We never want to remove the SCI interrupt handler */
+
+ if (gpe_xrupt->interrupt_number == acpi_gbl_FADT.sci_interrupt) {
+ gpe_xrupt->gpe_block_list_head = NULL;
+ return_ACPI_STATUS(AE_OK);
+ }
+
+ /* Disable this interrupt */
+
+ status =
+ acpi_os_remove_interrupt_handler(gpe_xrupt->interrupt_number,
+ acpi_ev_gpe_xrupt_handler);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ /* Unlink the interrupt block with lock */
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+ if (gpe_xrupt->previous) {
+ gpe_xrupt->previous->next = gpe_xrupt->next;
+ } else {
+ /* No previous, update list head */
+
+ acpi_gbl_gpe_xrupt_list_head = gpe_xrupt->next;
+ }
+
+ if (gpe_xrupt->next) {
+ gpe_xrupt->next->previous = gpe_xrupt->previous;
+ }
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+
+ /* Free the block */
+
+ ACPI_FREE(gpe_xrupt);
+ return_ACPI_STATUS(AE_OK);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_delete_gpe_handlers
+ *
+ * PARAMETERS: gpe_xrupt_info - GPE Interrupt info
+ * gpe_block - Gpe Block info
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Delete all Handler objects found in the GPE data structs.
+ * Used only prior to termination.
+ *
+ ******************************************************************************/
+
+acpi_status
+acpi_ev_delete_gpe_handlers(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
+ struct acpi_gpe_block_info *gpe_block,
+ void *context)
+{
+ struct acpi_gpe_event_info *gpe_event_info;
+ struct acpi_gpe_notify_info *notify;
+ struct acpi_gpe_notify_info *next;
+ u32 i;
+ u32 j;
+
+ ACPI_FUNCTION_TRACE(ev_delete_gpe_handlers);
+
+ /* Examine each GPE Register within the block */
+
+ for (i = 0; i < gpe_block->register_count; i++) {
+
+ /* Now look at the individual GPEs in this byte register */
+
+ for (j = 0; j < ACPI_GPE_REGISTER_WIDTH; j++) {
+ gpe_event_info = &gpe_block->event_info[((acpi_size) i *
+ ACPI_GPE_REGISTER_WIDTH)
+ + j];
+
+ if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
+ ACPI_GPE_DISPATCH_HANDLER) {
+
+ /* Delete an installed handler block */
+
+ ACPI_FREE(gpe_event_info->dispatch.handler);
+ gpe_event_info->dispatch.handler = NULL;
+ gpe_event_info->flags &=
+ ~ACPI_GPE_DISPATCH_MASK;
+ } else
+ if ((gpe_event_info->
+ flags & ACPI_GPE_DISPATCH_MASK) ==
+ ACPI_GPE_DISPATCH_NOTIFY) {
+
+ /* Delete the implicit notification device list */
+
+ notify = gpe_event_info->dispatch.notify_list;
+ while (notify) {
+ next = notify->next;
+ ACPI_FREE(notify);
+ notify = next;
+ }
+ gpe_event_info->dispatch.notify_list = NULL;
+ gpe_event_info->flags &=
+ ~ACPI_GPE_DISPATCH_MASK;
+ }
+ }
+ }
+
+ return_ACPI_STATUS(AE_OK);
+}
+
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evhandler.c b/drivers/acpi/acpica/evhandler.c
new file mode 100644
index 00000000000..78ac29351c9
--- /dev/null
+++ b/drivers/acpi/acpica/evhandler.c
@@ -0,0 +1,536 @@
+/******************************************************************************
+ *
+ * Module Name: evhandler - Support for Address Space handlers
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#include <acpi/acpi.h>
+#include "accommon.h"
+#include "acevents.h"
+#include "acnamesp.h"
+#include "acinterp.h"
+
+#define _COMPONENT ACPI_EVENTS
+ACPI_MODULE_NAME("evhandler")
+
+/* Local prototypes */
+static acpi_status
+acpi_ev_install_handler(acpi_handle obj_handle,
+ u32 level, void *context, void **return_value);
+
+/* These are the address spaces that will get default handlers */
+
+u8 acpi_gbl_default_address_spaces[ACPI_NUM_DEFAULT_SPACES] = {
+ ACPI_ADR_SPACE_SYSTEM_MEMORY,
+ ACPI_ADR_SPACE_SYSTEM_IO,
+ ACPI_ADR_SPACE_PCI_CONFIG,
+ ACPI_ADR_SPACE_DATA_TABLE
+};
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_install_region_handlers
+ *
+ * PARAMETERS: None
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Installs the core subsystem default address space handlers.
+ *
+ ******************************************************************************/
+
+acpi_status acpi_ev_install_region_handlers(void)
+{
+ acpi_status status;
+ u32 i;
+
+ ACPI_FUNCTION_TRACE(ev_install_region_handlers);
+
+ status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ /*
+ * All address spaces (PCI Config, EC, SMBus) are scope dependent and
+ * registration must occur for a specific device.
+ *
+ * In the case of the system memory and IO address spaces there is
+ * currently no device associated with the address space. For these we
+ * use the root.
+ *
+ * We install the default PCI config space handler at the root so that
+ * this space is immediately available even though the we have not
+ * enumerated all the PCI Root Buses yet. This is to conform to the ACPI
+ * specification which states that the PCI config space must be always
+ * available -- even though we are nowhere near ready to find the PCI root
+ * buses at this point.
+ *
+ * NOTE: We ignore AE_ALREADY_EXISTS because this means that a handler
+ * has already been installed (via acpi_install_address_space_handler).
+ * Similar for AE_SAME_HANDLER.
+ */
+ for (i = 0; i < ACPI_NUM_DEFAULT_SPACES; i++) {
+ status = acpi_ev_install_space_handler(acpi_gbl_root_node,
+ acpi_gbl_default_address_spaces
+ [i],
+ ACPI_DEFAULT_HANDLER,
+ NULL, NULL);
+ switch (status) {
+ case AE_OK:
+ case AE_SAME_HANDLER:
+ case AE_ALREADY_EXISTS:
+
+ /* These exceptions are all OK */
+
+ status = AE_OK;
+ break;
+
+ default:
+
+ goto unlock_and_exit;
+ }
+ }
+
+unlock_and_exit:
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
+ return_ACPI_STATUS(status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_has_default_handler
+ *
+ * PARAMETERS: node - Namespace node for the device
+ * space_id - The address space ID
+ *
+ * RETURN: TRUE if default handler is installed, FALSE otherwise
+ *
+ * DESCRIPTION: Check if the default handler is installed for the requested
+ * space ID.
+ *
+ ******************************************************************************/
+
+u8
+acpi_ev_has_default_handler(struct acpi_namespace_node *node,
+ acpi_adr_space_type space_id)
+{
+ union acpi_operand_object *obj_desc;
+ union acpi_operand_object *handler_obj;
+
+ /* Must have an existing internal object */
+
+ obj_desc = acpi_ns_get_attached_object(node);
+ if (obj_desc) {
+ handler_obj = obj_desc->device.handler;
+
+ /* Walk the linked list of handlers for this object */
+
+ while (handler_obj) {
+ if (handler_obj->address_space.space_id == space_id) {
+ if (handler_obj->address_space.handler_flags &
+ ACPI_ADDR_HANDLER_DEFAULT_INSTALLED) {
+ return (TRUE);
+ }
+ }
+
+ handler_obj = handler_obj->address_space.next;
+ }
+ }
+
+ return (FALSE);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_install_handler
+ *
+ * PARAMETERS: walk_namespace callback
+ *
+ * DESCRIPTION: This routine installs an address handler into objects that are
+ * of type Region or Device.
+ *
+ * If the Object is a Device, and the device has a handler of
+ * the same type then the search is terminated in that branch.
+ *
+ * This is because the existing handler is closer in proximity
+ * to any more regions than the one we are trying to install.
+ *
+ ******************************************************************************/
+
+static acpi_status
+acpi_ev_install_handler(acpi_handle obj_handle,
+ u32 level, void *context, void **return_value)
+{
+ union acpi_operand_object *handler_obj;
+ union acpi_operand_object *next_handler_obj;
+ union acpi_operand_object *obj_desc;
+ struct acpi_namespace_node *node;
+ acpi_status status;
+
+ ACPI_FUNCTION_NAME(ev_install_handler);
+
+ handler_obj = (union acpi_operand_object *)context;
+
+ /* Parameter validation */
+
+ if (!handler_obj) {
+ return (AE_OK);
+ }
+
+ /* Convert and validate the device handle */
+
+ node = acpi_ns_validate_handle(obj_handle);
+ if (!node) {
+ return (AE_BAD_PARAMETER);
+ }
+
+ /*
+ * We only care about regions and objects that are allowed to have
+ * address space handlers
+ */
+ if ((node->type != ACPI_TYPE_DEVICE) &&
+ (node->type != ACPI_TYPE_REGION) && (node != acpi_gbl_root_node)) {
+ return (AE_OK);
+ }
+
+ /* Check for an existing internal object */
+
+ obj_desc = acpi_ns_get_attached_object(node);
+ if (!obj_desc) {
+
+ /* No object, just exit */
+
+ return (AE_OK);
+ }
+
+ /* Devices are handled different than regions */
+
+ if (obj_desc->common.type == ACPI_TYPE_DEVICE) {
+
+ /* Check if this Device already has a handler for this address space */
+
+ next_handler_obj = obj_desc->device.handler;
+ while (next_handler_obj) {
+
+ /* Found a handler, is it for the same address space? */
+
+ if (next_handler_obj->address_space.space_id ==
+ handler_obj->address_space.space_id) {
+ ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
+ "Found handler for region [%s] in device %p(%p) "
+ "handler %p\n",
+ acpi_ut_get_region_name
+ (handler_obj->address_space.
+ space_id), obj_desc,
+ next_handler_obj,
+ handler_obj));
+
+ /*
+ * Since the object we found it on was a device, then it
+ * means that someone has already installed a handler for
+ * the branch of the namespace from this device on. Just
+ * bail out telling the walk routine to not traverse this
+ * branch. This preserves the scoping rule for handlers.
+ */
+ return (AE_CTRL_DEPTH);
+ }
+
+ /* Walk the linked list of handlers attached to this device */
+
+ next_handler_obj = next_handler_obj->address_space.next;
+ }
+
+ /*
+ * As long as the device didn't have a handler for this space we
+ * don't care about it. We just ignore it and proceed.
+ */
+ return (AE_OK);
+ }
+
+ /* Object is a Region */
+
+ if (obj_desc->region.space_id != handler_obj->address_space.space_id) {
+
+ /* This region is for a different address space, just ignore it */
+
+ return (AE_OK);
+ }
+
+ /*
+ * Now we have a region and it is for the handler's address space type.
+ *
+ * First disconnect region for any previous handler (if any)
+ */
+ acpi_ev_detach_region(obj_desc, FALSE);
+
+ /* Connect the region to the new handler */
+
+ status = acpi_ev_attach_region(handler_obj, obj_desc, FALSE);
+ return (status);
+}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_install_space_handler
+ *
+ * PARAMETERS: node - Namespace node for the device
+ * space_id - The address space ID
+ * handler - Address of the handler
+ * setup - Address of the setup function
+ * context - Value passed to the handler on each access
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Install a handler for all op_regions of a given space_id.
+ * Assumes namespace is locked
+ *
+ ******************************************************************************/
+
+acpi_status
+acpi_ev_install_space_handler(struct acpi_namespace_node * node,
+ acpi_adr_space_type space_id,
+ acpi_adr_space_handler handler,
+ acpi_adr_space_setup setup, void *context)
+{
+ union acpi_operand_object *obj_desc;
+ union acpi_operand_object *handler_obj;
+ acpi_status status;
+ acpi_object_type type;
+ u8 flags = 0;
+
+ ACPI_FUNCTION_TRACE(ev_install_space_handler);
+
+ /*
+ * This registration is valid for only the types below and the root. This
+ * is where the default handlers get placed.
+ */
+ if ((node->type != ACPI_TYPE_DEVICE) &&
+ (node->type != ACPI_TYPE_PROCESSOR) &&
+ (node->type != ACPI_TYPE_THERMAL) && (node != acpi_gbl_root_node)) {
+ status = AE_BAD_PARAMETER;
+ goto unlock_and_exit;
+ }
+
+ if (handler == ACPI_DEFAULT_HANDLER) {
+ flags = ACPI_ADDR_HANDLER_DEFAULT_INSTALLED;
+
+ switch (space_id) {
+ case ACPI_ADR_SPACE_SYSTEM_MEMORY:
+
+ handler = acpi_ex_system_memory_space_handler;
+ setup = acpi_ev_system_memory_region_setup;
+ break;
+
+ case ACPI_ADR_SPACE_SYSTEM_IO:
+
+ handler = acpi_ex_system_io_space_handler;
+ setup = acpi_ev_io_space_region_setup;
+ break;
+
+ case ACPI_ADR_SPACE_PCI_CONFIG:
+
+ handler = acpi_ex_pci_config_space_handler;
+ setup = acpi_ev_pci_config_region_setup;
+ break;
+
+ case ACPI_ADR_SPACE_CMOS:
+
+ handler = acpi_ex_cmos_space_handler;
+ setup = acpi_ev_cmos_region_setup;
+ break;
+
+ case ACPI_ADR_SPACE_PCI_BAR_TARGET:
+
+ handler = acpi_ex_pci_bar_space_handler;
+ setup = acpi_ev_pci_bar_region_setup;
+ break;
+
+ case ACPI_ADR_SPACE_DATA_TABLE:
+
+ handler = acpi_ex_data_table_space_handler;
+ setup = NULL;
+ break;
+
+ default:
+
+ status = AE_BAD_PARAMETER;
+ goto unlock_and_exit;
+ }
+ }
+
+ /* If the caller hasn't specified a setup routine, use the default */
+
+ if (!setup) {
+ setup = acpi_ev_default_region_setup;
+ }
+
+ /* Check for an existing internal object */
+
+ obj_desc = acpi_ns_get_attached_object(node);
+ if (obj_desc) {
+ /*
+ * The attached device object already exists. Make sure the handler
+ * is not already installed.
+ */
+ handler_obj = obj_desc->device.handler;
+
+ /* Walk the handler list for this device */
+
+ while (handler_obj) {
+
+ /* Same space_id indicates a handler already installed */
+
+ if (handler_obj->address_space.space_id == space_id) {
+ if (handler_obj->address_space.handler ==
+ handler) {
+ /*
+ * It is (relatively) OK to attempt to install the SAME
+ * handler twice. This can easily happen with the
+ * PCI_Config space.
+ */
+ status = AE_SAME_HANDLER;
+ goto unlock_and_exit;
+ } else {
+ /* A handler is already installed */
+
+ status = AE_ALREADY_EXISTS;
+ }
+ goto unlock_and_exit;
+ }
+
+ /* Walk the linked list of handlers */
+
+ handler_obj = handler_obj->address_space.next;
+ }
+ } else {
+ ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
+ "Creating object on Device %p while installing handler\n",
+ node));
+
+ /* obj_desc does not exist, create one */
+
+ if (node->type == ACPI_TYPE_ANY) {
+ type = ACPI_TYPE_DEVICE;
+ } else {
+ type = node->type;
+ }
+
+ obj_desc = acpi_ut_create_internal_object(type);
+ if (!obj_desc) {
+ status = AE_NO_MEMORY;
+ goto unlock_and_exit;
+ }
+
+ /* Init new descriptor */
+
+ obj_desc->common.type = (u8)type;
+
+ /* Attach the new object to the Node */
+
+ status = acpi_ns_attach_object(node, obj_desc, type);
+
+ /* Remove local reference to the object */
+
+ acpi_ut_remove_reference(obj_desc);
+
+ if (ACPI_FAILURE(status)) {
+ goto unlock_and_exit;
+ }
+ }
+
+ ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
+ "Installing address handler for region %s(%X) on Device %4.4s %p(%p)\n",
+ acpi_ut_get_region_name(space_id), space_id,
+ acpi_ut_get_node_name(node), node, obj_desc));
+
+ /*
+ * Install the handler
+ *
+ * At this point there is no existing handler. Just allocate the object
+ * for the handler and link it into the list.
+ */
+ handler_obj =
+ acpi_ut_create_internal_object(ACPI_TYPE_LOCAL_ADDRESS_HANDLER);
+ if (!handler_obj) {
+ status = AE_NO_MEMORY;
+ goto unlock_and_exit;
+ }
+
+ /* Init handler obj */
+
+ handler_obj->address_space.space_id = (u8)space_id;
+ handler_obj->address_space.handler_flags = flags;
+ handler_obj->address_space.region_list = NULL;
+ handler_obj->address_space.node = node;
+ handler_obj->address_space.handler = handler;
+ handler_obj->address_space.context = context;
+ handler_obj->address_space.setup = setup;
+
+ /* Install at head of Device.address_space list */
+
+ handler_obj->address_space.next = obj_desc->device.handler;
+
+ /*
+ * The Device object is the first reference on the handler_obj.
+ * Each region that uses the handler adds a reference.
+ */
+ obj_desc->device.handler = handler_obj;
+
+ /*
+ * Walk the namespace finding all of the regions this
+ * handler will manage.
+ *
+ * Start at the device and search the branch toward
+ * the leaf nodes until either the leaf is encountered or
+ * a device is detected that has an address handler of the
+ * same type.
+ *
+ * In either case, back up and search down the remainder
+ * of the branch
+ */
+ status = acpi_ns_walk_namespace(ACPI_TYPE_ANY, node, ACPI_UINT32_MAX,
+ ACPI_NS_WALK_UNLOCK,
+ acpi_ev_install_handler, NULL,
+ handler_obj, NULL);
+
+unlock_and_exit:
+ return_ACPI_STATUS(status);
+}
diff --git a/drivers/acpi/acpica/evmisc.c b/drivers/acpi/acpica/evmisc.c
index 5f893057bcc..24ea3424981 100644
--- a/drivers/acpi/acpica/evmisc.c
+++ b/drivers/acpi/acpica/evmisc.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -45,7 +45,6 @@
#include "accommon.h"
#include "acevents.h"
#include "acnamesp.h"
-#include "acinterp.h"
#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evmisc")
@@ -53,15 +52,11 @@ ACPI_MODULE_NAME("evmisc")
/* Local prototypes */
static void ACPI_SYSTEM_XFACE acpi_ev_notify_dispatch(void *context);
-static u32 acpi_ev_global_lock_handler(void *context);
-
-static acpi_status acpi_ev_remove_global_lock_handler(void);
-
/*******************************************************************************
*
* FUNCTION: acpi_ev_is_notify_object
*
- * PARAMETERS: Node - Node to check
+ * PARAMETERS: node - Node to check
*
* RETURN: TRUE if notifies allowed on this object
*
@@ -83,6 +78,7 @@ u8 acpi_ev_is_notify_object(struct acpi_namespace_node *node)
return (TRUE);
default:
+
return (FALSE);
}
}
@@ -91,7 +87,7 @@ u8 acpi_ev_is_notify_object(struct acpi_namespace_node *node)
*
* FUNCTION: acpi_ev_queue_notify_request
*
- * PARAMETERS: Node - NS node for the notified object
+ * PARAMETERS: node - NS node for the notified object
* notify_value - Value from the Notify() request
*
* RETURN: Status
@@ -106,98 +102,78 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node * node,
u32 notify_value)
{
union acpi_operand_object *obj_desc;
- union acpi_operand_object *handler_obj = NULL;
- union acpi_generic_state *notify_info;
+ union acpi_operand_object *handler_list_head = NULL;
+ union acpi_generic_state *info;
+ u8 handler_list_id = 0;
acpi_status status = AE_OK;
ACPI_FUNCTION_NAME(ev_queue_notify_request);
- /*
- * For value 3 (Ejection Request), some device method may need to be run.
- * For value 2 (Device Wake) if _PRW exists, the _PS0 method may need
- * to be run.
- * For value 0x80 (Status Change) on the power button or sleep button,
- * initiate soft-off or sleep operation?
- */
- ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "Dispatching Notify on [%4.4s] Node %p Value 0x%2.2X (%s)\n",
- acpi_ut_get_node_name(node), node, notify_value,
- acpi_ut_get_notify_name(notify_value)));
-
- /* Get the notify object attached to the NS Node */
+ /* Are Notifies allowed on this object? */
- obj_desc = acpi_ns_get_attached_object(node);
- if (obj_desc) {
-
- /* We have the notify object, Get the right handler */
-
- switch (node->type) {
+ if (!acpi_ev_is_notify_object(node)) {
+ return (AE_TYPE);
+ }
- /* Notify allowed only on these types */
+ /* Get the correct notify list type (System or Device) */
- case ACPI_TYPE_DEVICE:
- case ACPI_TYPE_THERMAL:
- case ACPI_TYPE_PROCESSOR:
+ if (notify_value <= ACPI_MAX_SYS_NOTIFY) {
+ handler_list_id = ACPI_SYSTEM_HANDLER_LIST;
+ } else {
+ handler_list_id = ACPI_DEVICE_HANDLER_LIST;
+ }
- if (notify_value <= ACPI_MAX_SYS_NOTIFY) {
- handler_obj =
- obj_desc->common_notify.system_notify;
- } else {
- handler_obj =
- obj_desc->common_notify.device_notify;
- }
- break;
+ /* Get the notify object attached to the namespace Node */
- default:
+ obj_desc = acpi_ns_get_attached_object(node);
+ if (obj_desc) {
- /* All other types are not supported */
+ /* We have an attached object, Get the correct handler list */
- return (AE_TYPE);
- }
+ handler_list_head =
+ obj_desc->common_notify.notify_list[handler_list_id];
}
/*
- * If there is any handler to run, schedule the dispatcher.
- * Check for:
- * 1) Global system notify handler
- * 2) Global device notify handler
- * 3) Per-device notify handler
+ * If there is no notify handler (Global or Local)
+ * for this object, just ignore the notify
*/
- if ((acpi_gbl_system_notify.handler
- && (notify_value <= ACPI_MAX_SYS_NOTIFY))
- || (acpi_gbl_device_notify.handler
- && (notify_value > ACPI_MAX_SYS_NOTIFY)) || handler_obj) {
- notify_info = acpi_ut_create_generic_state();
- if (!notify_info) {
- return (AE_NO_MEMORY);
- }
+ if (!acpi_gbl_global_notify[handler_list_id].handler
+ && !handler_list_head) {
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "No notify handler for Notify, ignoring (%4.4s, %X) node %p\n",
+ acpi_ut_get_node_name(node), notify_value,
+ node));
- if (!handler_obj) {
- ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "Executing system notify handler for Notify (%4.4s, %X) node %p\n",
- acpi_ut_get_node_name(node),
- notify_value, node));
- }
+ return (AE_OK);
+ }
- notify_info->common.descriptor_type =
- ACPI_DESC_TYPE_STATE_NOTIFY;
- notify_info->notify.node = node;
- notify_info->notify.value = (u16) notify_value;
- notify_info->notify.handler_obj = handler_obj;
+ /* Setup notify info and schedule the notify dispatcher */
- status =
- acpi_os_execute(OSL_NOTIFY_HANDLER, acpi_ev_notify_dispatch,
- notify_info);
- if (ACPI_FAILURE(status)) {
- acpi_ut_delete_generic_state(notify_info);
- }
- } else {
- /* There is no notify handler (per-device or system) for this device */
+ info = acpi_ut_create_generic_state();
+ if (!info) {
+ return (AE_NO_MEMORY);
+ }
- ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "No notify handler for Notify (%4.4s, %X) node %p\n",
- acpi_ut_get_node_name(node), notify_value,
- node));
+ info->common.descriptor_type = ACPI_DESC_TYPE_STATE_NOTIFY;
+
+ info->notify.node = node;
+ info->notify.value = (u16)notify_value;
+ info->notify.handler_list_id = handler_list_id;
+ info->notify.handler_list_head = handler_list_head;
+ info->notify.global = &acpi_gbl_global_notify[handler_list_id];
+
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "Dispatching Notify on [%4.4s] (%s) Value 0x%2.2X (%s) Node %p\n",
+ acpi_ut_get_node_name(node),
+ acpi_ut_get_type_name(node->type), notify_value,
+ acpi_ut_get_notify_name(notify_value, ACPI_TYPE_ANY),
+ node));
+
+ status = acpi_os_execute(OSL_NOTIFY_HANDLER, acpi_ev_notify_dispatch,
+ info);
+ if (ACPI_FAILURE(status)) {
+ acpi_ut_delete_generic_state(info);
}
return (status);
@@ -207,7 +183,7 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node * node,
*
* FUNCTION: acpi_ev_notify_dispatch
*
- * PARAMETERS: Context - To be passed to the notify handler
+ * PARAMETERS: context - To be passed to the notify handler
*
* RETURN: None.
*
@@ -218,339 +194,37 @@ acpi_ev_queue_notify_request(struct acpi_namespace_node * node,
static void ACPI_SYSTEM_XFACE acpi_ev_notify_dispatch(void *context)
{
- union acpi_generic_state *notify_info =
- (union acpi_generic_state *)context;
- acpi_notify_handler global_handler = NULL;
- void *global_context = NULL;
+ union acpi_generic_state *info = (union acpi_generic_state *)context;
union acpi_operand_object *handler_obj;
ACPI_FUNCTION_ENTRY();
- /*
- * We will invoke a global notify handler if installed. This is done
- * _before_ we invoke the per-device handler attached to the device.
- */
- if (notify_info->notify.value <= ACPI_MAX_SYS_NOTIFY) {
-
- /* Global system notification handler */
-
- if (acpi_gbl_system_notify.handler) {
- global_handler = acpi_gbl_system_notify.handler;
- global_context = acpi_gbl_system_notify.context;
- }
- } else {
- /* Global driver notification handler */
-
- if (acpi_gbl_device_notify.handler) {
- global_handler = acpi_gbl_device_notify.handler;
- global_context = acpi_gbl_device_notify.context;
- }
- }
-
- /* Invoke the system handler first, if present */
+ /* Invoke a global notify handler if installed */
- if (global_handler) {
- global_handler(notify_info->notify.node,
- notify_info->notify.value, global_context);
+ if (info->notify.global->handler) {
+ info->notify.global->handler(info->notify.node,
+ info->notify.value,
+ info->notify.global->context);
}
- /* Now invoke the per-device handler, if present */
+ /* Now invoke the local notify handler(s) if any are installed */
- handler_obj = notify_info->notify.handler_obj;
- if (handler_obj) {
- handler_obj->notify.handler(notify_info->notify.node,
- notify_info->notify.value,
+ handler_obj = info->notify.handler_list_head;
+ while (handler_obj) {
+ handler_obj->notify.handler(info->notify.node,
+ info->notify.value,
handler_obj->notify.context);
- }
-
- /* All done with the info object */
-
- acpi_ut_delete_generic_state(notify_info);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_global_lock_handler
- *
- * PARAMETERS: Context - From thread interface, not used
- *
- * RETURN: ACPI_INTERRUPT_HANDLED
- *
- * DESCRIPTION: Invoked directly from the SCI handler when a global lock
- * release interrupt occurs. Attempt to acquire the global lock,
- * if successful, signal the thread waiting for the lock.
- *
- * NOTE: Assumes that the semaphore can be signaled from interrupt level. If
- * this is not possible for some reason, a separate thread will have to be
- * scheduled to do this.
- *
- ******************************************************************************/
-
-static u32 acpi_ev_global_lock_handler(void *context)
-{
- u8 acquired = FALSE;
-
- /*
- * Attempt to get the lock.
- *
- * If we don't get it now, it will be marked pending and we will
- * take another interrupt when it becomes free.
- */
- ACPI_ACQUIRE_GLOBAL_LOCK(acpi_gbl_FACS, acquired);
- if (acquired) {
-
- /* Got the lock, now wake all threads waiting for it */
-
- acpi_gbl_global_lock_acquired = TRUE;
- /* Send a unit to the semaphore */
-
- if (ACPI_FAILURE
- (acpi_os_signal_semaphore
- (acpi_gbl_global_lock_semaphore, 1))) {
- ACPI_ERROR((AE_INFO,
- "Could not signal Global Lock semaphore"));
- }
- }
-
- return (ACPI_INTERRUPT_HANDLED);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_init_global_lock_handler
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Install a handler for the global lock release event
- *
- ******************************************************************************/
-
-acpi_status acpi_ev_init_global_lock_handler(void)
-{
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(ev_init_global_lock_handler);
-
- /* Attempt installation of the global lock handler */
-
- status = acpi_install_fixed_event_handler(ACPI_EVENT_GLOBAL,
- acpi_ev_global_lock_handler,
- NULL);
-
- /*
- * If the global lock does not exist on this platform, the attempt to
- * enable GBL_STATUS will fail (the GBL_ENABLE bit will not stick).
- * Map to AE_OK, but mark global lock as not present. Any attempt to
- * actually use the global lock will be flagged with an error.
- */
- if (status == AE_NO_HARDWARE_RESPONSE) {
- ACPI_ERROR((AE_INFO,
- "No response from Global Lock hardware, disabling lock"));
-
- acpi_gbl_global_lock_present = FALSE;
- return_ACPI_STATUS(AE_OK);
- }
-
- acpi_gbl_global_lock_present = TRUE;
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_remove_global_lock_handler
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove the handler for the Global Lock
- *
- ******************************************************************************/
-
-static acpi_status acpi_ev_remove_global_lock_handler(void)
-{
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(ev_remove_global_lock_handler);
-
- acpi_gbl_global_lock_present = FALSE;
- status = acpi_remove_fixed_event_handler(ACPI_EVENT_GLOBAL,
- acpi_ev_global_lock_handler);
-
- return_ACPI_STATUS(status);
-}
-/******************************************************************************
- *
- * FUNCTION: acpi_ev_acquire_global_lock
- *
- * PARAMETERS: Timeout - Max time to wait for the lock, in millisec.
- *
- * RETURN: Status
- *
- * DESCRIPTION: Attempt to gain ownership of the Global Lock.
- *
- * MUTEX: Interpreter must be locked
- *
- * Note: The original implementation allowed multiple threads to "acquire" the
- * Global Lock, and the OS would hold the lock until the last thread had
- * released it. However, this could potentially starve the BIOS out of the
- * lock, especially in the case where there is a tight handshake between the
- * Embedded Controller driver and the BIOS. Therefore, this implementation
- * allows only one thread to acquire the HW Global Lock at a time, and makes
- * the global lock appear as a standard mutex on the OS side.
- *
- *****************************************************************************/
-static acpi_thread_id acpi_ev_global_lock_thread_id;
-static int acpi_ev_global_lock_acquired;
-
-acpi_status acpi_ev_acquire_global_lock(u16 timeout)
-{
- acpi_status status = AE_OK;
- u8 acquired = FALSE;
-
- ACPI_FUNCTION_TRACE(ev_acquire_global_lock);
-
- /*
- * Only one thread can acquire the GL at a time, the global_lock_mutex
- * enforces this. This interface releases the interpreter if we must wait.
- */
- status = acpi_ex_system_wait_mutex(
- acpi_gbl_global_lock_mutex->mutex.os_mutex, 0);
- if (status == AE_TIME) {
- if (acpi_ev_global_lock_thread_id == acpi_os_get_thread_id()) {
- acpi_ev_global_lock_acquired++;
- return AE_OK;
- }
- }
-
- if (ACPI_FAILURE(status)) {
- status = acpi_ex_system_wait_mutex(
- acpi_gbl_global_lock_mutex->mutex.os_mutex,
- timeout);
- }
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
- acpi_ev_global_lock_thread_id = acpi_os_get_thread_id();
- acpi_ev_global_lock_acquired++;
-
- /*
- * Update the global lock handle and check for wraparound. The handle is
- * only used for the external global lock interfaces, but it is updated
- * here to properly handle the case where a single thread may acquire the
- * lock via both the AML and the acpi_acquire_global_lock interfaces. The
- * handle is therefore updated on the first acquire from a given thread
- * regardless of where the acquisition request originated.
- */
- acpi_gbl_global_lock_handle++;
- if (acpi_gbl_global_lock_handle == 0) {
- acpi_gbl_global_lock_handle = 1;
- }
-
- /*
- * Make sure that a global lock actually exists. If not, just treat the
- * lock as a standard mutex.
- */
- if (!acpi_gbl_global_lock_present) {
- acpi_gbl_global_lock_acquired = TRUE;
- return_ACPI_STATUS(AE_OK);
+ handler_obj =
+ handler_obj->notify.next[info->notify.handler_list_id];
}
- /* Attempt to acquire the actual hardware lock */
-
- ACPI_ACQUIRE_GLOBAL_LOCK(acpi_gbl_FACS, acquired);
- if (acquired) {
-
- /* We got the lock */
-
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
- "Acquired hardware Global Lock\n"));
-
- acpi_gbl_global_lock_acquired = TRUE;
- return_ACPI_STATUS(AE_OK);
- }
-
- /*
- * Did not get the lock. The pending bit was set above, and we must now
- * wait until we get the global lock released interrupt.
- */
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Waiting for hardware Global Lock\n"));
-
- /*
- * Wait for handshake with the global lock interrupt handler.
- * This interface releases the interpreter if we must wait.
- */
- status = acpi_ex_system_wait_semaphore(acpi_gbl_global_lock_semaphore,
- ACPI_WAIT_FOREVER);
-
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_release_global_lock
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Releases ownership of the Global Lock.
- *
- ******************************************************************************/
-
-acpi_status acpi_ev_release_global_lock(void)
-{
- u8 pending = FALSE;
- acpi_status status = AE_OK;
-
- ACPI_FUNCTION_TRACE(ev_release_global_lock);
-
- /* Lock must be already acquired */
-
- if (!acpi_gbl_global_lock_acquired) {
- ACPI_WARNING((AE_INFO,
- "Cannot release the ACPI Global Lock, it has not been acquired"));
- return_ACPI_STATUS(AE_NOT_ACQUIRED);
- }
-
- acpi_ev_global_lock_acquired--;
- if (acpi_ev_global_lock_acquired > 0) {
- return AE_OK;
- }
-
- if (acpi_gbl_global_lock_present) {
-
- /* Allow any thread to release the lock */
-
- ACPI_RELEASE_GLOBAL_LOCK(acpi_gbl_FACS, pending);
-
- /*
- * If the pending bit was set, we must write GBL_RLS to the control
- * register
- */
- if (pending) {
- status =
- acpi_set_register(ACPI_BITREG_GLOBAL_LOCK_RELEASE,
- 1);
- }
-
- ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
- "Released hardware Global Lock\n"));
- }
-
- acpi_gbl_global_lock_acquired = FALSE;
+ /* All done with the info object */
- /* Release the local GL mutex */
- acpi_ev_global_lock_thread_id = NULL;
- acpi_ev_global_lock_acquired = 0;
- acpi_os_release_mutex(acpi_gbl_global_lock_mutex->mutex.os_mutex);
- return_ACPI_STATUS(status);
+ acpi_ut_delete_generic_state(info);
}
+#if (!ACPI_REDUCED_HARDWARE)
/******************************************************************************
*
* FUNCTION: acpi_ev_terminate
@@ -582,7 +256,7 @@ void acpi_ev_terminate(void)
status = acpi_disable_event(i, 0);
if (ACPI_FAILURE(status)) {
ACPI_ERROR((AE_INFO,
- "Could not disable fixed event %d",
+ "Could not disable fixed event %u",
(u32) i));
}
}
@@ -591,18 +265,20 @@ void acpi_ev_terminate(void)
status = acpi_ev_walk_gpe_list(acpi_hw_disable_gpe_block, NULL);
- /* Remove SCI handler */
-
- status = acpi_ev_remove_sci_handler();
- if (ACPI_FAILURE(status)) {
- ACPI_ERROR((AE_INFO, "Could not remove SCI handler"));
- }
-
status = acpi_ev_remove_global_lock_handler();
if (ACPI_FAILURE(status)) {
ACPI_ERROR((AE_INFO,
"Could not remove Global Lock handler"));
}
+
+ acpi_gbl_events_initialized = FALSE;
+ }
+
+ /* Remove SCI handlers */
+
+ status = acpi_ev_remove_all_sci_handlers();
+ if (ACPI_FAILURE(status)) {
+ ACPI_ERROR((AE_INFO, "Could not remove SCI handler"));
}
/* Deallocate all handler objects installed within GPE info structs */
@@ -619,3 +295,5 @@ void acpi_ev_terminate(void)
}
return_VOID;
}
+
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evregion.c b/drivers/acpi/acpica/evregion.c
index 665c0887ab4..9957297d158 100644
--- a/drivers/acpi/acpica/evregion.c
+++ b/drivers/acpi/acpica/evregion.c
@@ -1,11 +1,11 @@
/******************************************************************************
*
- * Module Name: evregion - ACPI address_space (op_region) handler dispatch
+ * Module Name: evregion - Operation Region support
*
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -50,96 +50,17 @@
#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evregion")
+extern u8 acpi_gbl_default_address_spaces[];
+
/* Local prototypes */
+
+static void
+acpi_ev_orphan_ec_reg_method(struct acpi_namespace_node *ec_device_node);
+
static acpi_status
acpi_ev_reg_run(acpi_handle obj_handle,
u32 level, void *context, void **return_value);
-static acpi_status
-acpi_ev_install_handler(acpi_handle obj_handle,
- u32 level, void *context, void **return_value);
-
-/* These are the address spaces that will get default handlers */
-
-#define ACPI_NUM_DEFAULT_SPACES 4
-
-static u8 acpi_gbl_default_address_spaces[ACPI_NUM_DEFAULT_SPACES] = {
- ACPI_ADR_SPACE_SYSTEM_MEMORY,
- ACPI_ADR_SPACE_SYSTEM_IO,
- ACPI_ADR_SPACE_PCI_CONFIG,
- ACPI_ADR_SPACE_DATA_TABLE
-};
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_install_region_handlers
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Installs the core subsystem default address space handlers.
- *
- ******************************************************************************/
-
-acpi_status acpi_ev_install_region_handlers(void)
-{
- acpi_status status;
- u32 i;
-
- ACPI_FUNCTION_TRACE(ev_install_region_handlers);
-
- status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
- /*
- * All address spaces (PCI Config, EC, SMBus) are scope dependent and
- * registration must occur for a specific device.
- *
- * In the case of the system memory and IO address spaces there is
- * currently no device associated with the address space. For these we
- * use the root.
- *
- * We install the default PCI config space handler at the root so that
- * this space is immediately available even though the we have not
- * enumerated all the PCI Root Buses yet. This is to conform to the ACPI
- * specification which states that the PCI config space must be always
- * available -- even though we are nowhere near ready to find the PCI root
- * buses at this point.
- *
- * NOTE: We ignore AE_ALREADY_EXISTS because this means that a handler
- * has already been installed (via acpi_install_address_space_handler).
- * Similar for AE_SAME_HANDLER.
- */
- for (i = 0; i < ACPI_NUM_DEFAULT_SPACES; i++) {
- status = acpi_ev_install_space_handler(acpi_gbl_root_node,
- acpi_gbl_default_address_spaces
- [i],
- ACPI_DEFAULT_HANDLER,
- NULL, NULL);
- switch (status) {
- case AE_OK:
- case AE_SAME_HANDLER:
- case AE_ALREADY_EXISTS:
-
- /* These exceptions are all OK */
-
- status = AE_OK;
- break;
-
- default:
-
- goto unlock_and_exit;
- }
- }
-
- unlock_and_exit:
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS(status);
-}
-
/*******************************************************************************
*
* FUNCTION: acpi_ev_initialize_op_regions
@@ -169,103 +90,23 @@ acpi_status acpi_ev_initialize_op_regions(void)
for (i = 0; i < ACPI_NUM_DEFAULT_SPACES; i++) {
/*
- * TBD: Make sure handler is the DEFAULT handler, otherwise
- * _REG will have already been run.
+ * Make sure the installed handler is the DEFAULT handler. If not the
+ * default, the _REG methods will have already been run (when the
+ * handler was installed)
*/
- status = acpi_ev_execute_reg_methods(acpi_gbl_root_node,
- acpi_gbl_default_address_spaces
- [i]);
- }
-
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS(status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_execute_reg_method
- *
- * PARAMETERS: region_obj - Region object
- * Function - Passed to _REG: On (1) or Off (0)
- *
- * RETURN: Status
- *
- * DESCRIPTION: Execute _REG method for a region
- *
- ******************************************************************************/
-
-acpi_status
-acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function)
-{
- struct acpi_evaluate_info *info;
- union acpi_operand_object *args[3];
- union acpi_operand_object *region_obj2;
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(ev_execute_reg_method);
-
- region_obj2 = acpi_ns_get_secondary_object(region_obj);
- if (!region_obj2) {
- return_ACPI_STATUS(AE_NOT_EXIST);
- }
-
- if (region_obj2->extra.method_REG == NULL) {
- return_ACPI_STATUS(AE_OK);
- }
-
- /* Allocate and initialize the evaluation information block */
-
- info = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_evaluate_info));
- if (!info) {
- return_ACPI_STATUS(AE_NO_MEMORY);
- }
-
- info->prefix_node = region_obj2->extra.method_REG;
- info->pathname = NULL;
- info->parameters = args;
- info->flags = ACPI_IGNORE_RETURN_VALUE;
-
- /*
- * The _REG method has two arguments:
- *
- * Arg0 - Integer:
- * Operation region space ID Same value as region_obj->Region.space_id
- *
- * Arg1 - Integer:
- * connection status 1 for connecting the handler, 0 for disconnecting
- * the handler (Passed as a parameter)
- */
- args[0] = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
- if (!args[0]) {
- status = AE_NO_MEMORY;
- goto cleanup1;
- }
-
- args[1] = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
- if (!args[1]) {
- status = AE_NO_MEMORY;
- goto cleanup2;
+ if (acpi_ev_has_default_handler(acpi_gbl_root_node,
+ acpi_gbl_default_address_spaces
+ [i])) {
+ status =
+ acpi_ev_execute_reg_methods(acpi_gbl_root_node,
+ acpi_gbl_default_address_spaces
+ [i]);
+ }
}
- /* Setup the parameter objects */
+ acpi_gbl_reg_methods_executed = TRUE;
- args[0]->integer.value = region_obj->region.space_id;
- args[1]->integer.value = function;
- args[2] = NULL;
-
- /* Execute the method, no return value */
-
- ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname
- (ACPI_TYPE_METHOD, info->prefix_node, NULL));
-
- status = acpi_ns_evaluate(info);
- acpi_ut_remove_reference(args[1]);
-
- cleanup2:
- acpi_ut_remove_reference(args[0]);
-
- cleanup1:
- ACPI_FREE(info);
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
return_ACPI_STATUS(status);
}
@@ -274,11 +115,12 @@ acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function)
* FUNCTION: acpi_ev_address_space_dispatch
*
* PARAMETERS: region_obj - Internal region object
- * Function - Read or Write operation
- * Address - Where in the space to read or write
+ * field_obj - Corresponding field. Can be NULL.
+ * function - Read or Write operation
+ * region_offset - Where in the region to read or write
* bit_width - Field width in bits (8, 16, 32, or 64)
- * Value - Pointer to in or out value, must be
- * full 64-bit acpi_integer
+ * value - Pointer to in or out value, must be
+ * a full 64-bit integer
*
* RETURN: Status
*
@@ -289,9 +131,9 @@ acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function)
acpi_status
acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
+ union acpi_operand_object *field_obj,
u32 function,
- acpi_physical_address address,
- u32 bit_width, acpi_integer * value)
+ u32 region_offset, u32 bit_width, u64 *value)
{
acpi_status status;
acpi_adr_space_handler handler;
@@ -299,6 +141,7 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
union acpi_operand_object *handler_desc;
union acpi_operand_object *region_obj2;
void *region_context = NULL;
+ struct acpi_connection_info *context;
ACPI_FUNCTION_TRACE(ev_address_space_dispatch);
@@ -321,6 +164,8 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
return_ACPI_STATUS(AE_NOT_EXIST);
}
+ context = handler_desc->address_space.context;
+
/*
* It may be the case that the region has never been initialized.
* Some types of regions require special init code
@@ -350,8 +195,7 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
acpi_ex_exit_interpreter();
status = region_setup(region_obj, ACPI_REGION_ACTIVATE,
- handler_desc->address_space.context,
- &region_context);
+ context, &region_context);
/* Re-enter the interpreter */
@@ -373,16 +217,11 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
if (!(region_obj->region.flags & AOPOBJ_SETUP_COMPLETE)) {
region_obj->region.flags |= AOPOBJ_SETUP_COMPLETE;
- if (region_obj2->extra.region_context) {
-
- /* The handler for this region was already installed */
-
- ACPI_FREE(region_context);
- } else {
- /*
- * Save the returned context for use in all accesses to
- * this particular region
- */
+ /*
+ * Save the returned context for use in all accesses to
+ * the handler for this particular region
+ */
+ if (!(region_obj2->extra.region_context)) {
region_obj2->extra.region_context =
region_context;
}
@@ -396,10 +235,30 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
"Handler %p (@%p) Address %8.8X%8.8X [%s]\n",
&region_obj->region.handler->address_space, handler,
- ACPI_FORMAT_NATIVE_UINT(address),
+ ACPI_FORMAT_NATIVE_UINT(region_obj->region.address +
+ region_offset),
acpi_ut_get_region_name(region_obj->region.
space_id)));
+ /*
+ * Special handling for generic_serial_bus and general_purpose_io:
+ * There are three extra parameters that must be passed to the
+ * handler via the context:
+ * 1) Connection buffer, a resource template from Connection() op.
+ * 2) Length of the above buffer.
+ * 3) Actual access length from the access_as() op.
+ */
+ if (((region_obj->region.space_id == ACPI_ADR_SPACE_GSBUS) ||
+ (region_obj->region.space_id == ACPI_ADR_SPACE_GPIO)) &&
+ context && field_obj) {
+
+ /* Get the Connection (resource_template) buffer */
+
+ context->connection = field_obj->field.resource_buffer;
+ context->length = field_obj->field.resource_length;
+ context->access_length = field_obj->field.access_length;
+ }
+
if (!(handler_desc->address_space.handler_flags &
ACPI_ADDR_HANDLER_DEFAULT_INSTALLED)) {
/*
@@ -412,8 +271,9 @@ acpi_ev_address_space_dispatch(union acpi_operand_object *region_obj,
/* Call the handler */
- status = handler(function, address, bit_width, value,
- handler_desc->address_space.context,
+ status = handler(function,
+ (region_obj->region.address + region_offset),
+ bit_width, value, context,
region_obj2->extra.region_context);
if (ACPI_FAILURE(status)) {
@@ -454,6 +314,7 @@ acpi_ev_detach_region(union acpi_operand_object *region_obj,
{
union acpi_operand_object *handler_obj;
union acpi_operand_object *obj_desc;
+ union acpi_operand_object *start_desc;
union acpi_operand_object **last_obj_ptr;
acpi_adr_space_setup region_setup;
void **region_context;
@@ -481,6 +342,7 @@ acpi_ev_detach_region(union acpi_operand_object *region_obj,
/* Find this region in the handler's list */
obj_desc = handler_obj->address_space.region_list;
+ start_desc = obj_desc;
last_obj_ptr = &handler_obj->address_space.region_list;
while (obj_desc) {
@@ -507,7 +369,9 @@ acpi_ev_detach_region(union acpi_operand_object *region_obj,
/* Now stop region accesses by executing the _REG method */
- status = acpi_ev_execute_reg_method(region_obj, 0);
+ status =
+ acpi_ev_execute_reg_method(region_obj,
+ ACPI_REG_DISCONNECT);
if (ACPI_FAILURE(status)) {
ACPI_EXCEPTION((AE_INFO, status,
"from region _REG, [%s]",
@@ -535,6 +399,14 @@ acpi_ev_detach_region(union acpi_operand_object *region_obj,
handler_obj->address_space.
context, region_context);
+ /*
+ * region_context should have been released by the deactivate
+ * operation. We don't need access to it anymore here.
+ */
+ if (region_context) {
+ *region_context = NULL;
+ }
+
/* Init routine may fail, Just ignore errors */
if (ACPI_FAILURE(status)) {
@@ -568,6 +440,15 @@ acpi_ev_detach_region(union acpi_operand_object *region_obj,
last_obj_ptr = &obj_desc->region.next;
obj_desc = obj_desc->region.next;
+
+ /* Prevent infinite loop if list is corrupted */
+
+ if (obj_desc == start_desc) {
+ ACPI_ERROR((AE_INFO,
+ "Circular handler list in region object %p",
+ region_obj));
+ return_VOID;
+ }
}
/* If we get here, the region was not in the handler's region list */
@@ -628,350 +509,86 @@ acpi_ev_attach_region(union acpi_operand_object *handler_obj,
/*******************************************************************************
*
- * FUNCTION: acpi_ev_install_handler
- *
- * PARAMETERS: walk_namespace callback
- *
- * DESCRIPTION: This routine installs an address handler into objects that are
- * of type Region or Device.
- *
- * If the Object is a Device, and the device has a handler of
- * the same type then the search is terminated in that branch.
- *
- * This is because the existing handler is closer in proximity
- * to any more regions than the one we are trying to install.
- *
- ******************************************************************************/
-
-static acpi_status
-acpi_ev_install_handler(acpi_handle obj_handle,
- u32 level, void *context, void **return_value)
-{
- union acpi_operand_object *handler_obj;
- union acpi_operand_object *next_handler_obj;
- union acpi_operand_object *obj_desc;
- struct acpi_namespace_node *node;
- acpi_status status;
-
- ACPI_FUNCTION_NAME(ev_install_handler);
-
- handler_obj = (union acpi_operand_object *)context;
-
- /* Parameter validation */
-
- if (!handler_obj) {
- return (AE_OK);
- }
-
- /* Convert and validate the device handle */
-
- node = acpi_ns_map_handle_to_node(obj_handle);
- if (!node) {
- return (AE_BAD_PARAMETER);
- }
-
- /*
- * We only care about regions and objects that are allowed to have
- * address space handlers
- */
- if ((node->type != ACPI_TYPE_DEVICE) &&
- (node->type != ACPI_TYPE_REGION) && (node != acpi_gbl_root_node)) {
- return (AE_OK);
- }
-
- /* Check for an existing internal object */
-
- obj_desc = acpi_ns_get_attached_object(node);
- if (!obj_desc) {
-
- /* No object, just exit */
-
- return (AE_OK);
- }
-
- /* Devices are handled different than regions */
-
- if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_DEVICE) {
-
- /* Check if this Device already has a handler for this address space */
-
- next_handler_obj = obj_desc->device.handler;
- while (next_handler_obj) {
-
- /* Found a handler, is it for the same address space? */
-
- if (next_handler_obj->address_space.space_id ==
- handler_obj->address_space.space_id) {
- ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
- "Found handler for region [%s] in device %p(%p) handler %p\n",
- acpi_ut_get_region_name
- (handler_obj->address_space.
- space_id), obj_desc,
- next_handler_obj,
- handler_obj));
-
- /*
- * Since the object we found it on was a device, then it
- * means that someone has already installed a handler for
- * the branch of the namespace from this device on. Just
- * bail out telling the walk routine to not traverse this
- * branch. This preserves the scoping rule for handlers.
- */
- return (AE_CTRL_DEPTH);
- }
-
- /* Walk the linked list of handlers attached to this device */
-
- next_handler_obj = next_handler_obj->address_space.next;
- }
-
- /*
- * As long as the device didn't have a handler for this space we
- * don't care about it. We just ignore it and proceed.
- */
- return (AE_OK);
- }
-
- /* Object is a Region */
-
- if (obj_desc->region.space_id != handler_obj->address_space.space_id) {
-
- /* This region is for a different address space, just ignore it */
-
- return (AE_OK);
- }
-
- /*
- * Now we have a region and it is for the handler's address space type.
- *
- * First disconnect region for any previous handler (if any)
- */
- acpi_ev_detach_region(obj_desc, FALSE);
-
- /* Connect the region to the new handler */
-
- status = acpi_ev_attach_region(handler_obj, obj_desc, FALSE);
- return (status);
-}
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_install_space_handler
+ * FUNCTION: acpi_ev_execute_reg_method
*
- * PARAMETERS: Node - Namespace node for the device
- * space_id - The address space ID
- * Handler - Address of the handler
- * Setup - Address of the setup function
- * Context - Value passed to the handler on each access
+ * PARAMETERS: region_obj - Region object
+ * function - Passed to _REG: On (1) or Off (0)
*
* RETURN: Status
*
- * DESCRIPTION: Install a handler for all op_regions of a given space_id.
- * Assumes namespace is locked
+ * DESCRIPTION: Execute _REG method for a region
*
******************************************************************************/
acpi_status
-acpi_ev_install_space_handler(struct acpi_namespace_node * node,
- acpi_adr_space_type space_id,
- acpi_adr_space_handler handler,
- acpi_adr_space_setup setup, void *context)
+acpi_ev_execute_reg_method(union acpi_operand_object *region_obj, u32 function)
{
- union acpi_operand_object *obj_desc;
- union acpi_operand_object *handler_obj;
+ struct acpi_evaluate_info *info;
+ union acpi_operand_object *args[3];
+ union acpi_operand_object *region_obj2;
acpi_status status;
- acpi_object_type type;
- u8 flags = 0;
-
- ACPI_FUNCTION_TRACE(ev_install_space_handler);
- /*
- * This registration is valid for only the types below and the root. This
- * is where the default handlers get placed.
- */
- if ((node->type != ACPI_TYPE_DEVICE) &&
- (node->type != ACPI_TYPE_PROCESSOR) &&
- (node->type != ACPI_TYPE_THERMAL) && (node != acpi_gbl_root_node)) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
+ ACPI_FUNCTION_TRACE(ev_execute_reg_method);
- if (handler == ACPI_DEFAULT_HANDLER) {
- flags = ACPI_ADDR_HANDLER_DEFAULT_INSTALLED;
-
- switch (space_id) {
- case ACPI_ADR_SPACE_SYSTEM_MEMORY:
- handler = acpi_ex_system_memory_space_handler;
- setup = acpi_ev_system_memory_region_setup;
- break;
-
- case ACPI_ADR_SPACE_SYSTEM_IO:
- handler = acpi_ex_system_io_space_handler;
- setup = acpi_ev_io_space_region_setup;
- break;
-
- case ACPI_ADR_SPACE_PCI_CONFIG:
- handler = acpi_ex_pci_config_space_handler;
- setup = acpi_ev_pci_config_region_setup;
- break;
-
- case ACPI_ADR_SPACE_CMOS:
- handler = acpi_ex_cmos_space_handler;
- setup = acpi_ev_cmos_region_setup;
- break;
-
- case ACPI_ADR_SPACE_PCI_BAR_TARGET:
- handler = acpi_ex_pci_bar_space_handler;
- setup = acpi_ev_pci_bar_region_setup;
- break;
-
- case ACPI_ADR_SPACE_DATA_TABLE:
- handler = acpi_ex_data_table_space_handler;
- setup = NULL;
- break;
-
- default:
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
+ region_obj2 = acpi_ns_get_secondary_object(region_obj);
+ if (!region_obj2) {
+ return_ACPI_STATUS(AE_NOT_EXIST);
}
- /* If the caller hasn't specified a setup routine, use the default */
-
- if (!setup) {
- setup = acpi_ev_default_region_setup;
+ if (region_obj2->extra.method_REG == NULL) {
+ return_ACPI_STATUS(AE_OK);
}
- /* Check for an existing internal object */
-
- obj_desc = acpi_ns_get_attached_object(node);
- if (obj_desc) {
- /*
- * The attached device object already exists. Make sure the handler
- * is not already installed.
- */
- handler_obj = obj_desc->device.handler;
-
- /* Walk the handler list for this device */
-
- while (handler_obj) {
-
- /* Same space_id indicates a handler already installed */
-
- if (handler_obj->address_space.space_id == space_id) {
- if (handler_obj->address_space.handler ==
- handler) {
- /*
- * It is (relatively) OK to attempt to install the SAME
- * handler twice. This can easily happen with the
- * PCI_Config space.
- */
- status = AE_SAME_HANDLER;
- goto unlock_and_exit;
- } else {
- /* A handler is already installed */
-
- status = AE_ALREADY_EXISTS;
- }
- goto unlock_and_exit;
- }
-
- /* Walk the linked list of handlers */
-
- handler_obj = handler_obj->address_space.next;
- }
- } else {
- ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
- "Creating object on Device %p while installing handler\n",
- node));
-
- /* obj_desc does not exist, create one */
-
- if (node->type == ACPI_TYPE_ANY) {
- type = ACPI_TYPE_DEVICE;
- } else {
- type = node->type;
- }
-
- obj_desc = acpi_ut_create_internal_object(type);
- if (!obj_desc) {
- status = AE_NO_MEMORY;
- goto unlock_and_exit;
- }
-
- /* Init new descriptor */
-
- obj_desc->common.type = (u8) type;
-
- /* Attach the new object to the Node */
-
- status = acpi_ns_attach_object(node, obj_desc, type);
-
- /* Remove local reference to the object */
-
- acpi_ut_remove_reference(obj_desc);
+ /* Allocate and initialize the evaluation information block */
- if (ACPI_FAILURE(status)) {
- goto unlock_and_exit;
- }
+ info = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_evaluate_info));
+ if (!info) {
+ return_ACPI_STATUS(AE_NO_MEMORY);
}
- ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
- "Installing address handler for region %s(%X) on Device %4.4s %p(%p)\n",
- acpi_ut_get_region_name(space_id), space_id,
- acpi_ut_get_node_name(node), node, obj_desc));
+ info->prefix_node = region_obj2->extra.method_REG;
+ info->relative_pathname = NULL;
+ info->parameters = args;
+ info->flags = ACPI_IGNORE_RETURN_VALUE;
/*
- * Install the handler
+ * The _REG method has two arguments:
+ *
+ * arg0 - Integer:
+ * Operation region space ID Same value as region_obj->Region.space_id
*
- * At this point there is no existing handler. Just allocate the object
- * for the handler and link it into the list.
+ * arg1 - Integer:
+ * connection status 1 for connecting the handler, 0 for disconnecting
+ * the handler (Passed as a parameter)
*/
- handler_obj =
- acpi_ut_create_internal_object(ACPI_TYPE_LOCAL_ADDRESS_HANDLER);
- if (!handler_obj) {
+ args[0] =
+ acpi_ut_create_integer_object((u64)region_obj->region.space_id);
+ if (!args[0]) {
status = AE_NO_MEMORY;
- goto unlock_and_exit;
+ goto cleanup1;
}
- /* Init handler obj */
+ args[1] = acpi_ut_create_integer_object((u64)function);
+ if (!args[1]) {
+ status = AE_NO_MEMORY;
+ goto cleanup2;
+ }
- handler_obj->address_space.space_id = (u8) space_id;
- handler_obj->address_space.handler_flags = flags;
- handler_obj->address_space.region_list = NULL;
- handler_obj->address_space.node = node;
- handler_obj->address_space.handler = handler;
- handler_obj->address_space.context = context;
- handler_obj->address_space.setup = setup;
+ args[2] = NULL; /* Terminate list */
- /* Install at head of Device.address_space list */
+ /* Execute the method, no return value */
- handler_obj->address_space.next = obj_desc->device.handler;
+ ACPI_DEBUG_EXEC(acpi_ut_display_init_pathname
+ (ACPI_TYPE_METHOD, info->prefix_node, NULL));
- /*
- * The Device object is the first reference on the handler_obj.
- * Each region that uses the handler adds a reference.
- */
- obj_desc->device.handler = handler_obj;
+ status = acpi_ns_evaluate(info);
+ acpi_ut_remove_reference(args[1]);
- /*
- * Walk the namespace finding all of the regions this
- * handler will manage.
- *
- * Start at the device and search the branch toward
- * the leaf nodes until either the leaf is encountered or
- * a device is detected that has an address handler of the
- * same type.
- *
- * In either case, back up and search down the remainder
- * of the branch
- */
- status = acpi_ns_walk_namespace(ACPI_TYPE_ANY, node, ACPI_UINT32_MAX,
- ACPI_NS_WALK_UNLOCK,
- acpi_ev_install_handler, handler_obj,
- NULL);
+cleanup2:
+ acpi_ut_remove_reference(args[0]);
- unlock_and_exit:
+cleanup1:
+ ACPI_FREE(info);
return_ACPI_STATUS(status);
}
@@ -979,7 +596,7 @@ acpi_ev_install_space_handler(struct acpi_namespace_node * node,
*
* FUNCTION: acpi_ev_execute_reg_methods
*
- * PARAMETERS: Node - Namespace node for the device
+ * PARAMETERS: node - Namespace node for the device
* space_id - The address space ID
*
* RETURN: Status
@@ -1005,7 +622,13 @@ acpi_ev_execute_reg_methods(struct acpi_namespace_node *node,
*/
status = acpi_ns_walk_namespace(ACPI_TYPE_ANY, node, ACPI_UINT32_MAX,
ACPI_NS_WALK_UNLOCK, acpi_ev_reg_run,
- &space_id, NULL);
+ NULL, &space_id, NULL);
+
+ /* Special case for EC: handle "orphan" _REG methods with no region */
+
+ if (space_id == ACPI_ADR_SPACE_EC) {
+ acpi_ev_orphan_ec_reg_method(node);
+ }
return_ACPI_STATUS(status);
}
@@ -1016,7 +639,7 @@ acpi_ev_execute_reg_methods(struct acpi_namespace_node *node,
*
* PARAMETERS: walk_namespace callback
*
- * DESCRIPTION: Run _REG method for region objects of the requested space_iD
+ * DESCRIPTION: Run _REG method for region objects of the requested spaceID
*
******************************************************************************/
@@ -1033,7 +656,7 @@ acpi_ev_reg_run(acpi_handle obj_handle,
/* Convert and validate the device handle */
- node = acpi_ns_map_handle_to_node(obj_handle);
+ node = acpi_ns_validate_handle(obj_handle);
if (!node) {
return (AE_BAD_PARAMETER);
}
@@ -1065,6 +688,93 @@ acpi_ev_reg_run(acpi_handle obj_handle,
return (AE_OK);
}
- status = acpi_ev_execute_reg_method(obj_desc, 1);
+ status = acpi_ev_execute_reg_method(obj_desc, ACPI_REG_CONNECT);
return (status);
}
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ev_orphan_ec_reg_method
+ *
+ * PARAMETERS: ec_device_node - Namespace node for an EC device
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Execute an "orphan" _REG method that appears under the EC
+ * device. This is a _REG method that has no corresponding region
+ * within the EC device scope. The orphan _REG method appears to
+ * have been enabled by the description of the ECDT in the ACPI
+ * specification: "The availability of the region space can be
+ * detected by providing a _REG method object underneath the
+ * Embedded Controller device."
+ *
+ * To quickly access the EC device, we use the ec_device_node used
+ * during EC handler installation. Otherwise, we would need to
+ * perform a time consuming namespace walk, executing _HID
+ * methods to find the EC device.
+ *
+ * MUTEX: Assumes the namespace is locked
+ *
+ ******************************************************************************/
+
+static void
+acpi_ev_orphan_ec_reg_method(struct acpi_namespace_node *ec_device_node)
+{
+ acpi_handle reg_method;
+ struct acpi_namespace_node *next_node;
+ acpi_status status;
+ struct acpi_object_list args;
+ union acpi_object objects[2];
+
+ ACPI_FUNCTION_TRACE(ev_orphan_ec_reg_method);
+
+ if (!ec_device_node) {
+ return_VOID;
+ }
+
+ /* Namespace is currently locked, must release */
+
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
+
+ /* Get a handle to a _REG method immediately under the EC device */
+
+ status = acpi_get_handle(ec_device_node, METHOD_NAME__REG, &reg_method);
+ if (ACPI_FAILURE(status)) {
+ goto exit; /* There is no _REG method present */
+ }
+
+ /*
+ * Execute the _REG method only if there is no Operation Region in
+ * this scope with the Embedded Controller space ID. Otherwise, it
+ * will already have been executed. Note, this allows for Regions
+ * with other space IDs to be present; but the code below will then
+ * execute the _REG method with the embedded_control space_ID argument.
+ */
+ next_node = acpi_ns_get_next_node(ec_device_node, NULL);
+ while (next_node) {
+ if ((next_node->type == ACPI_TYPE_REGION) &&
+ (next_node->object) &&
+ (next_node->object->region.space_id == ACPI_ADR_SPACE_EC)) {
+ goto exit; /* Do not execute the _REG */
+ }
+
+ next_node = acpi_ns_get_next_node(ec_device_node, next_node);
+ }
+
+ /* Evaluate the _REG(embedded_control,Connect) method */
+
+ args.count = 2;
+ args.pointer = objects;
+ objects[0].type = ACPI_TYPE_INTEGER;
+ objects[0].integer.value = ACPI_ADR_SPACE_EC;
+ objects[1].type = ACPI_TYPE_INTEGER;
+ objects[1].integer.value = ACPI_REG_CONNECT;
+
+ status = acpi_evaluate_object(reg_method, NULL, &args, NULL);
+
+exit:
+ /* We ignore all errors from above, don't care */
+
+ status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
+ return_VOID;
+}
diff --git a/drivers/acpi/acpica/evrgnini.c b/drivers/acpi/acpica/evrgnini.c
index f3f1fb45c3d..1b148a440d6 100644
--- a/drivers/acpi/acpica/evrgnini.c
+++ b/drivers/acpi/acpica/evrgnini.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -50,16 +50,14 @@
ACPI_MODULE_NAME("evrgnini")
/* Local prototypes */
-static u8 acpi_ev_match_pci_root_bridge(char *id);
-
static u8 acpi_ev_is_pci_root_bridge(struct acpi_namespace_node *node);
/*******************************************************************************
*
* FUNCTION: acpi_ev_system_memory_region_setup
*
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
+ * PARAMETERS: handle - Region we are interested in
+ * function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
*
@@ -120,8 +118,8 @@ acpi_ev_system_memory_region_setup(acpi_handle handle,
*
* FUNCTION: acpi_ev_io_space_region_setup
*
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
+ * PARAMETERS: handle - Region we are interested in
+ * function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
*
@@ -151,8 +149,8 @@ acpi_ev_io_space_region_setup(acpi_handle handle,
*
* FUNCTION: acpi_ev_pci_config_region_setup
*
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
+ * PARAMETERS: handle - Region we are interested in
+ * function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
*
@@ -170,7 +168,7 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
void *handler_context, void **region_context)
{
acpi_status status = AE_OK;
- acpi_integer pci_value;
+ u64 pci_value;
struct acpi_pci_id *pci_id = *region_context;
union acpi_operand_object *handler_obj;
struct acpi_namespace_node *parent_node;
@@ -201,7 +199,7 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
return_ACPI_STATUS(status);
}
- parent_node = acpi_ns_get_parent_node(region_obj->region.node);
+ parent_node = region_obj->region.node->parent;
/*
* Get the _SEG and _BBN values from the device upon which the handler
@@ -229,8 +227,7 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
/* Install a handler for this PCI root bridge */
- status =
- acpi_install_address_space_handler((acpi_handle) pci_root_node, ACPI_ADR_SPACE_PCI_CONFIG, ACPI_DEFAULT_HANDLER, NULL, NULL);
+ status = acpi_install_address_space_handler((acpi_handle) pci_root_node, ACPI_ADR_SPACE_PCI_CONFIG, ACPI_DEFAULT_HANDLER, NULL, NULL);
if (ACPI_FAILURE(status)) {
if (status == AE_SAME_HANDLER) {
/*
@@ -241,7 +238,8 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
status = AE_OK;
} else {
ACPI_EXCEPTION((AE_INFO, status,
- "Could not install PciConfig handler for Root Bridge %4.4s",
+ "Could not install PciConfig handler "
+ "for Root Bridge %4.4s",
acpi_ut_get_node_name
(pci_root_node)));
}
@@ -249,7 +247,7 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
break;
}
- pci_root_node = acpi_ns_get_parent_node(pci_root_node);
+ pci_root_node = pci_root_node->parent;
}
/* PCI root bridge not found, use namespace root node */
@@ -281,7 +279,7 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
*/
pci_device_node = region_obj->region.node;
while (pci_device_node && (pci_device_node->type != ACPI_TYPE_DEVICE)) {
- pci_device_node = acpi_ns_get_parent_node(pci_device_node);
+ pci_device_node = pci_device_node->parent;
}
if (!pci_device_node) {
@@ -290,12 +288,11 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
}
/*
- * Get the PCI device and function numbers from the _ADR object contained
- * in the parent's scope.
+ * Get the PCI device and function numbers from the _ADR object
+ * contained in the parent's scope.
*/
- status =
- acpi_ut_evaluate_numeric_object(METHOD_NAME__ADR, pci_device_node,
- &pci_value);
+ status = acpi_ut_evaluate_numeric_object(METHOD_NAME__ADR,
+ pci_device_node, &pci_value);
/*
* The default is zero, and since the allocation above zeroed the data,
@@ -308,25 +305,29 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
/* The PCI segment number comes from the _SEG method */
- status =
- acpi_ut_evaluate_numeric_object(METHOD_NAME__SEG, pci_root_node,
- &pci_value);
+ status = acpi_ut_evaluate_numeric_object(METHOD_NAME__SEG,
+ pci_root_node, &pci_value);
if (ACPI_SUCCESS(status)) {
pci_id->segment = ACPI_LOWORD(pci_value);
}
/* The PCI bus number comes from the _BBN method */
- status =
- acpi_ut_evaluate_numeric_object(METHOD_NAME__BBN, pci_root_node,
- &pci_value);
+ status = acpi_ut_evaluate_numeric_object(METHOD_NAME__BBN,
+ pci_root_node, &pci_value);
if (ACPI_SUCCESS(status)) {
pci_id->bus = ACPI_LOWORD(pci_value);
}
- /* Complete this device's pci_id */
+ /* Complete/update the PCI ID for this device */
- acpi_os_derive_pci_id(pci_root_node, region_obj->region.node, &pci_id);
+ status =
+ acpi_hw_derive_pci_id(pci_id, pci_root_node,
+ region_obj->region.node);
+ if (ACPI_FAILURE(status)) {
+ ACPI_FREE(pci_id);
+ return_ACPI_STATUS(status);
+ }
*region_context = pci_id;
return_ACPI_STATUS(AE_OK);
@@ -334,40 +335,9 @@ acpi_ev_pci_config_region_setup(acpi_handle handle,
/*******************************************************************************
*
- * FUNCTION: acpi_ev_match_pci_root_bridge
- *
- * PARAMETERS: Id - The HID/CID in string format
- *
- * RETURN: TRUE if the Id is a match for a PCI/PCI-Express Root Bridge
- *
- * DESCRIPTION: Determine if the input ID is a PCI Root Bridge ID.
- *
- ******************************************************************************/
-
-static u8 acpi_ev_match_pci_root_bridge(char *id)
-{
-
- /*
- * Check if this is a PCI root.
- * ACPI 3.0+: check for a PCI Express root also.
- */
- if (!(ACPI_STRNCMP(id,
- PCI_ROOT_HID_STRING,
- sizeof(PCI_ROOT_HID_STRING))) ||
- !(ACPI_STRNCMP(id,
- PCI_EXPRESS_ROOT_HID_STRING,
- sizeof(PCI_EXPRESS_ROOT_HID_STRING)))) {
- return (TRUE);
- }
-
- return (FALSE);
-}
-
-/*******************************************************************************
- *
* FUNCTION: acpi_ev_is_pci_root_bridge
*
- * PARAMETERS: Node - Device node being examined
+ * PARAMETERS: node - Device node being examined
*
* RETURN: TRUE if device is a PCI/PCI-Express Root Bridge
*
@@ -379,9 +349,10 @@ static u8 acpi_ev_match_pci_root_bridge(char *id)
static u8 acpi_ev_is_pci_root_bridge(struct acpi_namespace_node *node)
{
acpi_status status;
- struct acpica_device_id hid;
- struct acpi_compatible_id_list *cid;
+ struct acpi_pnp_device_id *hid;
+ struct acpi_pnp_device_id_list *cid;
u32 i;
+ u8 match;
/* Get the _HID and check for a PCI Root Bridge */
@@ -390,7 +361,10 @@ static u8 acpi_ev_is_pci_root_bridge(struct acpi_namespace_node *node)
return (FALSE);
}
- if (acpi_ev_match_pci_root_bridge(hid.value)) {
+ match = acpi_ut_is_pci_root_bridge(hid->string);
+ ACPI_FREE(hid);
+
+ if (match) {
return (TRUE);
}
@@ -404,7 +378,7 @@ static u8 acpi_ev_is_pci_root_bridge(struct acpi_namespace_node *node)
/* Check all _CIDs in the returned list */
for (i = 0; i < cid->count; i++) {
- if (acpi_ev_match_pci_root_bridge(cid->id[i].value)) {
+ if (acpi_ut_is_pci_root_bridge(cid->ids[i].string)) {
ACPI_FREE(cid);
return (TRUE);
}
@@ -418,14 +392,14 @@ static u8 acpi_ev_is_pci_root_bridge(struct acpi_namespace_node *node)
*
* FUNCTION: acpi_ev_pci_bar_region_setup
*
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
+ * PARAMETERS: handle - Region we are interested in
+ * function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
*
* RETURN: Status
*
- * DESCRIPTION: Setup a pci_bAR operation region
+ * DESCRIPTION: Setup a pci_BAR operation region
*
* MUTEX: Assumes namespace is not locked
*
@@ -445,8 +419,8 @@ acpi_ev_pci_bar_region_setup(acpi_handle handle,
*
* FUNCTION: acpi_ev_cmos_region_setup
*
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
+ * PARAMETERS: handle - Region we are interested in
+ * function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
*
@@ -472,8 +446,8 @@ acpi_ev_cmos_region_setup(acpi_handle handle,
*
* FUNCTION: acpi_ev_default_region_setup
*
- * PARAMETERS: Handle - Region we are interested in
- * Function - Start or stop
+ * PARAMETERS: handle - Region we are interested in
+ * function - Start or stop
* handler_context - Address space handler context
* region_context - Region specific context
*
@@ -552,7 +526,7 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,
return_ACPI_STATUS(AE_NOT_EXIST);
}
- node = acpi_ns_get_parent_node(region_obj->region.node);
+ node = region_obj->region.node->parent;
space_id = region_obj->region.space_id;
/* Setup defaults */
@@ -606,8 +580,25 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,
handler_obj = obj_desc->thermal_zone.handler;
break;
+ case ACPI_TYPE_METHOD:
+ /*
+ * If we are executing module level code, the original
+ * Node's object was replaced by this Method object and we
+ * saved the handler in the method object.
+ *
+ * See acpi_ns_exec_module_code
+ */
+ if (obj_desc->method.
+ info_flags & ACPI_METHOD_MODULE_LEVEL) {
+ handler_obj =
+ obj_desc->method.dispatch.handler;
+ }
+ break;
+
default:
+
/* Ignore other objects */
+
break;
}
@@ -632,8 +623,8 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,
acpi_ns_locked);
/*
- * Tell all users that this region is usable by running the _REG
- * method
+ * Tell all users that this region is usable by
+ * running the _REG method
*/
if (acpi_ns_locked) {
status =
@@ -647,7 +638,7 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,
status =
acpi_ev_execute_reg_method
- (region_obj, 1);
+ (region_obj, ACPI_REG_CONNECT);
if (acpi_ns_locked) {
status =
@@ -670,7 +661,7 @@ acpi_ev_initialize_region(union acpi_operand_object *region_obj,
/* This node does not have the handler we need; Pop up one level */
- node = acpi_ns_get_parent_node(node);
+ node = node->parent;
}
/* If we get here, there is no handler for this region */
diff --git a/drivers/acpi/acpica/evsci.c b/drivers/acpi/acpica/evsci.c
index 567b356c85a..29630e30382 100644
--- a/drivers/acpi/acpica/evsci.c
+++ b/drivers/acpi/acpica/evsci.c
@@ -6,7 +6,7 @@
******************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -48,15 +48,59 @@
#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evsci")
-
+#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/* Local prototypes */
static u32 ACPI_SYSTEM_XFACE acpi_ev_sci_xrupt_handler(void *context);
/*******************************************************************************
*
+ * FUNCTION: acpi_ev_sci_dispatch
+ *
+ * PARAMETERS: None
+ *
+ * RETURN: Status code indicates whether interrupt was handled.
+ *
+ * DESCRIPTION: Dispatch the SCI to all host-installed SCI handlers.
+ *
+ ******************************************************************************/
+
+u32 acpi_ev_sci_dispatch(void)
+{
+ struct acpi_sci_handler_info *sci_handler;
+ acpi_cpu_flags flags;
+ u32 int_status = ACPI_INTERRUPT_NOT_HANDLED;
+
+ ACPI_FUNCTION_NAME(ev_sci_dispatch);
+
+ /* Are there any host-installed SCI handlers? */
+
+ if (!acpi_gbl_sci_handler_list) {
+ return (int_status);
+ }
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+ /* Invoke all host-installed SCI handlers */
+
+ sci_handler = acpi_gbl_sci_handler_list;
+ while (sci_handler) {
+
+ /* Invoke the installed handler (at interrupt level) */
+
+ int_status |= sci_handler->address(sci_handler->context);
+
+ sci_handler = sci_handler->next;
+ }
+
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ return (int_status);
+}
+
+/*******************************************************************************
+ *
* FUNCTION: acpi_ev_sci_xrupt_handler
*
- * PARAMETERS: Context - Calling Context
+ * PARAMETERS: context - Calling Context
*
* RETURN: Status code indicates whether interrupt was handled.
*
@@ -73,7 +117,7 @@ static u32 ACPI_SYSTEM_XFACE acpi_ev_sci_xrupt_handler(void *context)
ACPI_FUNCTION_TRACE(ev_sci_xrupt_handler);
/*
- * We are guaranteed by the ACPI CA initialization/shutdown code that
+ * We are guaranteed by the ACPICA initialization/shutdown code that
* if this interrupt handler is installed, ACPI is enabled.
*/
@@ -89,6 +133,11 @@ static u32 ACPI_SYSTEM_XFACE acpi_ev_sci_xrupt_handler(void *context)
*/
interrupt_handled |= acpi_ev_gpe_detect(gpe_xrupt_list);
+ /* Invoke all host-installed SCI handlers */
+
+ interrupt_handled |= acpi_ev_sci_dispatch();
+
+ acpi_sci_count++;
return_UINT32(interrupt_handled);
}
@@ -96,7 +145,7 @@ static u32 ACPI_SYSTEM_XFACE acpi_ev_sci_xrupt_handler(void *context)
*
* FUNCTION: acpi_ev_gpe_xrupt_handler
*
- * PARAMETERS: Context - Calling Context
+ * PARAMETERS: context - Calling Context
*
* RETURN: Status code indicates whether interrupt was handled.
*
@@ -112,14 +161,13 @@ u32 ACPI_SYSTEM_XFACE acpi_ev_gpe_xrupt_handler(void *context)
ACPI_FUNCTION_TRACE(ev_gpe_xrupt_handler);
/*
- * We are guaranteed by the ACPI CA initialization/shutdown code that
+ * We are guaranteed by the ACPICA initialization/shutdown code that
* if this interrupt handler is installed, ACPI is enabled.
*/
/* GPEs: Check for and dispatch any GPEs that have occurred */
interrupt_handled |= acpi_ev_gpe_detect(gpe_xrupt_list);
-
return_UINT32(interrupt_handled);
}
@@ -150,15 +198,15 @@ u32 acpi_ev_install_sci_handler(void)
/******************************************************************************
*
- * FUNCTION: acpi_ev_remove_sci_handler
+ * FUNCTION: acpi_ev_remove_all_sci_handlers
*
* PARAMETERS: none
*
- * RETURN: E_OK if handler uninstalled OK, E_ERROR if handler was not
+ * RETURN: AE_OK if handler uninstalled, AE_ERROR if handler was not
* installed to begin with
*
* DESCRIPTION: Remove the SCI interrupt handler. No further SCIs will be
- * taken.
+ * taken. Remove all host-installed SCI handlers.
*
* Note: It doesn't seem important to disable all events or set the event
* enable registers to their original values. The OS should disable
@@ -167,11 +215,13 @@ u32 acpi_ev_install_sci_handler(void)
*
******************************************************************************/
-acpi_status acpi_ev_remove_sci_handler(void)
+acpi_status acpi_ev_remove_all_sci_handlers(void)
{
+ struct acpi_sci_handler_info *sci_handler;
+ acpi_cpu_flags flags;
acpi_status status;
- ACPI_FUNCTION_TRACE(ev_remove_sci_handler);
+ ACPI_FUNCTION_TRACE(ev_remove_all_sci_handlers);
/* Just let the OS remove the handler and disable the level */
@@ -179,5 +229,22 @@ acpi_status acpi_ev_remove_sci_handler(void)
acpi_os_remove_interrupt_handler((u32) acpi_gbl_FADT.sci_interrupt,
acpi_ev_sci_xrupt_handler);
+ if (!acpi_gbl_sci_handler_list) {
+ return (status);
+ }
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+ /* Free all host-installed SCI handlers */
+
+ while (acpi_gbl_sci_handler_list) {
+ sci_handler = acpi_gbl_sci_handler_list;
+ acpi_gbl_sci_handler_list = sci_handler->next;
+ ACPI_FREE(sci_handler);
+ }
+
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
return_ACPI_STATUS(status);
}
+
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evxface.c b/drivers/acpi/acpica/evxface.c
index 3aca9010a11..11e5803b8b4 100644
--- a/drivers/acpi/acpica/evxface.c
+++ b/drivers/acpi/acpica/evxface.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,6 +41,8 @@
* POSSIBILITY OF SUCH DAMAGES.
*/
+#define EXPORT_ACPI_INTERFACES
+
#include <acpi/acpi.h>
#include "accommon.h"
#include "acnamesp.h"
@@ -50,503 +52,668 @@
#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evxface")
+
/*******************************************************************************
*
- * FUNCTION: acpi_install_exception_handler
+ * FUNCTION: acpi_install_notify_handler
*
- * PARAMETERS: Handler - Pointer to the handler function for the
- * event
+ * PARAMETERS: device - The device for which notifies will be handled
+ * handler_type - The type of handler:
+ * ACPI_SYSTEM_NOTIFY: System Handler (00-7F)
+ * ACPI_DEVICE_NOTIFY: Device Handler (80-FF)
+ * ACPI_ALL_NOTIFY: Both System and Device
+ * handler - Address of the handler
+ * context - Value passed to the handler on each GPE
*
* RETURN: Status
*
- * DESCRIPTION: Saves the pointer to the handler function
+ * DESCRIPTION: Install a handler for notifications on an ACPI Device,
+ * thermal_zone, or Processor object.
+ *
+ * NOTES: The Root namespace object may have only one handler for each
+ * type of notify (System/Device). Device/Thermal/Processor objects
+ * may have one device notify handler, and multiple system notify
+ * handlers.
*
******************************************************************************/
-#ifdef ACPI_FUTURE_USAGE
-acpi_status acpi_install_exception_handler(acpi_exception_handler handler)
+acpi_status
+acpi_install_notify_handler(acpi_handle device,
+ u32 handler_type,
+ acpi_notify_handler handler, void *context)
{
+ struct acpi_namespace_node *node =
+ ACPI_CAST_PTR(struct acpi_namespace_node, device);
+ union acpi_operand_object *obj_desc;
+ union acpi_operand_object *handler_obj;
acpi_status status;
+ u32 i;
- ACPI_FUNCTION_TRACE(acpi_install_exception_handler);
+ ACPI_FUNCTION_TRACE(acpi_install_notify_handler);
- status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+ /* Parameter validation */
+
+ if ((!device) || (!handler) || (!handler_type) ||
+ (handler_type > ACPI_MAX_NOTIFY_HANDLER_TYPE)) {
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
+ }
+
+ status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
}
- /* Don't allow two handlers. */
+ /*
+ * Root Object:
+ * Registering a notify handler on the root object indicates that the
+ * caller wishes to receive notifications for all objects. Note that
+ * only one global handler can be registered per notify type.
+ * Ensure that a handler is not already installed.
+ */
+ if (device == ACPI_ROOT_OBJECT) {
+ for (i = 0; i < ACPI_NUM_NOTIFY_TYPES; i++) {
+ if (handler_type & (i + 1)) {
+ if (acpi_gbl_global_notify[i].handler) {
+ status = AE_ALREADY_EXISTS;
+ goto unlock_and_exit;
+ }
+
+ acpi_gbl_global_notify[i].handler = handler;
+ acpi_gbl_global_notify[i].context = context;
+ }
+ }
- if (acpi_gbl_exception_handler) {
- status = AE_ALREADY_EXISTS;
- goto cleanup;
+ goto unlock_and_exit; /* Global notify handler installed, all done */
}
- /* Install the handler */
+ /*
+ * All Other Objects:
+ * Caller will only receive notifications specific to the target
+ * object. Note that only certain object types are allowed to
+ * receive notifications.
+ */
- acpi_gbl_exception_handler = handler;
+ /* Are Notifies allowed on this object? */
- cleanup:
- (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+ if (!acpi_ev_is_notify_object(node)) {
+ status = AE_TYPE;
+ goto unlock_and_exit;
+ }
+
+ /* Check for an existing internal object, might not exist */
+
+ obj_desc = acpi_ns_get_attached_object(node);
+ if (!obj_desc) {
+
+ /* Create a new object */
+
+ obj_desc = acpi_ut_create_internal_object(node->type);
+ if (!obj_desc) {
+ status = AE_NO_MEMORY;
+ goto unlock_and_exit;
+ }
+
+ /* Attach new object to the Node, remove local reference */
+
+ status = acpi_ns_attach_object(device, obj_desc, node->type);
+ acpi_ut_remove_reference(obj_desc);
+ if (ACPI_FAILURE(status)) {
+ goto unlock_and_exit;
+ }
+ }
+
+ /* Ensure that the handler is not already installed in the lists */
+
+ for (i = 0; i < ACPI_NUM_NOTIFY_TYPES; i++) {
+ if (handler_type & (i + 1)) {
+ handler_obj = obj_desc->common_notify.notify_list[i];
+ while (handler_obj) {
+ if (handler_obj->notify.handler == handler) {
+ status = AE_ALREADY_EXISTS;
+ goto unlock_and_exit;
+ }
+
+ handler_obj = handler_obj->notify.next[i];
+ }
+ }
+ }
+
+ /* Create and populate a new notify handler object */
+
+ handler_obj = acpi_ut_create_internal_object(ACPI_TYPE_LOCAL_NOTIFY);
+ if (!handler_obj) {
+ status = AE_NO_MEMORY;
+ goto unlock_and_exit;
+ }
+
+ handler_obj->notify.node = node;
+ handler_obj->notify.handler_type = handler_type;
+ handler_obj->notify.handler = handler;
+ handler_obj->notify.context = context;
+
+ /* Install the handler at the list head(s) */
+
+ for (i = 0; i < ACPI_NUM_NOTIFY_TYPES; i++) {
+ if (handler_type & (i + 1)) {
+ handler_obj->notify.next[i] =
+ obj_desc->common_notify.notify_list[i];
+
+ obj_desc->common_notify.notify_list[i] = handler_obj;
+ }
+ }
+
+ /* Add an extra reference if handler was installed in both lists */
+
+ if (handler_type == ACPI_ALL_NOTIFY) {
+ acpi_ut_add_reference(handler_obj);
+ }
+
+unlock_and_exit:
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
return_ACPI_STATUS(status);
}
-ACPI_EXPORT_SYMBOL(acpi_install_exception_handler)
-#endif /* ACPI_FUTURE_USAGE */
+ACPI_EXPORT_SYMBOL(acpi_install_notify_handler)
+
/*******************************************************************************
*
- * FUNCTION: acpi_install_fixed_event_handler
+ * FUNCTION: acpi_remove_notify_handler
*
- * PARAMETERS: Event - Event type to enable.
- * Handler - Pointer to the handler function for the
- * event
- * Context - Value passed to the handler on each GPE
+ * PARAMETERS: device - The device for which the handler is installed
+ * handler_type - The type of handler:
+ * ACPI_SYSTEM_NOTIFY: System Handler (00-7F)
+ * ACPI_DEVICE_NOTIFY: Device Handler (80-FF)
+ * ACPI_ALL_NOTIFY: Both System and Device
+ * handler - Address of the handler
*
* RETURN: Status
*
- * DESCRIPTION: Saves the pointer to the handler function and then enables the
- * event.
+ * DESCRIPTION: Remove a handler for notifies on an ACPI device
*
******************************************************************************/
acpi_status
-acpi_install_fixed_event_handler(u32 event,
- acpi_event_handler handler, void *context)
+acpi_remove_notify_handler(acpi_handle device,
+ u32 handler_type, acpi_notify_handler handler)
{
- acpi_status status;
+ struct acpi_namespace_node *node =
+ ACPI_CAST_PTR(struct acpi_namespace_node, device);
+ union acpi_operand_object *obj_desc;
+ union acpi_operand_object *handler_obj;
+ union acpi_operand_object *previous_handler_obj;
+ acpi_status status = AE_OK;
+ u32 i;
- ACPI_FUNCTION_TRACE(acpi_install_fixed_event_handler);
+ ACPI_FUNCTION_TRACE(acpi_remove_notify_handler);
/* Parameter validation */
- if (event > ACPI_EVENT_MAX) {
+ if ((!device) || (!handler) || (!handler_type) ||
+ (handler_type > ACPI_MAX_NOTIFY_HANDLER_TYPE)) {
return_ACPI_STATUS(AE_BAD_PARAMETER);
}
- status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
+ /* Root Object. Global handlers are removed here */
+
+ if (device == ACPI_ROOT_OBJECT) {
+ for (i = 0; i < ACPI_NUM_NOTIFY_TYPES; i++) {
+ if (handler_type & (i + 1)) {
+ status =
+ acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ if (!acpi_gbl_global_notify[i].handler ||
+ (acpi_gbl_global_notify[i].handler !=
+ handler)) {
+ status = AE_NOT_EXIST;
+ goto unlock_and_exit;
+ }
+
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "Removing global notify handler\n"));
+
+ acpi_gbl_global_notify[i].handler = NULL;
+ acpi_gbl_global_notify[i].context = NULL;
+
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
+
+ /* Make sure all deferred notify tasks are completed */
+
+ acpi_os_wait_events_complete();
+ }
+ }
+
+ return_ACPI_STATUS(AE_OK);
}
- /* Don't allow two handlers. */
+ /* All other objects: Are Notifies allowed on this object? */
- if (NULL != acpi_gbl_fixed_event_handlers[event].handler) {
- status = AE_ALREADY_EXISTS;
- goto cleanup;
+ if (!acpi_ev_is_notify_object(node)) {
+ return_ACPI_STATUS(AE_TYPE);
}
- /* Install the handler before enabling the event */
+ /* Must have an existing internal object */
- acpi_gbl_fixed_event_handlers[event].handler = handler;
- acpi_gbl_fixed_event_handlers[event].context = context;
+ obj_desc = acpi_ns_get_attached_object(node);
+ if (!obj_desc) {
+ return_ACPI_STATUS(AE_NOT_EXIST);
+ }
- status = acpi_clear_event(event);
- if (ACPI_SUCCESS(status))
- status = acpi_enable_event(event, 0);
- if (ACPI_FAILURE(status)) {
- ACPI_WARNING((AE_INFO, "Could not enable fixed event %X",
- event));
+ /* Internal object exists. Find the handler and remove it */
- /* Remove the handler */
+ for (i = 0; i < ACPI_NUM_NOTIFY_TYPES; i++) {
+ if (handler_type & (i + 1)) {
+ status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
- acpi_gbl_fixed_event_handlers[event].handler = NULL;
- acpi_gbl_fixed_event_handlers[event].context = NULL;
- } else {
- ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "Enabled fixed event %X, Handler=%p\n", event,
- handler));
+ handler_obj = obj_desc->common_notify.notify_list[i];
+ previous_handler_obj = NULL;
+
+ /* Attempt to find the handler in the handler list */
+
+ while (handler_obj &&
+ (handler_obj->notify.handler != handler)) {
+ previous_handler_obj = handler_obj;
+ handler_obj = handler_obj->notify.next[i];
+ }
+
+ if (!handler_obj) {
+ status = AE_NOT_EXIST;
+ goto unlock_and_exit;
+ }
+
+ /* Remove the handler object from the list */
+
+ if (previous_handler_obj) { /* Handler is not at the list head */
+ previous_handler_obj->notify.next[i] =
+ handler_obj->notify.next[i];
+ } else { /* Handler is at the list head */
+
+ obj_desc->common_notify.notify_list[i] =
+ handler_obj->notify.next[i];
+ }
+
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
+
+ /* Make sure all deferred notify tasks are completed */
+
+ acpi_os_wait_events_complete();
+ acpi_ut_remove_reference(handler_obj);
+ }
}
- cleanup:
- (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+ return_ACPI_STATUS(status);
+
+unlock_and_exit:
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
return_ACPI_STATUS(status);
}
-ACPI_EXPORT_SYMBOL(acpi_install_fixed_event_handler)
+ACPI_EXPORT_SYMBOL(acpi_remove_notify_handler)
/*******************************************************************************
*
- * FUNCTION: acpi_remove_fixed_event_handler
+ * FUNCTION: acpi_install_exception_handler
*
- * PARAMETERS: Event - Event type to disable.
- * Handler - Address of the handler
+ * PARAMETERS: handler - Pointer to the handler function for the
+ * event
*
* RETURN: Status
*
- * DESCRIPTION: Disables the event and unregisters the event handler.
+ * DESCRIPTION: Saves the pointer to the handler function
*
******************************************************************************/
-acpi_status
-acpi_remove_fixed_event_handler(u32 event, acpi_event_handler handler)
+#ifdef ACPI_FUTURE_USAGE
+acpi_status acpi_install_exception_handler(acpi_exception_handler handler)
{
- acpi_status status = AE_OK;
-
- ACPI_FUNCTION_TRACE(acpi_remove_fixed_event_handler);
-
- /* Parameter validation */
+ acpi_status status;
- if (event > ACPI_EVENT_MAX) {
- return_ACPI_STATUS(AE_BAD_PARAMETER);
- }
+ ACPI_FUNCTION_TRACE(acpi_install_exception_handler);
status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
}
- /* Disable the event before removing the handler */
-
- status = acpi_disable_event(event, 0);
+ /* Don't allow two handlers. */
- /* Always Remove the handler */
+ if (acpi_gbl_exception_handler) {
+ status = AE_ALREADY_EXISTS;
+ goto cleanup;
+ }
- acpi_gbl_fixed_event_handlers[event].handler = NULL;
- acpi_gbl_fixed_event_handlers[event].context = NULL;
+ /* Install the handler */
- if (ACPI_FAILURE(status)) {
- ACPI_WARNING((AE_INFO,
- "Could not write to fixed event enable register %X",
- event));
- } else {
- ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Disabled fixed event %X\n",
- event));
- }
+ acpi_gbl_exception_handler = handler;
+cleanup:
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
return_ACPI_STATUS(status);
}
-ACPI_EXPORT_SYMBOL(acpi_remove_fixed_event_handler)
+ACPI_EXPORT_SYMBOL(acpi_install_exception_handler)
+#endif /* ACPI_FUTURE_USAGE */
+#if (!ACPI_REDUCED_HARDWARE)
/*******************************************************************************
*
- * FUNCTION: acpi_install_notify_handler
+ * FUNCTION: acpi_install_sci_handler
*
- * PARAMETERS: Device - The device for which notifies will be handled
- * handler_type - The type of handler:
- * ACPI_SYSTEM_NOTIFY: system_handler (00-7f)
- * ACPI_DEVICE_NOTIFY: driver_handler (80-ff)
- * ACPI_ALL_NOTIFY: both system and device
- * Handler - Address of the handler
- * Context - Value passed to the handler on each GPE
+ * PARAMETERS: address - Address of the handler
+ * context - Value passed to the handler on each SCI
*
* RETURN: Status
*
- * DESCRIPTION: Install a handler for notifies on an ACPI device
+ * DESCRIPTION: Install a handler for a System Control Interrupt.
*
******************************************************************************/
-acpi_status
-acpi_install_notify_handler(acpi_handle device,
- u32 handler_type,
- acpi_notify_handler handler, void *context)
+acpi_status acpi_install_sci_handler(acpi_sci_handler address, void *context)
{
- union acpi_operand_object *obj_desc;
- union acpi_operand_object *notify_obj;
- struct acpi_namespace_node *node;
+ struct acpi_sci_handler_info *new_sci_handler;
+ struct acpi_sci_handler_info *sci_handler;
+ acpi_cpu_flags flags;
acpi_status status;
- ACPI_FUNCTION_TRACE(acpi_install_notify_handler);
-
- /* Parameter validation */
+ ACPI_FUNCTION_TRACE(acpi_install_sci_handler);
- if ((!device) ||
- (!handler) || (handler_type > ACPI_MAX_NOTIFY_HANDLER_TYPE)) {
+ if (!address) {
return_ACPI_STATUS(AE_BAD_PARAMETER);
}
- status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
+ /* Allocate and init a handler object */
+
+ new_sci_handler = ACPI_ALLOCATE(sizeof(struct acpi_sci_handler_info));
+ if (!new_sci_handler) {
+ return_ACPI_STATUS(AE_NO_MEMORY);
}
- /* Convert and validate the device handle */
+ new_sci_handler->address = address;
+ new_sci_handler->context = context;
- node = acpi_ns_map_handle_to_node(device);
- if (!node) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
+ status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+ if (ACPI_FAILURE(status)) {
+ goto exit;
}
- /*
- * Root Object:
- * Registering a notify handler on the root object indicates that the
- * caller wishes to receive notifications for all objects. Note that
- * only one <external> global handler can be regsitered (per notify type).
- */
- if (device == ACPI_ROOT_OBJECT) {
+ /* Lock list during installation */
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+ sci_handler = acpi_gbl_sci_handler_list;
- /* Make sure the handler is not already installed */
+ /* Ensure handler does not already exist */
- if (((handler_type & ACPI_SYSTEM_NOTIFY) &&
- acpi_gbl_system_notify.handler) ||
- ((handler_type & ACPI_DEVICE_NOTIFY) &&
- acpi_gbl_device_notify.handler)) {
+ while (sci_handler) {
+ if (address == sci_handler->address) {
status = AE_ALREADY_EXISTS;
goto unlock_and_exit;
}
- if (handler_type & ACPI_SYSTEM_NOTIFY) {
- acpi_gbl_system_notify.node = node;
- acpi_gbl_system_notify.handler = handler;
- acpi_gbl_system_notify.context = context;
- }
-
- if (handler_type & ACPI_DEVICE_NOTIFY) {
- acpi_gbl_device_notify.node = node;
- acpi_gbl_device_notify.handler = handler;
- acpi_gbl_device_notify.context = context;
- }
-
- /* Global notify handler installed */
+ sci_handler = sci_handler->next;
}
- /*
- * All Other Objects:
- * Caller will only receive notifications specific to the target object.
- * Note that only certain object types can receive notifications.
- */
- else {
- /* Notifies allowed on this object? */
+ /* Install the new handler into the global list (at head) */
- if (!acpi_ev_is_notify_object(node)) {
- status = AE_TYPE;
- goto unlock_and_exit;
- }
+ new_sci_handler->next = acpi_gbl_sci_handler_list;
+ acpi_gbl_sci_handler_list = new_sci_handler;
- /* Check for an existing internal object */
+unlock_and_exit:
- obj_desc = acpi_ns_get_attached_object(node);
- if (obj_desc) {
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
- /* Object exists - make sure there's no handler */
+exit:
+ if (ACPI_FAILURE(status)) {
+ ACPI_FREE(new_sci_handler);
+ }
+ return_ACPI_STATUS(status);
+}
- if (((handler_type & ACPI_SYSTEM_NOTIFY) &&
- obj_desc->common_notify.system_notify) ||
- ((handler_type & ACPI_DEVICE_NOTIFY) &&
- obj_desc->common_notify.device_notify)) {
- status = AE_ALREADY_EXISTS;
- goto unlock_and_exit;
- }
- } else {
- /* Create a new object */
+ACPI_EXPORT_SYMBOL(acpi_install_sci_handler)
- obj_desc = acpi_ut_create_internal_object(node->type);
- if (!obj_desc) {
- status = AE_NO_MEMORY;
- goto unlock_and_exit;
- }
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_remove_sci_handler
+ *
+ * PARAMETERS: address - Address of the handler
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Remove a handler for a System Control Interrupt.
+ *
+ ******************************************************************************/
+acpi_status acpi_remove_sci_handler(acpi_sci_handler address)
+{
+ struct acpi_sci_handler_info *prev_sci_handler;
+ struct acpi_sci_handler_info *next_sci_handler;
+ acpi_cpu_flags flags;
+ acpi_status status;
- /* Attach new object to the Node */
+ ACPI_FUNCTION_TRACE(acpi_remove_sci_handler);
- status =
- acpi_ns_attach_object(device, obj_desc, node->type);
+ if (!address) {
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
+ }
- /* Remove local reference to the object */
+ status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
- acpi_ut_remove_reference(obj_desc);
- if (ACPI_FAILURE(status)) {
- goto unlock_and_exit;
- }
- }
+ /* Remove the SCI handler with lock */
- /* Install the handler */
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
- notify_obj =
- acpi_ut_create_internal_object(ACPI_TYPE_LOCAL_NOTIFY);
- if (!notify_obj) {
- status = AE_NO_MEMORY;
- goto unlock_and_exit;
- }
+ prev_sci_handler = NULL;
+ next_sci_handler = acpi_gbl_sci_handler_list;
+ while (next_sci_handler) {
+ if (next_sci_handler->address == address) {
- notify_obj->notify.node = node;
- notify_obj->notify.handler = handler;
- notify_obj->notify.context = context;
+ /* Unlink and free the SCI handler info block */
- if (handler_type & ACPI_SYSTEM_NOTIFY) {
- obj_desc->common_notify.system_notify = notify_obj;
- }
+ if (prev_sci_handler) {
+ prev_sci_handler->next = next_sci_handler->next;
+ } else {
+ acpi_gbl_sci_handler_list =
+ next_sci_handler->next;
+ }
- if (handler_type & ACPI_DEVICE_NOTIFY) {
- obj_desc->common_notify.device_notify = notify_obj;
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ ACPI_FREE(next_sci_handler);
+ goto unlock_and_exit;
}
- if (handler_type == ACPI_ALL_NOTIFY) {
-
- /* Extra ref if installed in both */
-
- acpi_ut_add_reference(notify_obj);
- }
+ prev_sci_handler = next_sci_handler;
+ next_sci_handler = next_sci_handler->next;
}
- unlock_and_exit:
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ status = AE_NOT_EXIST;
+
+unlock_and_exit:
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
return_ACPI_STATUS(status);
}
-ACPI_EXPORT_SYMBOL(acpi_install_notify_handler)
+ACPI_EXPORT_SYMBOL(acpi_remove_sci_handler)
/*******************************************************************************
*
- * FUNCTION: acpi_remove_notify_handler
+ * FUNCTION: acpi_install_global_event_handler
*
- * PARAMETERS: Device - The device for which notifies will be handled
- * handler_type - The type of handler:
- * ACPI_SYSTEM_NOTIFY: system_handler (00-7f)
- * ACPI_DEVICE_NOTIFY: driver_handler (80-ff)
- * ACPI_ALL_NOTIFY: both system and device
- * Handler - Address of the handler
+ * PARAMETERS: handler - Pointer to the global event handler function
+ * context - Value passed to the handler on each event
*
* RETURN: Status
*
- * DESCRIPTION: Remove a handler for notifies on an ACPI device
+ * DESCRIPTION: Saves the pointer to the handler function. The global handler
+ * is invoked upon each incoming GPE and Fixed Event. It is
+ * invoked at interrupt level at the time of the event dispatch.
+ * Can be used to update event counters, etc.
*
******************************************************************************/
acpi_status
-acpi_remove_notify_handler(acpi_handle device,
- u32 handler_type, acpi_notify_handler handler)
+acpi_install_global_event_handler(acpi_gbl_event_handler handler, void *context)
{
- union acpi_operand_object *notify_obj;
- union acpi_operand_object *obj_desc;
- struct acpi_namespace_node *node;
acpi_status status;
- ACPI_FUNCTION_TRACE(acpi_remove_notify_handler);
+ ACPI_FUNCTION_TRACE(acpi_install_global_event_handler);
/* Parameter validation */
- if ((!device) ||
- (!handler) || (handler_type > ACPI_MAX_NOTIFY_HANDLER_TYPE)) {
- status = AE_BAD_PARAMETER;
- goto exit;
+ if (!handler) {
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
}
- status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
+ status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
if (ACPI_FAILURE(status)) {
- goto exit;
+ return_ACPI_STATUS(status);
}
- /* Convert and validate the device handle */
+ /* Don't allow two handlers. */
- node = acpi_ns_map_handle_to_node(device);
- if (!node) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
+ if (acpi_gbl_global_event_handler) {
+ status = AE_ALREADY_EXISTS;
+ goto cleanup;
}
- /* Root Object */
+ acpi_gbl_global_event_handler = handler;
+ acpi_gbl_global_event_handler_context = context;
- if (device == ACPI_ROOT_OBJECT) {
- ACPI_DEBUG_PRINT((ACPI_DB_INFO,
- "Removing notify handler for namespace root object\n"));
+cleanup:
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+ return_ACPI_STATUS(status);
+}
- if (((handler_type & ACPI_SYSTEM_NOTIFY) &&
- !acpi_gbl_system_notify.handler) ||
- ((handler_type & ACPI_DEVICE_NOTIFY) &&
- !acpi_gbl_device_notify.handler)) {
- status = AE_NOT_EXIST;
- goto unlock_and_exit;
- }
+ACPI_EXPORT_SYMBOL(acpi_install_global_event_handler)
- /* Make sure all deferred tasks are completed */
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_install_fixed_event_handler
+ *
+ * PARAMETERS: event - Event type to enable.
+ * handler - Pointer to the handler function for the
+ * event
+ * context - Value passed to the handler on each GPE
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Saves the pointer to the handler function and then enables the
+ * event.
+ *
+ ******************************************************************************/
+acpi_status
+acpi_install_fixed_event_handler(u32 event,
+ acpi_event_handler handler, void *context)
+{
+ acpi_status status;
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
- acpi_os_wait_events_complete(NULL);
- status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE(status)) {
- goto exit;
- }
+ ACPI_FUNCTION_TRACE(acpi_install_fixed_event_handler);
- if (handler_type & ACPI_SYSTEM_NOTIFY) {
- acpi_gbl_system_notify.node = NULL;
- acpi_gbl_system_notify.handler = NULL;
- acpi_gbl_system_notify.context = NULL;
- }
+ /* Parameter validation */
- if (handler_type & ACPI_DEVICE_NOTIFY) {
- acpi_gbl_device_notify.node = NULL;
- acpi_gbl_device_notify.handler = NULL;
- acpi_gbl_device_notify.context = NULL;
- }
+ if (event > ACPI_EVENT_MAX) {
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
}
- /* All Other Objects */
+ status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
- else {
- /* Notifies allowed on this object? */
+ /* Do not allow multiple handlers */
- if (!acpi_ev_is_notify_object(node)) {
- status = AE_TYPE;
- goto unlock_and_exit;
- }
+ if (acpi_gbl_fixed_event_handlers[event].handler) {
+ status = AE_ALREADY_EXISTS;
+ goto cleanup;
+ }
- /* Check for an existing internal object */
+ /* Install the handler before enabling the event */
- obj_desc = acpi_ns_get_attached_object(node);
- if (!obj_desc) {
- status = AE_NOT_EXIST;
- goto unlock_and_exit;
- }
+ acpi_gbl_fixed_event_handlers[event].handler = handler;
+ acpi_gbl_fixed_event_handlers[event].context = context;
- /* Object exists - make sure there's an existing handler */
+ status = acpi_clear_event(event);
+ if (ACPI_SUCCESS(status))
+ status = acpi_enable_event(event, 0);
+ if (ACPI_FAILURE(status)) {
+ ACPI_WARNING((AE_INFO,
+ "Could not enable fixed event - %s (%u)",
+ acpi_ut_get_event_name(event), event));
- if (handler_type & ACPI_SYSTEM_NOTIFY) {
- notify_obj = obj_desc->common_notify.system_notify;
- if (!notify_obj) {
- status = AE_NOT_EXIST;
- goto unlock_and_exit;
- }
+ /* Remove the handler */
- if (notify_obj->notify.handler != handler) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
- /* Make sure all deferred tasks are completed */
+ acpi_gbl_fixed_event_handlers[event].handler = NULL;
+ acpi_gbl_fixed_event_handlers[event].context = NULL;
+ } else {
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "Enabled fixed event %s (%X), Handler=%p\n",
+ acpi_ut_get_event_name(event), event,
+ handler));
+ }
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
- acpi_os_wait_events_complete(NULL);
- status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE(status)) {
- goto exit;
- }
+cleanup:
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+ return_ACPI_STATUS(status);
+}
- /* Remove the handler */
- obj_desc->common_notify.system_notify = NULL;
- acpi_ut_remove_reference(notify_obj);
- }
+ACPI_EXPORT_SYMBOL(acpi_install_fixed_event_handler)
- if (handler_type & ACPI_DEVICE_NOTIFY) {
- notify_obj = obj_desc->common_notify.device_notify;
- if (!notify_obj) {
- status = AE_NOT_EXIST;
- goto unlock_and_exit;
- }
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_remove_fixed_event_handler
+ *
+ * PARAMETERS: event - Event type to disable.
+ * handler - Address of the handler
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Disables the event and unregisters the event handler.
+ *
+ ******************************************************************************/
+acpi_status
+acpi_remove_fixed_event_handler(u32 event, acpi_event_handler handler)
+{
+ acpi_status status = AE_OK;
- if (notify_obj->notify.handler != handler) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
- /* Make sure all deferred tasks are completed */
+ ACPI_FUNCTION_TRACE(acpi_remove_fixed_event_handler);
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
- acpi_os_wait_events_complete(NULL);
- status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE(status)) {
- goto exit;
- }
+ /* Parameter validation */
- /* Remove the handler */
- obj_desc->common_notify.device_notify = NULL;
- acpi_ut_remove_reference(notify_obj);
- }
+ if (event > ACPI_EVENT_MAX) {
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
}
- unlock_and_exit:
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
- exit:
- if (ACPI_FAILURE(status))
- ACPI_EXCEPTION((AE_INFO, status, "Removing notify handler"));
+ status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ /* Disable the event before removing the handler */
+
+ status = acpi_disable_event(event, 0);
+
+ /* Always Remove the handler */
+
+ acpi_gbl_fixed_event_handlers[event].handler = NULL;
+ acpi_gbl_fixed_event_handlers[event].context = NULL;
+
+ if (ACPI_FAILURE(status)) {
+ ACPI_WARNING((AE_INFO,
+ "Could not disable fixed event - %s (%u)",
+ acpi_ut_get_event_name(event), event));
+ } else {
+ ACPI_DEBUG_PRINT((ACPI_DB_INFO,
+ "Disabled fixed event - %s (%X)\n",
+ acpi_ut_get_event_name(event), event));
+ }
+
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
return_ACPI_STATUS(status);
}
-ACPI_EXPORT_SYMBOL(acpi_remove_notify_handler)
+ACPI_EXPORT_SYMBOL(acpi_remove_fixed_event_handler)
/*******************************************************************************
*
@@ -555,10 +722,10 @@ ACPI_EXPORT_SYMBOL(acpi_remove_notify_handler)
* PARAMETERS: gpe_device - Namespace node for the GPE (NULL for FADT
* defined GPEs)
* gpe_number - The GPE number within the GPE block
- * Type - Whether this GPE should be treated as an
+ * type - Whether this GPE should be treated as an
* edge- or level-triggered interrupt.
- * Address - Address of the handler
- * Context - Value passed to the handler on each GPE
+ * address - Address of the handler
+ * context - Value passed to the handler on each GPE
*
* RETURN: Status
*
@@ -568,10 +735,10 @@ ACPI_EXPORT_SYMBOL(acpi_remove_notify_handler)
acpi_status
acpi_install_gpe_handler(acpi_handle gpe_device,
u32 gpe_number,
- u32 type, acpi_event_handler address, void *context)
+ u32 type, acpi_gpe_handler address, void *context)
{
struct acpi_gpe_event_info *gpe_event_info;
- struct acpi_handler_info *handler;
+ struct acpi_gpe_handler_info *handler;
acpi_status status;
acpi_cpu_flags flags;
@@ -579,22 +746,31 @@ acpi_install_gpe_handler(acpi_handle gpe_device,
/* Parameter validation */
- if ((!address) || (type > ACPI_GPE_XRUPT_TYPE_MASK)) {
- status = AE_BAD_PARAMETER;
- goto exit;
+ if ((!address) || (type & ~ACPI_GPE_XRUPT_TYPE_MASK)) {
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
}
status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
if (ACPI_FAILURE(status)) {
- goto exit;
+ return_ACPI_STATUS(status);
+ }
+
+ /* Allocate and init handler object (before lock) */
+
+ handler = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_gpe_handler_info));
+ if (!handler) {
+ status = AE_NO_MEMORY;
+ goto unlock_and_exit;
}
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
/* Ensure that we have a valid GPE number */
gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
if (!gpe_event_info) {
status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
+ goto free_and_exit;
}
/* Make sure that there isn't a handler there already */
@@ -602,47 +778,48 @@ acpi_install_gpe_handler(acpi_handle gpe_device,
if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
ACPI_GPE_DISPATCH_HANDLER) {
status = AE_ALREADY_EXISTS;
- goto unlock_and_exit;
- }
-
- /* Allocate and init handler object */
-
- handler = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_handler_info));
- if (!handler) {
- status = AE_NO_MEMORY;
- goto unlock_and_exit;
+ goto free_and_exit;
}
handler->address = address;
handler->context = context;
handler->method_node = gpe_event_info->dispatch.method_node;
+ handler->original_flags = (u8)(gpe_event_info->flags &
+ (ACPI_GPE_XRUPT_TYPE_MASK |
+ ACPI_GPE_DISPATCH_MASK));
- /* Disable the GPE before installing the handler */
+ /*
+ * If the GPE is associated with a method, it may have been enabled
+ * automatically during initialization, in which case it has to be
+ * disabled now to avoid spurious execution of the handler.
+ */
- status = acpi_ev_disable_gpe(gpe_event_info);
- if (ACPI_FAILURE(status)) {
- goto unlock_and_exit;
+ if ((handler->original_flags & ACPI_GPE_DISPATCH_METHOD)
+ && gpe_event_info->runtime_count) {
+ handler->originally_enabled = 1;
+ (void)acpi_ev_remove_gpe_reference(gpe_event_info);
}
/* Install the handler */
- flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
gpe_event_info->dispatch.handler = handler;
- /* Setup up dispatch flags to indicate handler (vs. method) */
+ /* Setup up dispatch flags to indicate handler (vs. method/notify) */
- gpe_event_info->flags &= ~(ACPI_GPE_XRUPT_TYPE_MASK | ACPI_GPE_DISPATCH_MASK); /* Clear bits */
+ gpe_event_info->flags &=
+ ~(ACPI_GPE_XRUPT_TYPE_MASK | ACPI_GPE_DISPATCH_MASK);
gpe_event_info->flags |= (u8) (type | ACPI_GPE_DISPATCH_HANDLER);
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
- unlock_and_exit:
+unlock_and_exit:
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
- exit:
- if (ACPI_FAILURE(status))
- ACPI_EXCEPTION((AE_INFO, status,
- "Installing notify handler failed"));
return_ACPI_STATUS(status);
+
+free_and_exit:
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ ACPI_FREE(handler);
+ goto unlock_and_exit;
}
ACPI_EXPORT_SYMBOL(acpi_install_gpe_handler)
@@ -654,7 +831,7 @@ ACPI_EXPORT_SYMBOL(acpi_install_gpe_handler)
* PARAMETERS: gpe_device - Namespace node for the GPE (NULL for FADT
* defined GPEs)
* gpe_number - The event to remove a handler
- * Address - Address of the handler
+ * address - Address of the handler
*
* RETURN: Status
*
@@ -663,10 +840,10 @@ ACPI_EXPORT_SYMBOL(acpi_install_gpe_handler)
******************************************************************************/
acpi_status
acpi_remove_gpe_handler(acpi_handle gpe_device,
- u32 gpe_number, acpi_event_handler address)
+ u32 gpe_number, acpi_gpe_handler address)
{
struct acpi_gpe_event_info *gpe_event_info;
- struct acpi_handler_info *handler;
+ struct acpi_gpe_handler_info *handler;
acpi_status status;
acpi_cpu_flags flags;
@@ -683,6 +860,8 @@ acpi_remove_gpe_handler(acpi_handle gpe_device,
return_ACPI_STATUS(status);
}
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
/* Ensure that we have a valid GPE number */
gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
@@ -706,41 +885,42 @@ acpi_remove_gpe_handler(acpi_handle gpe_device,
goto unlock_and_exit;
}
- /* Disable the GPE before removing the handler */
-
- status = acpi_ev_disable_gpe(gpe_event_info);
- if (ACPI_FAILURE(status)) {
- goto unlock_and_exit;
- }
-
- /* Make sure all deferred tasks are completed */
-
- (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
- acpi_os_wait_events_complete(NULL);
- status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
/* Remove the handler */
- flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
handler = gpe_event_info->dispatch.handler;
/* Restore Method node (if any), set dispatch flags */
gpe_event_info->dispatch.method_node = handler->method_node;
- gpe_event_info->flags &= ~ACPI_GPE_DISPATCH_MASK; /* Clear bits */
- if (handler->method_node) {
- gpe_event_info->flags |= ACPI_GPE_DISPATCH_METHOD;
+ gpe_event_info->flags &=
+ ~(ACPI_GPE_XRUPT_TYPE_MASK | ACPI_GPE_DISPATCH_MASK);
+ gpe_event_info->flags |= handler->original_flags;
+
+ /*
+ * If the GPE was previously associated with a method and it was
+ * enabled, it should be enabled at this point to restore the
+ * post-initialization configuration.
+ */
+ if ((handler->original_flags & ACPI_GPE_DISPATCH_METHOD) &&
+ handler->originally_enabled) {
+ (void)acpi_ev_add_gpe_reference(gpe_event_info);
}
+
acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+
+ /* Make sure all deferred GPE tasks are completed */
+
+ acpi_os_wait_events_complete();
/* Now we can free the handler object */
ACPI_FREE(handler);
+ return_ACPI_STATUS(status);
+
+unlock_and_exit:
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
- unlock_and_exit:
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
return_ACPI_STATUS(status);
}
@@ -751,8 +931,8 @@ ACPI_EXPORT_SYMBOL(acpi_remove_gpe_handler)
*
* FUNCTION: acpi_acquire_global_lock
*
- * PARAMETERS: Timeout - How long the caller is willing to wait
- * Handle - Where the handle to the lock is returned
+ * PARAMETERS: timeout - How long the caller is willing to wait
+ * handle - Where the handle to the lock is returned
* (if acquired)
*
* RETURN: Status
@@ -799,7 +979,7 @@ ACPI_EXPORT_SYMBOL(acpi_acquire_global_lock)
*
* FUNCTION: acpi_release_global_lock
*
- * PARAMETERS: Handle - Returned from acpi_acquire_global_lock
+ * PARAMETERS: handle - Returned from acpi_acquire_global_lock
*
* RETURN: Status
*
@@ -819,3 +999,4 @@ acpi_status acpi_release_global_lock(u32 handle)
}
ACPI_EXPORT_SYMBOL(acpi_release_global_lock)
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evxfevnt.c b/drivers/acpi/acpica/evxfevnt.c
index 35485e4b60a..e286640ad4f 100644
--- a/drivers/acpi/acpica/evxfevnt.c
+++ b/drivers/acpi/acpica/evxfevnt.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,20 +41,16 @@
* POSSIBILITY OF SUCH DAMAGES.
*/
+#define EXPORT_ACPI_INTERFACES
+
#include <acpi/acpi.h>
#include "accommon.h"
-#include "acevents.h"
-#include "acnamesp.h"
#include "actables.h"
#define _COMPONENT ACPI_EVENTS
ACPI_MODULE_NAME("evxfevnt")
-/* Local prototypes */
-acpi_status
-acpi_ev_get_gpe_device(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
- struct acpi_gpe_block_info *gpe_block, void *context);
-
+#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
/*******************************************************************************
*
* FUNCTION: acpi_enable
@@ -66,10 +62,10 @@ acpi_ev_get_gpe_device(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
* DESCRIPTION: Transfers the system into ACPI mode.
*
******************************************************************************/
-
acpi_status acpi_enable(void)
{
- acpi_status status = AE_OK;
+ acpi_status status;
+ int retry;
ACPI_FUNCTION_TRACE(acpi_enable);
@@ -79,26 +75,43 @@ acpi_status acpi_enable(void)
return_ACPI_STATUS(AE_NO_ACPI_TABLES);
}
+ /* If the Hardware Reduced flag is set, machine is always in acpi mode */
+
+ if (acpi_gbl_reduced_hardware) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
/* Check current mode */
if (acpi_hw_get_mode() == ACPI_SYS_MODE_ACPI) {
ACPI_DEBUG_PRINT((ACPI_DB_INIT,
"System is already in ACPI mode\n"));
- } else {
- /* Transition to ACPI mode */
+ return_ACPI_STATUS(AE_OK);
+ }
- status = acpi_hw_set_mode(ACPI_SYS_MODE_ACPI);
- if (ACPI_FAILURE(status)) {
- ACPI_ERROR((AE_INFO,
- "Could not transition to ACPI mode"));
- return_ACPI_STATUS(status);
- }
+ /* Transition to ACPI mode */
- ACPI_DEBUG_PRINT((ACPI_DB_INIT,
- "Transition to ACPI mode successful\n"));
+ status = acpi_hw_set_mode(ACPI_SYS_MODE_ACPI);
+ if (ACPI_FAILURE(status)) {
+ ACPI_ERROR((AE_INFO,
+ "Could not transition to ACPI mode"));
+ return_ACPI_STATUS(status);
}
- return_ACPI_STATUS(status);
+ /* Sanity check that transition succeeded */
+
+ for (retry = 0; retry < 30000; ++retry) {
+ if (acpi_hw_get_mode() == ACPI_SYS_MODE_ACPI) {
+ if (retry != 0)
+ ACPI_WARNING((AE_INFO,
+ "Platform took > %d00 usec to enter ACPI mode", retry));
+ return_ACPI_STATUS(AE_OK);
+ }
+ acpi_os_stall(100); /* 100 usec */
+ }
+
+ ACPI_ERROR((AE_INFO, "Hardware did not enter ACPI mode"));
+ return_ACPI_STATUS(AE_NO_HARDWARE_RESPONSE);
}
ACPI_EXPORT_SYMBOL(acpi_enable)
@@ -120,6 +133,12 @@ acpi_status acpi_disable(void)
ACPI_FUNCTION_TRACE(acpi_disable);
+ /* If the Hardware Reduced flag is set, machine is always in acpi mode */
+
+ if (acpi_gbl_reduced_hardware) {
+ return_ACPI_STATUS(AE_OK);
+ }
+
if (acpi_hw_get_mode() == ACPI_SYS_MODE_LEGACY) {
ACPI_DEBUG_PRINT((ACPI_DB_INIT,
"System is already in legacy (non-ACPI) mode\n"));
@@ -146,8 +165,8 @@ ACPI_EXPORT_SYMBOL(acpi_disable)
*
* FUNCTION: acpi_enable_event
*
- * PARAMETERS: Event - The fixed eventto be enabled
- * Flags - Reserved
+ * PARAMETERS: event - The fixed eventto be enabled
+ * flags - Reserved
*
* RETURN: Status
*
@@ -172,8 +191,8 @@ acpi_status acpi_enable_event(u32 event, u32 flags)
* register bit)
*/
status =
- acpi_set_register(acpi_gbl_fixed_event_info[event].
- enable_register_id, 1);
+ acpi_write_bit_register(acpi_gbl_fixed_event_info[event].
+ enable_register_id, ACPI_ENABLE_EVENT);
if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
}
@@ -181,8 +200,8 @@ acpi_status acpi_enable_event(u32 event, u32 flags)
/* Make sure that the hardware responded */
status =
- acpi_get_register(acpi_gbl_fixed_event_info[event].
- enable_register_id, &value);
+ acpi_read_bit_register(acpi_gbl_fixed_event_info[event].
+ enable_register_id, &value);
if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
}
@@ -201,135 +220,10 @@ ACPI_EXPORT_SYMBOL(acpi_enable_event)
/*******************************************************************************
*
- * FUNCTION: acpi_set_gpe_type
- *
- * PARAMETERS: gpe_device - Parent GPE Device
- * gpe_number - GPE level within the GPE block
- * Type - New GPE type
- *
- * RETURN: Status
- *
- * DESCRIPTION: Set the type of an individual GPE
- *
- ******************************************************************************/
-acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type)
-{
- acpi_status status = AE_OK;
- struct acpi_gpe_event_info *gpe_event_info;
-
- ACPI_FUNCTION_TRACE(acpi_set_gpe_type);
-
- /* Ensure that we have a valid GPE number */
-
- gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
- if (!gpe_event_info) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
-
- if ((gpe_event_info->flags & ACPI_GPE_TYPE_MASK) == type) {
- return_ACPI_STATUS(AE_OK);
- }
-
- /* Set the new type (will disable GPE if currently enabled) */
-
- status = acpi_ev_set_gpe_type(gpe_event_info, type);
-
- unlock_and_exit:
- return_ACPI_STATUS(status);
-}
-
-ACPI_EXPORT_SYMBOL(acpi_set_gpe_type)
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_enable_gpe
- *
- * PARAMETERS: gpe_device - Parent GPE Device
- * gpe_number - GPE level within the GPE block
- * Flags - Just enable, or also wake enable?
- * Called from ISR or not
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enable an ACPI event (general purpose)
- *
- ******************************************************************************/
-acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number)
-{
- acpi_status status = AE_OK;
- acpi_cpu_flags flags;
- struct acpi_gpe_event_info *gpe_event_info;
-
- ACPI_FUNCTION_TRACE(acpi_enable_gpe);
-
- flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
-
- /* Ensure that we have a valid GPE number */
-
- gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
- if (!gpe_event_info) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
-
- /* Perform the enable */
-
- status = acpi_ev_enable_gpe(gpe_event_info, TRUE);
-
- unlock_and_exit:
- acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
- return_ACPI_STATUS(status);
-}
-
-ACPI_EXPORT_SYMBOL(acpi_enable_gpe)
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_disable_gpe
- *
- * PARAMETERS: gpe_device - Parent GPE Device
- * gpe_number - GPE level within the GPE block
- * Flags - Just disable, or also wake disable?
- * Called from ISR or not
- *
- * RETURN: Status
- *
- * DESCRIPTION: Disable an ACPI event (general purpose)
- *
- ******************************************************************************/
-acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number)
-{
- acpi_status status = AE_OK;
- acpi_cpu_flags flags;
- struct acpi_gpe_event_info *gpe_event_info;
-
- ACPI_FUNCTION_TRACE(acpi_disable_gpe);
-
- flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
- /* Ensure that we have a valid GPE number */
-
- gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
- if (!gpe_event_info) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
-
- status = acpi_ev_disable_gpe(gpe_event_info);
-
-unlock_and_exit:
- acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
- return_ACPI_STATUS(status);
-}
-
-ACPI_EXPORT_SYMBOL(acpi_disable_gpe)
-
-/*******************************************************************************
- *
* FUNCTION: acpi_disable_event
*
- * PARAMETERS: Event - The fixed eventto be enabled
- * Flags - Reserved
+ * PARAMETERS: event - The fixed event to be disabled
+ * flags - Reserved
*
* RETURN: Status
*
@@ -354,15 +248,15 @@ acpi_status acpi_disable_event(u32 event, u32 flags)
* register bit)
*/
status =
- acpi_set_register(acpi_gbl_fixed_event_info[event].
- enable_register_id, 0);
+ acpi_write_bit_register(acpi_gbl_fixed_event_info[event].
+ enable_register_id, ACPI_DISABLE_EVENT);
if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
}
status =
- acpi_get_register(acpi_gbl_fixed_event_info[event].
- enable_register_id, &value);
+ acpi_read_bit_register(acpi_gbl_fixed_event_info[event].
+ enable_register_id, &value);
if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
}
@@ -383,7 +277,7 @@ ACPI_EXPORT_SYMBOL(acpi_disable_event)
*
* FUNCTION: acpi_clear_event
*
- * PARAMETERS: Event - The fixed event to be cleared
+ * PARAMETERS: event - The fixed event to be cleared
*
* RETURN: Status
*
@@ -407,8 +301,8 @@ acpi_status acpi_clear_event(u32 event)
* register bit)
*/
status =
- acpi_set_register(acpi_gbl_fixed_event_info[event].
- status_register_id, 1);
+ acpi_write_bit_register(acpi_gbl_fixed_event_info[event].
+ status_register_id, ACPI_CLEAR_STATUS);
return_ACPI_STATUS(status);
}
@@ -417,56 +311,9 @@ ACPI_EXPORT_SYMBOL(acpi_clear_event)
/*******************************************************************************
*
- * FUNCTION: acpi_clear_gpe
- *
- * PARAMETERS: gpe_device - Parent GPE Device
- * gpe_number - GPE level within the GPE block
- * Flags - Called from an ISR or not
- *
- * RETURN: Status
- *
- * DESCRIPTION: Clear an ACPI event (general purpose)
- *
- ******************************************************************************/
-acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags)
-{
- acpi_status status = AE_OK;
- struct acpi_gpe_event_info *gpe_event_info;
-
- ACPI_FUNCTION_TRACE(acpi_clear_gpe);
-
- /* Use semaphore lock if not executing at interrupt level */
-
- if (flags & ACPI_NOT_ISR) {
- status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
- }
-
- /* Ensure that we have a valid GPE number */
-
- gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
- if (!gpe_event_info) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
-
- status = acpi_hw_clear_gpe(gpe_event_info);
-
- unlock_and_exit:
- if (flags & ACPI_NOT_ISR) {
- (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
- }
- return_ACPI_STATUS(status);
-}
-
-ACPI_EXPORT_SYMBOL(acpi_clear_gpe)
-/*******************************************************************************
- *
* FUNCTION: acpi_get_event_status
*
- * PARAMETERS: Event - The fixed event
+ * PARAMETERS: event - The fixed event
* event_status - Where the current status of the event will
* be returned
*
@@ -495,7 +342,7 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status)
/* Get the status of the requested fixed event */
status =
- acpi_get_register(acpi_gbl_fixed_event_info[event].
+ acpi_read_bit_register(acpi_gbl_fixed_event_info[event].
enable_register_id, &value);
if (ACPI_FAILURE(status))
return_ACPI_STATUS(status);
@@ -503,7 +350,7 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status)
*event_status = value;
status =
- acpi_get_register(acpi_gbl_fixed_event_info[event].
+ acpi_read_bit_register(acpi_gbl_fixed_event_info[event].
status_register_id, &value);
if (ACPI_FAILURE(status))
return_ACPI_STATUS(status);
@@ -518,354 +365,4 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status)
}
ACPI_EXPORT_SYMBOL(acpi_get_event_status)
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_get_gpe_status
- *
- * PARAMETERS: gpe_device - Parent GPE Device
- * gpe_number - GPE level within the GPE block
- * Flags - Called from an ISR or not
- * event_status - Where the current status of the event will
- * be returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Get status of an event (general purpose)
- *
- ******************************************************************************/
-acpi_status
-acpi_get_gpe_status(acpi_handle gpe_device,
- u32 gpe_number, u32 flags, acpi_event_status * event_status)
-{
- acpi_status status = AE_OK;
- struct acpi_gpe_event_info *gpe_event_info;
-
- ACPI_FUNCTION_TRACE(acpi_get_gpe_status);
-
- /* Use semaphore lock if not executing at interrupt level */
-
- if (flags & ACPI_NOT_ISR) {
- status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
- }
-
- /* Ensure that we have a valid GPE number */
-
- gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
- if (!gpe_event_info) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
-
- /* Obtain status on the requested GPE number */
-
- status = acpi_hw_get_gpe_status(gpe_event_info, event_status);
-
- if (gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK)
- *event_status |= ACPI_EVENT_FLAG_HANDLE;
-
- unlock_and_exit:
- if (flags & ACPI_NOT_ISR) {
- (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
- }
- return_ACPI_STATUS(status);
-}
-
-ACPI_EXPORT_SYMBOL(acpi_get_gpe_status)
-/*******************************************************************************
- *
- * FUNCTION: acpi_install_gpe_block
- *
- * PARAMETERS: gpe_device - Handle to the parent GPE Block Device
- * gpe_block_address - Address and space_iD
- * register_count - Number of GPE register pairs in the block
- * interrupt_number - H/W interrupt for the block
- *
- * RETURN: Status
- *
- * DESCRIPTION: Create and Install a block of GPE registers
- *
- ******************************************************************************/
-acpi_status
-acpi_install_gpe_block(acpi_handle gpe_device,
- struct acpi_generic_address *gpe_block_address,
- u32 register_count, u32 interrupt_number)
-{
- acpi_status status;
- union acpi_operand_object *obj_desc;
- struct acpi_namespace_node *node;
- struct acpi_gpe_block_info *gpe_block;
-
- ACPI_FUNCTION_TRACE(acpi_install_gpe_block);
-
- if ((!gpe_device) || (!gpe_block_address) || (!register_count)) {
- return_ACPI_STATUS(AE_BAD_PARAMETER);
- }
-
- status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE(status)) {
- return (status);
- }
-
- node = acpi_ns_map_handle_to_node(gpe_device);
- if (!node) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
-
- /*
- * For user-installed GPE Block Devices, the gpe_block_base_number
- * is always zero
- */
- status =
- acpi_ev_create_gpe_block(node, gpe_block_address, register_count, 0,
- interrupt_number, &gpe_block);
- if (ACPI_FAILURE(status)) {
- goto unlock_and_exit;
- }
-
- /* Run the _PRW methods and enable the GPEs */
-
- status = acpi_ev_initialize_gpe_block(node, gpe_block);
- if (ACPI_FAILURE(status)) {
- goto unlock_and_exit;
- }
-
- /* Get the device_object attached to the node */
-
- obj_desc = acpi_ns_get_attached_object(node);
- if (!obj_desc) {
-
- /* No object, create a new one */
-
- obj_desc = acpi_ut_create_internal_object(ACPI_TYPE_DEVICE);
- if (!obj_desc) {
- status = AE_NO_MEMORY;
- goto unlock_and_exit;
- }
-
- status =
- acpi_ns_attach_object(node, obj_desc, ACPI_TYPE_DEVICE);
-
- /* Remove local reference to the object */
-
- acpi_ut_remove_reference(obj_desc);
-
- if (ACPI_FAILURE(status)) {
- goto unlock_and_exit;
- }
- }
-
- /* Install the GPE block in the device_object */
-
- obj_desc->device.gpe_block = gpe_block;
-
- unlock_and_exit:
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS(status);
-}
-
-ACPI_EXPORT_SYMBOL(acpi_install_gpe_block)
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_remove_gpe_block
- *
- * PARAMETERS: gpe_device - Handle to the parent GPE Block Device
- *
- * RETURN: Status
- *
- * DESCRIPTION: Remove a previously installed block of GPE registers
- *
- ******************************************************************************/
-acpi_status acpi_remove_gpe_block(acpi_handle gpe_device)
-{
- union acpi_operand_object *obj_desc;
- acpi_status status;
- struct acpi_namespace_node *node;
-
- ACPI_FUNCTION_TRACE(acpi_remove_gpe_block);
-
- if (!gpe_device) {
- return_ACPI_STATUS(AE_BAD_PARAMETER);
- }
-
- status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
- if (ACPI_FAILURE(status)) {
- return (status);
- }
-
- node = acpi_ns_map_handle_to_node(gpe_device);
- if (!node) {
- status = AE_BAD_PARAMETER;
- goto unlock_and_exit;
- }
-
- /* Get the device_object attached to the node */
-
- obj_desc = acpi_ns_get_attached_object(node);
- if (!obj_desc || !obj_desc->device.gpe_block) {
- return_ACPI_STATUS(AE_NULL_OBJECT);
- }
-
- /* Delete the GPE block (but not the device_object) */
-
- status = acpi_ev_delete_gpe_block(obj_desc->device.gpe_block);
- if (ACPI_SUCCESS(status)) {
- obj_desc->device.gpe_block = NULL;
- }
-
- unlock_and_exit:
- (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
- return_ACPI_STATUS(status);
-}
-
-ACPI_EXPORT_SYMBOL(acpi_remove_gpe_block)
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_get_gpe_device
- *
- * PARAMETERS: Index - System GPE index (0-current_gpe_count)
- * gpe_device - Where the parent GPE Device is returned
- *
- * RETURN: Status
- *
- * DESCRIPTION: Obtain the GPE device associated with the input index. A NULL
- * gpe device indicates that the gpe number is contained in one of
- * the FADT-defined gpe blocks. Otherwise, the GPE block device.
- *
- ******************************************************************************/
-acpi_status
-acpi_get_gpe_device(u32 index, acpi_handle *gpe_device)
-{
- struct acpi_gpe_device_info info;
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(acpi_get_gpe_device);
-
- if (!gpe_device) {
- return_ACPI_STATUS(AE_BAD_PARAMETER);
- }
-
- if (index >= acpi_current_gpe_count) {
- return_ACPI_STATUS(AE_NOT_EXIST);
- }
-
- /* Setup and walk the GPE list */
-
- info.index = index;
- info.status = AE_NOT_EXIST;
- info.gpe_device = NULL;
- info.next_block_base_index = 0;
-
- status = acpi_ev_walk_gpe_list(acpi_ev_get_gpe_device, &info);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
- *gpe_device = info.gpe_device;
- return_ACPI_STATUS(info.status);
-}
-
-ACPI_EXPORT_SYMBOL(acpi_get_gpe_device)
-
-/*******************************************************************************
- *
- * FUNCTION: acpi_ev_get_gpe_device
- *
- * PARAMETERS: GPE_WALK_CALLBACK
- *
- * RETURN: Status
- *
- * DESCRIPTION: Matches the input GPE index (0-current_gpe_count) with a GPE
- * block device. NULL if the GPE is one of the FADT-defined GPEs.
- *
- ******************************************************************************/
-acpi_status
-acpi_ev_get_gpe_device(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
- struct acpi_gpe_block_info *gpe_block, void *context)
-{
- struct acpi_gpe_device_info *info = context;
-
- /* Increment Index by the number of GPEs in this block */
-
- info->next_block_base_index +=
- (gpe_block->register_count * ACPI_GPE_REGISTER_WIDTH);
-
- if (info->index < info->next_block_base_index) {
- /*
- * The GPE index is within this block, get the node. Leave the node
- * NULL for the FADT-defined GPEs
- */
- if ((gpe_block->node)->type == ACPI_TYPE_DEVICE) {
- info->gpe_device = gpe_block->node;
- }
-
- info->status = AE_OK;
- return (AE_CTRL_END);
- }
-
- return (AE_OK);
-}
-
-/******************************************************************************
- *
- * FUNCTION: acpi_disable_all_gpes
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Disable and clear all GPEs in all GPE blocks
- *
- ******************************************************************************/
-
-acpi_status acpi_disable_all_gpes(void)
-{
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(acpi_disable_all_gpes);
-
- status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
- status = acpi_hw_disable_all_gpes();
- (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
-
- return_ACPI_STATUS(status);
-}
-
-/******************************************************************************
- *
- * FUNCTION: acpi_enable_all_runtime_gpes
- *
- * PARAMETERS: None
- *
- * RETURN: Status
- *
- * DESCRIPTION: Enable all "runtime" GPEs, in all GPE blocks
- *
- ******************************************************************************/
-
-acpi_status acpi_enable_all_runtime_gpes(void)
-{
- acpi_status status;
-
- ACPI_FUNCTION_TRACE(acpi_enable_all_runtime_gpes);
-
- status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
- if (ACPI_FAILURE(status)) {
- return_ACPI_STATUS(status);
- }
-
- status = acpi_hw_enable_all_runtime_gpes();
- (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
-
- return_ACPI_STATUS(status);
-}
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evxfgpe.c b/drivers/acpi/acpica/evxfgpe.c
new file mode 100644
index 00000000000..cb534faf536
--- /dev/null
+++ b/drivers/acpi/acpica/evxfgpe.c
@@ -0,0 +1,756 @@
+/******************************************************************************
+ *
+ * Module Name: evxfgpe - External Interfaces for General Purpose Events (GPEs)
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#define EXPORT_ACPI_INTERFACES
+
+#include <acpi/acpi.h>
+#include "accommon.h"
+#include "acevents.h"
+#include "acnamesp.h"
+
+#define _COMPONENT ACPI_EVENTS
+ACPI_MODULE_NAME("evxfgpe")
+
+#if (!ACPI_REDUCED_HARDWARE) /* Entire module */
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_update_all_gpes
+ *
+ * PARAMETERS: None
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Complete GPE initialization and enable all GPEs that have
+ * associated _Lxx or _Exx methods and are not pointed to by any
+ * device _PRW methods (this indicates that these GPEs are
+ * generally intended for system or device wakeup. Such GPEs
+ * have to be enabled directly when the devices whose _PRW
+ * methods point to them are set up for wakeup signaling.)
+ *
+ * NOTE: Should be called after any GPEs are added to the system. Primarily,
+ * after the system _PRW methods have been run, but also after a GPE Block
+ * Device has been added or if any new GPE methods have been added via a
+ * dynamic table load.
+ *
+ ******************************************************************************/
+
+acpi_status acpi_update_all_gpes(void)
+{
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE(acpi_update_all_gpes);
+
+ status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ if (acpi_gbl_all_gpes_initialized) {
+ goto unlock_and_exit;
+ }
+
+ status = acpi_ev_walk_gpe_list(acpi_ev_initialize_gpe_block, NULL);
+ if (ACPI_SUCCESS(status)) {
+ acpi_gbl_all_gpes_initialized = TRUE;
+ }
+
+unlock_and_exit:
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+
+ return_ACPI_STATUS(status);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_update_all_gpes)
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_enable_gpe
+ *
+ * PARAMETERS: gpe_device - Parent GPE Device. NULL for GPE0/GPE1
+ * gpe_number - GPE level within the GPE block
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Add a reference to a GPE. On the first reference, the GPE is
+ * hardware-enabled.
+ *
+ ******************************************************************************/
+
+acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number)
+{
+ acpi_status status = AE_BAD_PARAMETER;
+ struct acpi_gpe_event_info *gpe_event_info;
+ acpi_cpu_flags flags;
+
+ ACPI_FUNCTION_TRACE(acpi_enable_gpe);
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+ /* Ensure that we have a valid GPE number */
+
+ gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
+ if (gpe_event_info) {
+ status = acpi_ev_add_gpe_reference(gpe_event_info);
+ }
+
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ return_ACPI_STATUS(status);
+}
+ACPI_EXPORT_SYMBOL(acpi_enable_gpe)
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_disable_gpe
+ *
+ * PARAMETERS: gpe_device - Parent GPE Device. NULL for GPE0/GPE1
+ * gpe_number - GPE level within the GPE block
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Remove a reference to a GPE. When the last reference is
+ * removed, only then is the GPE disabled (for runtime GPEs), or
+ * the GPE mask bit disabled (for wake GPEs)
+ *
+ ******************************************************************************/
+
+acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number)
+{
+ acpi_status status = AE_BAD_PARAMETER;
+ struct acpi_gpe_event_info *gpe_event_info;
+ acpi_cpu_flags flags;
+
+ ACPI_FUNCTION_TRACE(acpi_disable_gpe);
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+ /* Ensure that we have a valid GPE number */
+
+ gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
+ if (gpe_event_info) {
+ status = acpi_ev_remove_gpe_reference(gpe_event_info) ;
+ }
+
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ return_ACPI_STATUS(status);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_disable_gpe)
+
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_setup_gpe_for_wake
+ *
+ * PARAMETERS: wake_device - Device associated with the GPE (via _PRW)
+ * gpe_device - Parent GPE Device. NULL for GPE0/GPE1
+ * gpe_number - GPE level within the GPE block
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Mark a GPE as having the ability to wake the system. This
+ * interface is intended to be used as the host executes the
+ * _PRW methods (Power Resources for Wake) in the system tables.
+ * Each _PRW appears under a Device Object (The wake_device), and
+ * contains the info for the wake GPE associated with the
+ * wake_device.
+ *
+ ******************************************************************************/
+acpi_status
+acpi_setup_gpe_for_wake(acpi_handle wake_device,
+ acpi_handle gpe_device, u32 gpe_number)
+{
+ acpi_status status;
+ struct acpi_gpe_event_info *gpe_event_info;
+ struct acpi_namespace_node *device_node;
+ struct acpi_gpe_notify_info *notify;
+ struct acpi_gpe_notify_info *new_notify;
+ acpi_cpu_flags flags;
+
+ ACPI_FUNCTION_TRACE(acpi_setup_gpe_for_wake);
+
+ /* Parameter Validation */
+
+ if (!wake_device) {
+ /*
+ * By forcing wake_device to be valid, we automatically enable the
+ * implicit notify feature on all hosts.
+ */
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
+ }
+
+ /* Handle root object case */
+
+ if (wake_device == ACPI_ROOT_OBJECT) {
+ device_node = acpi_gbl_root_node;
+ } else {
+ device_node =
+ ACPI_CAST_PTR(struct acpi_namespace_node, wake_device);
+ }
+
+ /* Validate wake_device is of type Device */
+
+ if (device_node->type != ACPI_TYPE_DEVICE) {
+ return_ACPI_STATUS (AE_BAD_PARAMETER);
+ }
+
+ /*
+ * Allocate a new notify object up front, in case it is needed.
+ * Memory allocation while holding a spinlock is a big no-no
+ * on some hosts.
+ */
+ new_notify = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_gpe_notify_info));
+ if (!new_notify) {
+ return_ACPI_STATUS(AE_NO_MEMORY);
+ }
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+ /* Ensure that we have a valid GPE number */
+
+ gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
+ if (!gpe_event_info) {
+ status = AE_BAD_PARAMETER;
+ goto unlock_and_exit;
+ }
+
+ /*
+ * If there is no method or handler for this GPE, then the
+ * wake_device will be notified whenever this GPE fires. This is
+ * known as an "implicit notify". Note: The GPE is assumed to be
+ * level-triggered (for windows compatibility).
+ */
+ if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
+ ACPI_GPE_DISPATCH_NONE) {
+ /*
+ * This is the first device for implicit notify on this GPE.
+ * Just set the flags here, and enter the NOTIFY block below.
+ */
+ gpe_event_info->flags =
+ (ACPI_GPE_DISPATCH_NOTIFY | ACPI_GPE_LEVEL_TRIGGERED);
+ }
+
+ /*
+ * If we already have an implicit notify on this GPE, add
+ * this device to the notify list.
+ */
+ if ((gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) ==
+ ACPI_GPE_DISPATCH_NOTIFY) {
+
+ /* Ensure that the device is not already in the list */
+
+ notify = gpe_event_info->dispatch.notify_list;
+ while (notify) {
+ if (notify->device_node == device_node) {
+ status = AE_ALREADY_EXISTS;
+ goto unlock_and_exit;
+ }
+ notify = notify->next;
+ }
+
+ /* Add this device to the notify list for this GPE */
+
+ new_notify->device_node = device_node;
+ new_notify->next = gpe_event_info->dispatch.notify_list;
+ gpe_event_info->dispatch.notify_list = new_notify;
+ new_notify = NULL;
+ }
+
+ /* Mark the GPE as a possible wake event */
+
+ gpe_event_info->flags |= ACPI_GPE_CAN_WAKE;
+ status = AE_OK;
+
+unlock_and_exit:
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+
+ /* Delete the notify object if it was not used above */
+
+ if (new_notify) {
+ ACPI_FREE(new_notify);
+ }
+ return_ACPI_STATUS(status);
+}
+ACPI_EXPORT_SYMBOL(acpi_setup_gpe_for_wake)
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_set_gpe_wake_mask
+ *
+ * PARAMETERS: gpe_device - Parent GPE Device. NULL for GPE0/GPE1
+ * gpe_number - GPE level within the GPE block
+ * action - Enable or Disable
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Set or clear the GPE's wakeup enable mask bit. The GPE must
+ * already be marked as a WAKE GPE.
+ *
+ ******************************************************************************/
+
+acpi_status
+acpi_set_gpe_wake_mask(acpi_handle gpe_device, u32 gpe_number, u8 action)
+{
+ acpi_status status = AE_OK;
+ struct acpi_gpe_event_info *gpe_event_info;
+ struct acpi_gpe_register_info *gpe_register_info;
+ acpi_cpu_flags flags;
+ u32 register_bit;
+
+ ACPI_FUNCTION_TRACE(acpi_set_gpe_wake_mask);
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+ /*
+ * Ensure that we have a valid GPE number and that this GPE is in
+ * fact a wake GPE
+ */
+ gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
+ if (!gpe_event_info) {
+ status = AE_BAD_PARAMETER;
+ goto unlock_and_exit;
+ }
+
+ if (!(gpe_event_info->flags & ACPI_GPE_CAN_WAKE)) {
+ status = AE_TYPE;
+ goto unlock_and_exit;
+ }
+
+ gpe_register_info = gpe_event_info->register_info;
+ if (!gpe_register_info) {
+ status = AE_NOT_EXIST;
+ goto unlock_and_exit;
+ }
+
+ register_bit = acpi_hw_get_gpe_register_bit(gpe_event_info);
+
+ /* Perform the action */
+
+ switch (action) {
+ case ACPI_GPE_ENABLE:
+
+ ACPI_SET_BIT(gpe_register_info->enable_for_wake,
+ (u8)register_bit);
+ break;
+
+ case ACPI_GPE_DISABLE:
+
+ ACPI_CLEAR_BIT(gpe_register_info->enable_for_wake,
+ (u8)register_bit);
+ break;
+
+ default:
+
+ ACPI_ERROR((AE_INFO, "%u, Invalid action", action));
+ status = AE_BAD_PARAMETER;
+ break;
+ }
+
+unlock_and_exit:
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ return_ACPI_STATUS(status);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_set_gpe_wake_mask)
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_clear_gpe
+ *
+ * PARAMETERS: gpe_device - Parent GPE Device. NULL for GPE0/GPE1
+ * gpe_number - GPE level within the GPE block
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Clear an ACPI event (general purpose)
+ *
+ ******************************************************************************/
+acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number)
+{
+ acpi_status status = AE_OK;
+ struct acpi_gpe_event_info *gpe_event_info;
+ acpi_cpu_flags flags;
+
+ ACPI_FUNCTION_TRACE(acpi_clear_gpe);
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+ /* Ensure that we have a valid GPE number */
+
+ gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
+ if (!gpe_event_info) {
+ status = AE_BAD_PARAMETER;
+ goto unlock_and_exit;
+ }
+
+ status = acpi_hw_clear_gpe(gpe_event_info);
+
+ unlock_and_exit:
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ return_ACPI_STATUS(status);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_clear_gpe)
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_get_gpe_status
+ *
+ * PARAMETERS: gpe_device - Parent GPE Device. NULL for GPE0/GPE1
+ * gpe_number - GPE level within the GPE block
+ * event_status - Where the current status of the event
+ * will be returned
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Get the current status of a GPE (signalled/not_signalled)
+ *
+ ******************************************************************************/
+acpi_status
+acpi_get_gpe_status(acpi_handle gpe_device,
+ u32 gpe_number, acpi_event_status *event_status)
+{
+ acpi_status status = AE_OK;
+ struct acpi_gpe_event_info *gpe_event_info;
+ acpi_cpu_flags flags;
+
+ ACPI_FUNCTION_TRACE(acpi_get_gpe_status);
+
+ flags = acpi_os_acquire_lock(acpi_gbl_gpe_lock);
+
+ /* Ensure that we have a valid GPE number */
+
+ gpe_event_info = acpi_ev_get_gpe_event_info(gpe_device, gpe_number);
+ if (!gpe_event_info) {
+ status = AE_BAD_PARAMETER;
+ goto unlock_and_exit;
+ }
+
+ /* Obtain status on the requested GPE number */
+
+ status = acpi_hw_get_gpe_status(gpe_event_info, event_status);
+
+ if (gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK)
+ *event_status |= ACPI_EVENT_FLAG_HANDLE;
+
+unlock_and_exit:
+ acpi_os_release_lock(acpi_gbl_gpe_lock, flags);
+ return_ACPI_STATUS(status);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_get_gpe_status)
+
+/******************************************************************************
+ *
+ * FUNCTION: acpi_disable_all_gpes
+ *
+ * PARAMETERS: None
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Disable and clear all GPEs in all GPE blocks
+ *
+ ******************************************************************************/
+
+acpi_status acpi_disable_all_gpes(void)
+{
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE(acpi_disable_all_gpes);
+
+ status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ status = acpi_hw_disable_all_gpes();
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+
+ return_ACPI_STATUS(status);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_disable_all_gpes)
+
+/******************************************************************************
+ *
+ * FUNCTION: acpi_enable_all_runtime_gpes
+ *
+ * PARAMETERS: None
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Enable all "runtime" GPEs, in all GPE blocks
+ *
+ ******************************************************************************/
+
+acpi_status acpi_enable_all_runtime_gpes(void)
+{
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE(acpi_enable_all_runtime_gpes);
+
+ status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ status = acpi_hw_enable_all_runtime_gpes();
+ (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
+
+ return_ACPI_STATUS(status);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_enable_all_runtime_gpes)
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_install_gpe_block
+ *
+ * PARAMETERS: gpe_device - Handle to the parent GPE Block Device
+ * gpe_block_address - Address and space_ID
+ * register_count - Number of GPE register pairs in the block
+ * interrupt_number - H/W interrupt for the block
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Create and Install a block of GPE registers. The GPEs are not
+ * enabled here.
+ *
+ ******************************************************************************/
+acpi_status
+acpi_install_gpe_block(acpi_handle gpe_device,
+ struct acpi_generic_address *gpe_block_address,
+ u32 register_count, u32 interrupt_number)
+{
+ acpi_status status;
+ union acpi_operand_object *obj_desc;
+ struct acpi_namespace_node *node;
+ struct acpi_gpe_block_info *gpe_block;
+
+ ACPI_FUNCTION_TRACE(acpi_install_gpe_block);
+
+ if ((!gpe_device) || (!gpe_block_address) || (!register_count)) {
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
+ }
+
+ status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ node = acpi_ns_validate_handle(gpe_device);
+ if (!node) {
+ status = AE_BAD_PARAMETER;
+ goto unlock_and_exit;
+ }
+
+ /* Validate the parent device */
+
+ if (node->type != ACPI_TYPE_DEVICE) {
+ status = AE_TYPE;
+ goto unlock_and_exit;
+ }
+
+ if (node->object) {
+ status = AE_ALREADY_EXISTS;
+ goto unlock_and_exit;
+ }
+
+ /*
+ * For user-installed GPE Block Devices, the gpe_block_base_number
+ * is always zero
+ */
+ status = acpi_ev_create_gpe_block(node, gpe_block_address->address,
+ gpe_block_address->space_id,
+ register_count, 0, interrupt_number,
+ &gpe_block);
+ if (ACPI_FAILURE(status)) {
+ goto unlock_and_exit;
+ }
+
+ /* Install block in the device_object attached to the node */
+
+ obj_desc = acpi_ns_get_attached_object(node);
+ if (!obj_desc) {
+
+ /*
+ * No object, create a new one (Device nodes do not always have
+ * an attached object)
+ */
+ obj_desc = acpi_ut_create_internal_object(ACPI_TYPE_DEVICE);
+ if (!obj_desc) {
+ status = AE_NO_MEMORY;
+ goto unlock_and_exit;
+ }
+
+ status =
+ acpi_ns_attach_object(node, obj_desc, ACPI_TYPE_DEVICE);
+
+ /* Remove local reference to the object */
+
+ acpi_ut_remove_reference(obj_desc);
+
+ if (ACPI_FAILURE(status)) {
+ goto unlock_and_exit;
+ }
+ }
+
+ /* Now install the GPE block in the device_object */
+
+ obj_desc->device.gpe_block = gpe_block;
+
+unlock_and_exit:
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
+ return_ACPI_STATUS(status);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_install_gpe_block)
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_remove_gpe_block
+ *
+ * PARAMETERS: gpe_device - Handle to the parent GPE Block Device
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Remove a previously installed block of GPE registers
+ *
+ ******************************************************************************/
+acpi_status acpi_remove_gpe_block(acpi_handle gpe_device)
+{
+ union acpi_operand_object *obj_desc;
+ acpi_status status;
+ struct acpi_namespace_node *node;
+
+ ACPI_FUNCTION_TRACE(acpi_remove_gpe_block);
+
+ if (!gpe_device) {
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
+ }
+
+ status = acpi_ut_acquire_mutex(ACPI_MTX_NAMESPACE);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ node = acpi_ns_validate_handle(gpe_device);
+ if (!node) {
+ status = AE_BAD_PARAMETER;
+ goto unlock_and_exit;
+ }
+
+ /* Validate the parent device */
+
+ if (node->type != ACPI_TYPE_DEVICE) {
+ status = AE_TYPE;
+ goto unlock_and_exit;
+ }
+
+ /* Get the device_object attached to the node */
+
+ obj_desc = acpi_ns_get_attached_object(node);
+ if (!obj_desc || !obj_desc->device.gpe_block) {
+ return_ACPI_STATUS(AE_NULL_OBJECT);
+ }
+
+ /* Delete the GPE block (but not the device_object) */
+
+ status = acpi_ev_delete_gpe_block(obj_desc->device.gpe_block);
+ if (ACPI_SUCCESS(status)) {
+ obj_desc->device.gpe_block = NULL;
+ }
+
+unlock_and_exit:
+ (void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
+ return_ACPI_STATUS(status);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_remove_gpe_block)
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_get_gpe_device
+ *
+ * PARAMETERS: index - System GPE index (0-current_gpe_count)
+ * gpe_device - Where the parent GPE Device is returned
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Obtain the GPE device associated with the input index. A NULL
+ * gpe device indicates that the gpe number is contained in one of
+ * the FADT-defined gpe blocks. Otherwise, the GPE block device.
+ *
+ ******************************************************************************/
+acpi_status acpi_get_gpe_device(u32 index, acpi_handle * gpe_device)
+{
+ struct acpi_gpe_device_info info;
+ acpi_status status;
+
+ ACPI_FUNCTION_TRACE(acpi_get_gpe_device);
+
+ if (!gpe_device) {
+ return_ACPI_STATUS(AE_BAD_PARAMETER);
+ }
+
+ if (index >= acpi_current_gpe_count) {
+ return_ACPI_STATUS(AE_NOT_EXIST);
+ }
+
+ /* Setup and walk the GPE list */
+
+ info.index = index;
+ info.status = AE_NOT_EXIST;
+ info.gpe_device = NULL;
+ info.next_block_base_index = 0;
+
+ status = acpi_ev_walk_gpe_list(acpi_ev_get_gpe_device, &info);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
+
+ *gpe_device = ACPI_CAST_PTR(acpi_handle, info.gpe_device);
+ return_ACPI_STATUS(info.status);
+}
+
+ACPI_EXPORT_SYMBOL(acpi_get_gpe_device)
+#endif /* !ACPI_REDUCED_HARDWARE */
diff --git a/drivers/acpi/acpica/evxfregn.c b/drivers/acpi/acpica/evxfregn.c
index 479e7a3721b..2d6f187939c 100644
--- a/drivers/acpi/acpica/evxfregn.c
+++ b/drivers/acpi/acpica/evxfregn.c
@@ -6,7 +6,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -42,6 +42,8 @@
* POSSIBILITY OF SUCH DAMAGES.
*/
+#define EXPORT_ACPI_INTERFACES
+
#include <acpi/acpi.h>
#include "accommon.h"
#include "acnamesp.h"
@@ -54,16 +56,22 @@ ACPI_MODULE_NAME("evxfregn")
*
* FUNCTION: acpi_install_address_space_handler
*
- * PARAMETERS: Device - Handle for the device
+ * PARAMETERS: device - Handle for the device
* space_id - The address space ID
- * Handler - Address of the handler
- * Setup - Address of the setup function
- * Context - Value passed to the handler on each access
+ * handler - Address of the handler
+ * setup - Address of the setup function
+ * context - Value passed to the handler on each access
*
* RETURN: Status
*
* DESCRIPTION: Install a handler for all op_regions of a given space_id.
*
+ * NOTE: This function should only be called after acpi_enable_subsystem has
+ * been called. This is because any _REG methods associated with the Space ID
+ * are executed here, and these methods can only be safely executed after
+ * the default handlers have been installed and the hardware has been
+ * initialized (via acpi_enable_subsystem.)
+ *
******************************************************************************/
acpi_status
acpi_install_address_space_handler(acpi_handle device,
@@ -89,7 +97,7 @@ acpi_install_address_space_handler(acpi_handle device,
/* Convert and validate the device handle */
- node = acpi_ns_map_handle_to_node(device);
+ node = acpi_ns_validate_handle(device);
if (!node) {
status = AE_BAD_PARAMETER;
goto unlock_and_exit;
@@ -104,11 +112,43 @@ acpi_install_address_space_handler(acpi_handle device,
goto unlock_and_exit;
}
+ /*
+ * For the default space_IDs, (the IDs for which there are default region handlers
+ * installed) Only execute the _REG methods if the global initialization _REG
+ * methods have already been run (via acpi_initialize_objects). In other words,
+ * we will defer the execution of the _REG methods for these space_IDs until
+ * execution of acpi_initialize_objects. This is done because we need the handlers
+ * for the default spaces (mem/io/pci/table) to be installed before we can run
+ * any control methods (or _REG methods). There is known BIOS code that depends
+ * on this.
+ *
+ * For all other space_IDs, we can safely execute the _REG methods immediately.
+ * This means that for IDs like embedded_controller, this function should be called
+ * only after acpi_enable_subsystem has been called.
+ */
+ switch (space_id) {
+ case ACPI_ADR_SPACE_SYSTEM_MEMORY:
+ case ACPI_ADR_SPACE_SYSTEM_IO:
+ case ACPI_ADR_SPACE_PCI_CONFIG:
+ case ACPI_ADR_SPACE_DATA_TABLE:
+
+ if (!acpi_gbl_reg_methods_executed) {
+
+ /* We will defer execution of the _REG methods for this space */
+ goto unlock_and_exit;
+ }
+ break;
+
+ default:
+
+ break;
+ }
+
/* Run all _REG methods for this address space */
status = acpi_ev_execute_reg_methods(node, space_id);
- unlock_and_exit:
+unlock_and_exit:
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
return_ACPI_STATUS(status);
}
@@ -119,9 +159,9 @@ ACPI_EXPORT_SYMBOL(acpi_install_address_space_handler)
*
* FUNCTION: acpi_remove_address_space_handler
*
- * PARAMETERS: Device - Handle for the device
+ * PARAMETERS: device - Handle for the device
* space_id - The address space ID
- * Handler - Address of the handler
+ * handler - Address of the handler
*
* RETURN: Status
*
@@ -155,7 +195,7 @@ acpi_remove_address_space_handler(acpi_handle device,
/* Convert and validate the device handle */
- node = acpi_ns_map_handle_to_node(device);
+ node = acpi_ns_validate_handle(device);
if (!node ||
((node->type != ACPI_TYPE_DEVICE) &&
(node->type != ACPI_TYPE_PROCESSOR) &&
@@ -193,7 +233,8 @@ acpi_remove_address_space_handler(acpi_handle device,
/* Matched space_id, first dereference this in the Regions */
ACPI_DEBUG_PRINT((ACPI_DB_OPREGION,
- "Removing address handler %p(%p) for region %s on Device %p(%p)\n",
+ "Removing address handler %p(%p) for region %s "
+ "on Device %p(%p)\n",
handler_obj, handler,
acpi_ut_get_region_name(space_id),
node, obj_desc));
@@ -246,7 +287,7 @@ acpi_remove_address_space_handler(acpi_handle device,
status = AE_NOT_EXIST;
- unlock_and_exit:
+unlock_and_exit:
(void)acpi_ut_release_mutex(ACPI_MTX_NAMESPACE);
return_ACPI_STATUS(status);
}
diff --git a/drivers/acpi/acpica/exconfig.c b/drivers/acpi/acpica/exconfig.c
index 932bbc26aa0..7d2949420db 100644
--- a/drivers/acpi/acpica/exconfig.c
+++ b/drivers/acpi/acpica/exconfig.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -47,6 +47,8 @@
#include "acnamesp.h"
#include "actables.h"
#include "acdispat.h"
+#include "acevents.h"
+#include "amlcode.h"
#define _COMPONENT ACPI_EXECUTER
ACPI_MODULE_NAME("exconfig")
@@ -57,11 +59,15 @@ acpi_ex_add_table(u32 table_index,
struct acpi_namespace_node *parent_node,
union acpi_operand_object **ddb_handle);
+static acpi_status
+acpi_ex_region_read(union acpi_operand_object *obj_desc,
+ u32 length, u8 *buffer);
+
/*******************************************************************************
*
* FUNCTION: acpi_ex_add_table
*
- * PARAMETERS: Table - Pointer to raw table
+ * PARAMETERS: table - Pointer to raw table
* parent_node - Where to load the table (scope)
* ddb_handle - Where to return the table handle.
*
@@ -77,8 +83,9 @@ acpi_ex_add_table(u32 table_index,
struct acpi_namespace_node *parent_node,
union acpi_operand_object **ddb_handle)
{
- acpi_status status;
union acpi_operand_object *obj_desc;
+ acpi_status status;
+ acpi_owner_id owner_id;
ACPI_FUNCTION_TRACE(ex_add_table);
@@ -91,6 +98,7 @@ acpi_ex_add_table(u32 table_index,
/* Init the table handle */
+ obj_desc->common.flags |= AOPOBJ_DATA_VALID;
obj_desc->reference.class = ACPI_REFCLASS_TABLE;
*ddb_handle = obj_desc;
@@ -104,9 +112,26 @@ acpi_ex_add_table(u32 table_index,
if (ACPI_FAILURE(status)) {
acpi_ut_remove_reference(obj_desc);
*ddb_handle = NULL;
+ return_ACPI_STATUS(status);
}
- return_ACPI_STATUS(status);
+ /* Execute any module-level code that was found in the table */
+
+ acpi_ex_exit_interpreter();
+ acpi_ns_exec_module_code_list();
+ acpi_ex_enter_interpreter();
+
+ /*
+ * Update GPEs for any new _Lxx/_Exx methods. Ignore errors. The host is
+ * responsible for discovering any new wake GPEs by running _PRW methods
+ * that may have been loaded by this table.
+ */
+ status = acpi_tb_get_owner_id(table_index, &owner_id);
+ if (ACPI_SUCCESS(status)) {
+ acpi_ev_update_gpes(owner_id);
+ }
+
+ return_ACPI_STATUS(AE_OK);
}
/*******************************************************************************
@@ -137,12 +162,12 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state,
ACPI_FUNCTION_TRACE(ex_load_table_op);
- /* Validate lengths for the signature_string, OEMIDString, OEMtable_iD */
+ /* Validate lengths for the Signature, oem_id, and oem_table_id strings */
if ((operand[0]->string.length > ACPI_NAME_SIZE) ||
(operand[1]->string.length > ACPI_OEM_ID_SIZE) ||
(operand[2]->string.length > ACPI_OEM_TABLE_ID_SIZE)) {
- return_ACPI_STATUS(AE_BAD_PARAMETER);
+ return_ACPI_STATUS(AE_AML_STRING_LIMIT);
}
/* Find the ACPI table in the RSDT/XSDT */
@@ -157,14 +182,12 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state,
/* Table not found, return an Integer=0 and AE_OK */
- ddb_handle = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
+ ddb_handle = acpi_ut_create_integer_object((u64) 0);
if (!ddb_handle) {
return_ACPI_STATUS(AE_NO_MEMORY);
}
- ddb_handle->integer.value = 0;
*return_desc = ddb_handle;
-
return_ACPI_STATUS(AE_OK);
}
@@ -191,8 +214,8 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state,
/* parameter_path (optional parameter) */
if (operand[4]->string.length > 0) {
- if ((operand[4]->string.pointer[0] != '\\') &&
- (operand[4]->string.pointer[0] != '^')) {
+ if ((operand[4]->string.pointer[0] != AML_ROOT_PREFIX) &&
+ (operand[4]->string.pointer[0] != AML_PARENT_PREFIX)) {
/*
* Path is not absolute, so it will be relative to the node
* referenced by the root_path_string (or the NS root if omitted)
@@ -229,16 +252,16 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state,
walk_state);
if (ACPI_FAILURE(status)) {
(void)acpi_ex_unload_table(ddb_handle);
+
+ acpi_ut_remove_reference(ddb_handle);
return_ACPI_STATUS(status);
}
}
status = acpi_get_table_by_index(table_index, &table);
if (ACPI_SUCCESS(status)) {
- ACPI_INFO((AE_INFO,
- "Dynamic OEM Table Load - [%.4s] OemId [%.6s] OemTableId [%.8s]",
- table->signature, table->oem_id,
- table->oem_table_id));
+ ACPI_INFO((AE_INFO, "Dynamic OEM Table Load:"));
+ acpi_tb_print_table_header(0, table);
}
/* Invoke table handler if present */
@@ -254,11 +277,52 @@ acpi_ex_load_table_op(struct acpi_walk_state *walk_state,
/*******************************************************************************
*
+ * FUNCTION: acpi_ex_region_read
+ *
+ * PARAMETERS: obj_desc - Region descriptor
+ * length - Number of bytes to read
+ * buffer - Pointer to where to put the data
+ *
+ * RETURN: Status
+ *
+ * DESCRIPTION: Read data from an operation region. The read starts from the
+ * beginning of the region.
+ *
+ ******************************************************************************/
+
+static acpi_status
+acpi_ex_region_read(union acpi_operand_object *obj_desc, u32 length, u8 *buffer)
+{
+ acpi_status status;
+ u64 value;
+ u32 region_offset = 0;
+ u32 i;
+
+ /* Bytewise reads */
+
+ for (i = 0; i < length; i++) {
+ status =
+ acpi_ev_address_space_dispatch(obj_desc, NULL, ACPI_READ,
+ region_offset, 8, &value);
+ if (ACPI_FAILURE(status)) {
+ return (status);
+ }
+
+ *buffer = (u8)value;
+ buffer++;
+ region_offset++;
+ }
+
+ return (AE_OK);
+}
+
+/*******************************************************************************
+ *
* FUNCTION: acpi_ex_load_op
*
* PARAMETERS: obj_desc - Region or Buffer/Field where the table will be
* obtained
- * Target - Where a handle to the table will be stored
+ * target - Where a handle to the table will be stored
* walk_state - Current state
*
* RETURN: Status
@@ -279,19 +343,17 @@ acpi_ex_load_op(union acpi_operand_object *obj_desc,
struct acpi_walk_state *walk_state)
{
union acpi_operand_object *ddb_handle;
+ struct acpi_table_header *table_header;
struct acpi_table_header *table;
- struct acpi_table_desc table_desc;
u32 table_index;
acpi_status status;
u32 length;
ACPI_FUNCTION_TRACE(ex_load_op);
- ACPI_MEMSET(&table_desc, 0, sizeof(struct acpi_table_desc));
-
/* Source Object can be either an op_region or a Buffer/Field */
- switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
+ switch (obj_desc->common.type) {
case ACPI_TYPE_REGION:
ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
@@ -314,18 +376,23 @@ acpi_ex_load_op(union acpi_operand_object *obj_desc,
}
}
- /*
- * Map the table header and get the actual table length. The region
- * length is not guaranteed to be the same as the table length.
- */
- table = acpi_os_map_memory(obj_desc->region.address,
- sizeof(struct acpi_table_header));
- if (!table) {
+ /* Get the table header first so we can get the table length */
+
+ table_header = ACPI_ALLOCATE(sizeof(struct acpi_table_header));
+ if (!table_header) {
return_ACPI_STATUS(AE_NO_MEMORY);
}
- length = table->length;
- acpi_os_unmap_memory(table, sizeof(struct acpi_table_header));
+ status =
+ acpi_ex_region_read(obj_desc,
+ sizeof(struct acpi_table_header),
+ ACPI_CAST_PTR(u8, table_header));
+ length = table_header->length;
+ ACPI_FREE(table_header);
+
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
/* Must have at least an ACPI table header */
@@ -334,31 +401,36 @@ acpi_ex_load_op(union acpi_operand_object *obj_desc,
}
/*
- * The memory region is not guaranteed to remain stable and we must
- * copy the table to a local buffer. For example, the memory region
- * is corrupted after suspend on some machines. Dynamically loaded
- * tables are usually small, so this overhead is minimal.
+ * The original implementation simply mapped the table, with no copy.
+ * However, the memory region is not guaranteed to remain stable and
+ * we must copy the table to a local buffer. For example, the memory
+ * region is corrupted after suspend on some machines. Dynamically
+ * loaded tables are usually small, so this overhead is minimal.
+ *
+ * The latest implementation (5/2009) does not use a mapping at all.
+ * We use the low-level operation region interface to read the table
+ * instead of the obvious optimization of using a direct mapping.
+ * This maintains a consistent use of operation regions across the
+ * entire subsystem. This is important if additional processing must
+ * be performed in the (possibly user-installed) operation region
+ * handler. For example, acpi_exec and ASLTS depend on this.
*/
/* Allocate a buffer for the table */
- table_desc.pointer = ACPI_ALLOCATE(length);
- if (!table_desc.pointer) {
- return_ACPI_STATUS(AE_NO_MEMORY);
- }
-
- /* Map the entire table and copy it */
-
- table = acpi_os_map_memory(obj_desc->region.address, length);
+ table = ACPI_ALLOCATE(length);
if (!table) {
- ACPI_FREE(table_desc.pointer);
return_ACPI_STATUS(AE_NO_MEMORY);
}
- ACPI_MEMCPY(table_desc.pointer, table, length);
- acpi_os_unmap_memory(table, length);
+ /* Read the entire table */
- table_desc.address = obj_desc->region.address;
+ status = acpi_ex_region_read(obj_desc, length,
+ ACPI_CAST_PTR(u8, table));
+ if (ACPI_FAILURE(status)) {
+ ACPI_FREE(table);
+ return_ACPI_STATUS(status);
+ }
break;
case ACPI_TYPE_BUFFER: /* Buffer or resolved region_field */
@@ -375,10 +447,10 @@ acpi_ex_load_op(union acpi_operand_object *obj_desc,
/* Get the actual table length from the table header */
- table =
+ table_header =
ACPI_CAST_PTR(struct acpi_table_header,
obj_desc->buffer.pointer);
- length = table->length;
+ length = table_header->length;
/* Table cannot extend beyond the buffer */
@@ -393,37 +465,46 @@ acpi_ex_load_op(union acpi_operand_object *obj_desc,
* Copy the table from the buffer because the buffer could be modified
* or even deleted in the future
*/
- table_desc.pointer = ACPI_ALLOCATE(length);
- if (!table_desc.pointer) {
+ table = ACPI_ALLOCATE(length);
+ if (!table) {
return_ACPI_STATUS(AE_NO_MEMORY);
}
- ACPI_MEMCPY(table_desc.pointer, table, length);
- table_desc.address = ACPI_TO_INTEGER(table_desc.pointer);
+ ACPI_MEMCPY(table, table_header, length);
break;
default:
+
return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
}
- /* Validate table checksum (will not get validated in tb_add_table) */
+ /* Install the new table into the local data structures */
- status = acpi_tb_verify_checksum(table_desc.pointer, length);
- if (ACPI_FAILURE(status)) {
- ACPI_FREE(table_desc.pointer);
- return_ACPI_STATUS(status);
- }
+ ACPI_INFO((AE_INFO, "Dynamic OEM Table Load:"));
+ (void)acpi_ut_acquire_mutex(ACPI_MTX_TABLES);
- /* Complete the table descriptor */
+ status = acpi_tb_install_standard_table(ACPI_PTR_TO_PHYSADDR(table),
+ ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL,
+ TRUE, TRUE, &table_index);
- table_desc.length = length;
- table_desc.flags = ACPI_TABLE_ORIGIN_ALLOCATED;
+ (void)acpi_ut_release_mutex(ACPI_MTX_TABLES);
+ if (ACPI_FAILURE(status)) {
- /* Install the new table into the local data structures */
+ /* Delete allocated table buffer */
+
+ ACPI_FREE(table);
+ return_ACPI_STATUS(status);
+ }
- status = acpi_tb_add_table(&table_desc, &table_index);
+ /*
+ * Note: Now table is "INSTALLED", it must be validated before
+ * loading.
+ */
+ status =
+ acpi_tb_validate_table(&acpi_gbl_root_table_list.
+ tables[table_index]);
if (ACPI_FAILURE(status)) {
- goto cleanup;
+ return_ACPI_STATUS(status);
}
/*
@@ -454,21 +535,17 @@ acpi_ex_load_op(union acpi_operand_object *obj_desc,
return_ACPI_STATUS(status);
}
+ /* Remove the reference by added by acpi_ex_store above */
+
+ acpi_ut_remove_reference(ddb_handle);
+
/* Invoke table handler if present */
if (acpi_gbl_table_handler) {
- (void)acpi_gbl_table_handler(ACPI_TABLE_EVENT_LOAD,
- table_desc.pointer,
+ (void)acpi_gbl_table_handler(ACPI_TABLE_EVENT_LOAD, table,
acpi_gbl_table_handler_context);
}
- cleanup:
- if (ACPI_FAILURE(status)) {
-
- /* Delete allocated table buffer */
-
- acpi_tb_delete_table(&table_desc);
- }
return_ACPI_STATUS(status);
}
@@ -494,21 +571,39 @@ acpi_status acpi_ex_unload_table(union acpi_operand_object *ddb_handle)
ACPI_FUNCTION_TRACE(ex_unload_table);
/*
+ * Temporarily emit a warning so that the ASL for the machine can be
+ * hopefully obtained. This is to say that the Unload() operator is
+ * extremely rare if not completely unused.
+ */
+ ACPI_WARNING((AE_INFO, "Received request to unload an ACPI table"));
+
+ /*
* Validate the handle
- * Although the handle is partially validated in acpi_ex_reconfiguration(),
+ * Although the handle is partially validated in acpi_ex_reconfiguration()
* when it calls acpi_ex_resolve_operands(), the handle is more completely
* validated here.
+ *
+ * Handle must be a valid operand object of type reference. Also, the
+ * ddb_handle must still be marked valid (table has not been previously
+ * unloaded)
*/
if ((!ddb_handle) ||
(ACPI_GET_DESCRIPTOR_TYPE(ddb_handle) != ACPI_DESC_TYPE_OPERAND) ||
- (ACPI_GET_OBJECT_TYPE(ddb_handle) != ACPI_TYPE_LOCAL_REFERENCE)) {
- return_ACPI_STATUS(AE_BAD_PARAMETER);
+ (ddb_handle->common.type != ACPI_TYPE_LOCAL_REFERENCE) ||
+ (!(ddb_handle->common.flags & AOPOBJ_DATA_VALID))) {
+ return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
}
/* Get the table index from the ddb_handle */
table_index = table_desc->reference.value;
+ /* Ensure the table is still loaded */
+
+ if (!acpi_tb_is_table_loaded(table_index)) {
+ return_ACPI_STATUS(AE_NOT_EXIST);
+ }
+
/* Invoke table handler if present */
if (acpi_gbl_table_handler) {
@@ -520,17 +615,20 @@ acpi_status acpi_ex_unload_table(union acpi_operand_object *ddb_handle)
}
}
- /*
- * Delete the entire namespace under this table Node
- * (Offset contains the table_id)
- */
- acpi_tb_delete_namespace_by_owner(table_index);
- (void)acpi_tb_release_owner_id(table_index);
+ /* Delete the portion of the namespace owned by this table */
- acpi_tb_set_table_loaded_flag(table_index, FALSE);
+ status = acpi_tb_delete_namespace_by_owner(table_index);
+ if (ACPI_FAILURE(status)) {
+ return_ACPI_STATUS(status);
+ }
- /* Table unloaded, remove a reference to the ddb_handle object */
+ (void)acpi_tb_release_owner_id(table_index);
+ acpi_tb_set_table_loaded_flag(table_index, FALSE);
- acpi_ut_remove_reference(ddb_handle);
+ /*
+ * Invalidate the handle. We do this because the handle may be stored
+ * in a named object and may not be actually deleted until much later.
+ */
+ ddb_handle->common.flags &= ~AOPOBJ_DATA_VALID;
return_ACPI_STATUS(AE_OK);
}
diff --git a/drivers/acpi/acpica/exconvrt.c b/drivers/acpi/acpica/exconvrt.c
index 0be10188316..c545386fee9 100644
--- a/drivers/acpi/acpica/exconvrt.c
+++ b/drivers/acpi/acpica/exconvrt.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -51,8 +51,7 @@ ACPI_MODULE_NAME("exconvrt")
/* Local prototypes */
static u32
-acpi_ex_convert_to_ascii(acpi_integer integer,
- u16 base, u8 * string, u8 max_length);
+acpi_ex_convert_to_ascii(u64 integer, u16 base, u8 *string, u8 max_length);
/*******************************************************************************
*
@@ -61,7 +60,7 @@ acpi_ex_convert_to_ascii(acpi_integer integer,
* PARAMETERS: obj_desc - Object to be converted. Must be an
* Integer, Buffer, or String
* result_desc - Where the new Integer object is returned
- * Flags - Used for string conversion
+ * flags - Used for string conversion
*
* RETURN: Status
*
@@ -75,14 +74,14 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,
{
union acpi_operand_object *return_desc;
u8 *pointer;
- acpi_integer result;
+ u64 result;
u32 i;
u32 count;
acpi_status status;
ACPI_FUNCTION_TRACE_PTR(ex_convert_to_integer, obj_desc);
- switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
+ switch (obj_desc->common.type) {
case ACPI_TYPE_INTEGER:
/* No conversion necessary */
@@ -100,6 +99,7 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,
break;
default:
+
return_ACPI_STATUS(AE_TYPE);
}
@@ -116,9 +116,8 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,
/* String conversion is different than Buffer conversion */
- switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
+ switch (obj_desc->common.type) {
case ACPI_TYPE_STRING:
-
/*
* Convert string to an integer - for most cases, the string must be
* hexadecimal as per the ACPI specification. The only exception (as
@@ -155,19 +154,20 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,
* Little endian is used, meaning that the first byte of the buffer
* is the LSB of the integer
*/
- result |= (((acpi_integer) pointer[i]) << (i * 8));
+ result |= (((u64) pointer[i]) << (i * 8));
}
break;
default:
/* No other types can get here */
+
break;
}
/* Create a new integer */
- return_desc = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
+ return_desc = acpi_ut_create_integer_object(result);
if (!return_desc) {
return_ACPI_STATUS(AE_NO_MEMORY);
}
@@ -177,8 +177,7 @@ acpi_ex_convert_to_integer(union acpi_operand_object *obj_desc,
/* Save the Result */
- return_desc->integer.value = result;
- acpi_ex_truncate_for32bit_table(return_desc);
+ (void)acpi_ex_truncate_for32bit_table(return_desc);
*result_desc = return_desc;
return_ACPI_STATUS(AE_OK);
}
@@ -206,7 +205,7 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,
ACPI_FUNCTION_TRACE_PTR(ex_convert_to_buffer, obj_desc);
- switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
+ switch (obj_desc->common.type) {
case ACPI_TYPE_BUFFER:
/* No conversion necessary */
@@ -215,7 +214,6 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,
return_ACPI_STATUS(AE_OK);
case ACPI_TYPE_INTEGER:
-
/*
* Create a new Buffer object.
* Need enough space for one integer
@@ -235,7 +233,6 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,
break;
case ACPI_TYPE_STRING:
-
/*
* Create a new Buffer object
* Size will be the string length
@@ -260,6 +257,7 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,
break;
default:
+
return_ACPI_STATUS(AE_TYPE);
}
@@ -274,9 +272,9 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,
*
* FUNCTION: acpi_ex_convert_to_ascii
*
- * PARAMETERS: Integer - Value to be converted
- * Base - ACPI_STRING_DECIMAL or ACPI_STRING_HEX
- * String - Where the string is returned
+ * PARAMETERS: integer - Value to be converted
+ * base - ACPI_STRING_DECIMAL or ACPI_STRING_HEX
+ * string - Where the string is returned
* data_width - Size of data item to be converted, in bytes
*
* RETURN: Actual string length
@@ -286,10 +284,9 @@ acpi_ex_convert_to_buffer(union acpi_operand_object *obj_desc,
******************************************************************************/
static u32
-acpi_ex_convert_to_ascii(acpi_integer integer,
- u16 base, u8 * string, u8 data_width)
+acpi_ex_convert_to_ascii(u64 integer, u16 base, u8 *string, u8 data_width)
{
- acpi_integer digit;
+ u64 digit;
u32 i;
u32 j;
u32 k = 0;
@@ -307,15 +304,18 @@ acpi_ex_convert_to_ascii(acpi_integer integer,
switch (data_width) {
case 1:
+
decimal_length = ACPI_MAX8_DECIMAL_DIGITS;
break;
case 4:
+
decimal_length = ACPI_MAX32_DECIMAL_DIGITS;
break;
case 8:
default:
+
decimal_length = ACPI_MAX64_DECIMAL_DIGITS;
break;
}
@@ -388,7 +388,7 @@ acpi_ex_convert_to_ascii(acpi_integer integer,
* PARAMETERS: obj_desc - Object to be converted. Must be an
* Integer, Buffer, or String
* result_desc - Where the string object is returned
- * Type - String flags (base and conversion type)
+ * type - String flags (base and conversion type)
*
* RETURN: Status
*
@@ -409,7 +409,7 @@ acpi_ex_convert_to_string(union acpi_operand_object * obj_desc,
ACPI_FUNCTION_TRACE_PTR(ex_convert_to_string, obj_desc);
- switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
+ switch (obj_desc->common.type) {
case ACPI_TYPE_STRING:
/* No conversion necessary */
@@ -519,8 +519,8 @@ acpi_ex_convert_to_string(union acpi_operand_object * obj_desc,
string_length--;
}
- return_desc = acpi_ut_create_string_object((acpi_size)
- string_length);
+ return_desc =
+ acpi_ut_create_string_object((acpi_size) string_length);
if (!return_desc) {
return_ACPI_STATUS(AE_NO_MEMORY);
}
@@ -532,10 +532,9 @@ acpi_ex_convert_to_string(union acpi_operand_object * obj_desc,
* (separated by commas or spaces)
*/
for (i = 0; i < obj_desc->buffer.length; i++) {
- new_buf += acpi_ex_convert_to_ascii((acpi_integer)
- obj_desc->buffer.
- pointer[i], base,
- new_buf, 1);
+ new_buf += acpi_ex_convert_to_ascii((u64) obj_desc->
+ buffer.pointer[i],
+ base, new_buf, 1);
*new_buf++ = separator; /* each separated by a comma or space */
}
@@ -550,6 +549,7 @@ acpi_ex_convert_to_string(union acpi_operand_object * obj_desc,
break;
default:
+
return_ACPI_STATUS(AE_TYPE);
}
@@ -603,10 +603,10 @@ acpi_ex_convert_to_target_type(acpi_object_type destination_type,
break;
default:
+
/* No conversion allowed for these types */
- if (destination_type !=
- ACPI_GET_OBJECT_TYPE(source_desc)) {
+ if (destination_type != source_desc->common.type) {
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
"Explicit operator, will store (%s) over existing type (%s)\n",
acpi_ut_get_object_type_name
@@ -654,8 +654,9 @@ acpi_ex_convert_to_target_type(acpi_object_type destination_type,
break;
default:
+
ACPI_ERROR((AE_INFO,
- "Bad destination type during conversion: %X",
+ "Bad destination type during conversion: 0x%X",
destination_type));
status = AE_AML_INTERNAL;
break;
@@ -669,8 +670,9 @@ acpi_ex_convert_to_target_type(acpi_object_type destination_type,
break;
default:
+
ACPI_ERROR((AE_INFO,
- "Unknown Target type ID 0x%X AmlOpcode %X DestType %s",
+ "Unknown Target type ID 0x%X AmlOpcode 0x%X DestType %s",
GET_CURRENT_ARG_TYPE(walk_state->op_info->
runtime_args),
walk_state->opcode,
diff --git a/drivers/acpi/acpica/excreate.c b/drivers/acpi/acpica/excreate.c
index a57ad2564ab..95d23dabcfb 100644
--- a/drivers/acpi/acpica/excreate.c
+++ b/drivers/acpi/acpica/excreate.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -78,7 +78,7 @@ acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state)
(target_node->type == ACPI_TYPE_LOCAL_METHOD_ALIAS)) {
/*
* Dereference an existing alias so that we don't create a chain
- * of aliases. With this code, we guarantee that an alias is
+ * of aliases. With this code, we guarantee that an alias is
* always exactly one level of indirection away from the
* actual aliased name.
*/
@@ -90,7 +90,7 @@ acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state)
/*
* For objects that can never change (i.e., the NS node will
* permanently point to the same object), we can simply attach
- * the object to the new NS node. For other objects (such as
+ * the object to the new NS node. For other objects (such as
* Integers, buffers, etc.), we have to point the Alias node
* to the original Node.
*/
@@ -103,7 +103,6 @@ acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state)
case ACPI_TYPE_BUFFER:
case ACPI_TYPE_PACKAGE:
case ACPI_TYPE_BUFFER_FIELD:
-
/*
* These types open a new scope, so we need the NS node in order to access
* any children.
@@ -113,7 +112,6 @@ acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state)
case ACPI_TYPE_PROCESSOR:
case ACPI_TYPE_THERMAL:
case ACPI_TYPE_LOCAL_SCOPE:
-
/*
* The new alias has the type ALIAS and points to the original
* NS node, not the object itself.
@@ -124,7 +122,6 @@ acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state)
break;
case ACPI_TYPE_METHOD:
-
/*
* Control method aliases need to be differentiated
*/
@@ -139,7 +136,7 @@ acpi_status acpi_ex_create_alias(struct acpi_walk_state *walk_state)
/*
* The new alias assumes the type of the target, and it points
- * to the same object. The reference count of the object has an
+ * to the same object. The reference count of the object has an
* additional reference to prevent deletion out from under either the
* target node or the alias Node
*/
@@ -196,7 +193,7 @@ acpi_status acpi_ex_create_event(struct acpi_walk_state *walk_state)
acpi_ns_attach_object((struct acpi_namespace_node *)walk_state->
operands[0], obj_desc, ACPI_TYPE_EVENT);
- cleanup:
+cleanup:
/*
* Remove local reference to the object (on error, will cause deletion
* of both object and semaphore if present.)
@@ -243,8 +240,7 @@ acpi_status acpi_ex_create_mutex(struct acpi_walk_state *walk_state)
/* Init object and attach to NS node */
- obj_desc->mutex.sync_level =
- (u8) walk_state->operands[1]->integer.value;
+ obj_desc->mutex.sync_level = (u8)walk_state->operands[1]->integer.value;
obj_desc->mutex.node =
(struct acpi_namespace_node *)walk_state->operands[0];
@@ -252,7 +248,7 @@ acpi_status acpi_ex_create_mutex(struct acpi_walk_state *walk_state)
acpi_ns_attach_object(obj_desc->mutex.node, obj_desc,
ACPI_TYPE_MUTEX);
- cleanup:
+cleanup:
/*
* Remove local reference to the object (on error, will cause deletion
* of both object and semaphore if present.)
@@ -267,7 +263,7 @@ acpi_status acpi_ex_create_mutex(struct acpi_walk_state *walk_state)
*
* PARAMETERS: aml_start - Pointer to the region declaration AML
* aml_length - Max length of the declaration AML
- * region_space - space_iD for the region
+ * space_id - Address space ID for the region
* walk_state - Current state
*
* RETURN: Status
@@ -279,7 +275,7 @@ acpi_status acpi_ex_create_mutex(struct acpi_walk_state *walk_state)
acpi_status
acpi_ex_create_region(u8 * aml_start,
u32 aml_length,
- u8 region_space, struct acpi_walk_state *walk_state)
+ u8 space_id, struct acpi_walk_state *walk_state)
{
acpi_status status;
union acpi_operand_object *obj_desc;
@@ -304,15 +300,19 @@ acpi_ex_create_region(u8 * aml_start,
* Space ID must be one of the predefined IDs, or in the user-defined
* range
*/
- if ((region_space >= ACPI_NUM_PREDEFINED_REGIONS) &&
- (region_space < ACPI_USER_REGION_BEGIN)) {
- ACPI_ERROR((AE_INFO, "Invalid AddressSpace type %X",
- region_space));
- return_ACPI_STATUS(AE_AML_INVALID_SPACE_ID);
+ if (!acpi_is_valid_space_id(space_id)) {
+ /*
+ * Print an error message, but continue. We don't want to abort
+ * a table load for this exception. Instead, if the region is
+ * actually used at runtime, abort the executing method.
+ */
+ ACPI_ERROR((AE_INFO,
+ "Invalid/unknown Address Space ID: 0x%2.2X",
+ space_id));
}
- ACPI_DEBUG_PRINT((ACPI_DB_LOAD, "Region Type - %s (%X)\n",
- acpi_ut_get_region_name(region_space), region_space));
+ ACPI_DEBUG_PRINT((ACPI_DB_LOAD, "Region Type - %s (0x%X)\n",
+ acpi_ut_get_region_name(space_id), space_id));
/* Create the region descriptor */
@@ -329,10 +329,16 @@ acpi_ex_create_region(u8 * aml_start,
region_obj2 = obj_desc->common.next_object;
region_obj2->extra.aml_start = aml_start;
region_obj2->extra.aml_length = aml_length;
+ if (walk_state->scope_info) {
+ region_obj2->extra.scope_node =
+ walk_state->scope_info->scope.node;
+ } else {
+ region_obj2->extra.scope_node = node;
+ }
/* Init the region from the operands */
- obj_desc->region.space_id = region_space;
+ obj_desc->region.space_id = space_id;
obj_desc->region.address = 0;
obj_desc->region.length = 0;
obj_desc->region.node = node;
@@ -341,7 +347,7 @@ acpi_ex_create_region(u8 * aml_start,
status = acpi_ns_attach_object(node, obj_desc, ACPI_TYPE_REGION);
- cleanup:
+cleanup:
/* Remove local reference to the object */
@@ -359,7 +365,7 @@ acpi_ex_create_region(u8 * aml_start,
*
* DESCRIPTION: Create a new processor object and populate the fields
*
- * Processor (Name[0], cpu_iD[1], pblock_addr[2], pblock_length[3])
+ * Processor (Name[0], cpu_ID[1], pblock_addr[2], pblock_length[3])
*
******************************************************************************/
@@ -482,13 +488,11 @@ acpi_ex_create_method(u8 * aml_start,
obj_desc->method.aml_length = aml_length;
/*
- * Disassemble the method flags. Split off the Arg Count
- * for efficiency
+ * Disassemble the method flags. Split off the arg_count, Serialized
+ * flag, and sync_level for efficiency.
*/
method_flags = (u8) operand[1]->integer.value;
- obj_desc->method.method_flags =
- (u8) (method_flags & ~AML_METHOD_ARG_COUNT);
obj_desc->method.param_count =
(u8) (method_flags & AML_METHOD_ARG_COUNT);
@@ -497,12 +501,14 @@ acpi_ex_create_method(u8 * aml_start,
* created for this method when it is parsed.
*/
if (method_flags & AML_METHOD_SERIALIZED) {
+ obj_desc->method.info_flags = ACPI_METHOD_SERIALIZED;
+
/*
* ACPI 1.0: sync_level = 0
* ACPI 2.0: sync_level = sync_level in method declaration
*/
obj_desc->method.sync_level = (u8)
- ((method_flags & AML_METHOD_SYNCH_LEVEL) >> 4);
+ ((method_flags & AML_METHOD_SYNC_LEVEL) >> 4);
}
/* Attach the new object to the method Node */
@@ -514,7 +520,7 @@ acpi_ex_create_method(u8 * aml_start,
acpi_ut_remove_reference(obj_desc);
- exit:
+exit:
/* Remove a reference to the operand */
acpi_ut_remove_reference(operand[1]);
diff --git a/drivers/acpi/acpica/exdebug.c b/drivers/acpi/acpica/exdebug.c
new file mode 100644
index 00000000000..4cfc3d3b5c9
--- /dev/null
+++ b/drivers/acpi/acpica/exdebug.c
@@ -0,0 +1,263 @@
+/******************************************************************************
+ *
+ * Module Name: exdebug - Support for stores to the AML Debug Object
+ *
+ *****************************************************************************/
+
+/*
+ * Copyright (C) 2000 - 2014, Intel Corp.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions, and the following disclaimer,
+ * without modification.
+ * 2. Redistributions in binary form must reproduce at minimum a disclaimer
+ * substantially similar to the "NO WARRANTY" disclaimer below
+ * ("Disclaimer") and any redistribution must be conditioned upon
+ * including a substantially similar Disclaimer requirement for further
+ * binary redistribution.
+ * 3. Neither the names of the above-listed copyright holders nor the names
+ * of any contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * Alternatively, this software may be distributed under the terms of the
+ * GNU General Public License ("GPL") version 2 as published by the Free
+ * Software Foundation.
+ *
+ * NO WARRANTY
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ */
+
+#include <acpi/acpi.h>
+#include "accommon.h"
+#include "acinterp.h"
+
+#define _COMPONENT ACPI_EXECUTER
+ACPI_MODULE_NAME("exdebug")
+
+#ifndef ACPI_NO_ERROR_MESSAGES
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_ex_do_debug_object
+ *
+ * PARAMETERS: source_desc - Object to be output to "Debug Object"
+ * level - Indentation level (used for packages)
+ * index - Current package element, zero if not pkg
+ *
+ * RETURN: None
+ *
+ * DESCRIPTION: Handles stores to the AML Debug Object. For example:
+ * Store(INT1, Debug)
+ *
+ * This function is not compiled if ACPI_NO_ERROR_MESSAGES is set.
+ *
+ * This function is only enabled if acpi_gbl_enable_aml_debug_object is set, or
+ * if ACPI_LV_DEBUG_OBJECT is set in the acpi_dbg_level. Thus, in the normal
+ * operational case, stores to the debug object are ignored but can be easily
+ * enabled if necessary.
+ *
+ ******************************************************************************/
+void
+acpi_ex_do_debug_object(union acpi_operand_object *source_desc,
+ u32 level, u32 index)
+{
+ u32 i;
+
+ ACPI_FUNCTION_TRACE_PTR(ex_do_debug_object, source_desc);
+
+ /* Output must be enabled via the debug_object global or the dbg_level */
+
+ if (!acpi_gbl_enable_aml_debug_object &&
+ !(acpi_dbg_level & ACPI_LV_DEBUG_OBJECT)) {
+ return_VOID;
+ }
+
+ /*
+ * Print line header as long as we are not in the middle of an
+ * object display
+ */
+ if (!((level > 0) && index == 0)) {
+ acpi_os_printf("[ACPI Debug] %*s", level, " ");
+ }
+
+ /* Display the index for package output only */
+
+ if (index > 0) {
+ acpi_os_printf("(%.2u) ", index - 1);
+ }
+
+ if (!source_desc) {
+ acpi_os_printf("[Null Object]\n");
+ return_VOID;
+ }
+
+ if (ACPI_GET_DESCRIPTOR_TYPE(source_desc) == ACPI_DESC_TYPE_OPERAND) {
+ acpi_os_printf("%s ",
+ acpi_ut_get_object_type_name(source_desc));
+
+ if (!acpi_ut_valid_internal_object(source_desc)) {
+ acpi_os_printf("%p, Invalid Internal Object!\n",
+ source_desc);
+ return_VOID;
+ }
+ } else if (ACPI_GET_DESCRIPTOR_TYPE(source_desc) ==
+ ACPI_DESC_TYPE_NAMED) {
+ acpi_os_printf("%s: %p\n",
+ acpi_ut_get_type_name(((struct
+ acpi_namespace_node *)
+ source_desc)->type),
+ source_desc);
+ return_VOID;
+ } else {
+ return_VOID;
+ }
+
+ /* source_desc is of type ACPI_DESC_TYPE_OPERAND */
+
+ switch (source_desc->common.type) {
+ case ACPI_TYPE_INTEGER:
+
+ /* Output correct integer width */
+
+ if (acpi_gbl_integer_byte_width == 4) {
+ acpi_os_printf("0x%8.8X\n",
+ (u32)source_desc->integer.value);
+ } else {
+ acpi_os_printf("0x%8.8X%8.8X\n",
+ ACPI_FORMAT_UINT64(source_desc->integer.
+ value));
+ }
+ break;
+
+ case ACPI_TYPE_BUFFER:
+
+ acpi_os_printf("[0x%.2X]\n", (u32)source_desc->buffer.length);
+ acpi_ut_dump_buffer(source_desc->buffer.pointer,
+ (source_desc->buffer.length < 256) ?
+ source_desc->buffer.length : 256,
+ DB_BYTE_DISPLAY, 0);
+ break;
+
+ case ACPI_TYPE_STRING:
+
+ acpi_os_printf("[0x%.2X] \"%s\"\n",
+ source_desc->string.length,
+ source_desc->string.pointer);
+ break;
+
+ case ACPI_TYPE_PACKAGE:
+
+ acpi_os_printf("[Contains 0x%.2X Elements]\n",
+ source_desc->package.count);
+
+ /* Output the entire contents of the package */
+
+ for (i = 0; i < source_desc->package.count; i++) {
+ acpi_ex_do_debug_object(source_desc->package.
+ elements[i], level + 4, i + 1);
+ }
+ break;
+
+ case ACPI_TYPE_LOCAL_REFERENCE:
+
+ acpi_os_printf("[%s] ",
+ acpi_ut_get_reference_name(source_desc));
+
+ /* Decode the reference */
+
+ switch (source_desc->reference.class) {
+ case ACPI_REFCLASS_INDEX:
+
+ acpi_os_printf("0x%X\n", source_desc->reference.value);
+ break;
+
+ case ACPI_REFCLASS_TABLE:
+
+ /* Case for ddb_handle */
+
+ acpi_os_printf("Table Index 0x%X\n",
+ source_desc->reference.value);
+ return_VOID;
+
+ default:
+
+ break;
+ }
+
+ acpi_os_printf(" ");
+
+ /* Check for valid node first, then valid object */
+
+ if (source_desc->reference.node) {
+ if (ACPI_GET_DESCRIPTOR_TYPE
+ (source_desc->reference.node) !=
+ ACPI_DESC_TYPE_NAMED) {
+ acpi_os_printf
+ (" %p - Not a valid namespace node\n",
+ source_desc->reference.node);
+ } else {
+ acpi_os_printf("Node %p [%4.4s] ",
+ source_desc->reference.node,
+ (source_desc->reference.node)->
+ name.ascii);
+
+ switch ((source_desc->reference.node)->type) {
+
+ /* These types have no attached object */
+
+ case ACPI_TYPE_DEVICE:
+ acpi_os_printf("Device\n");
+ break;
+
+ case ACPI_TYPE_THERMAL:
+ acpi_os_printf("Thermal Zone\n");
+ break;
+
+ default:
+
+ acpi_ex_do_debug_object((source_desc->
+ reference.
+ node)->object,
+ level + 4, 0);
+ break;
+ }
+ }
+ } else if (source_desc->reference.object) {
+ if (ACPI_GET_DESCRIPTOR_TYPE
+ (source_desc->reference.object) ==
+ ACPI_DESC_TYPE_NAMED) {
+ acpi_ex_do_debug_object(((struct
+ acpi_namespace_node *)
+ source_desc->reference.
+ object)->object,
+ level + 4, 0);
+ } else {
+ acpi_ex_do_debug_object(source_desc->reference.
+ object, level + 4, 0);
+ }
+ }
+ break;
+
+ default:
+
+ acpi_os_printf("%p\n", source_desc);
+ break;
+ }
+
+ ACPI_DEBUG_PRINT_RAW((ACPI_DB_EXEC, "\n"));
+ return_VOID;
+}
+#endif
diff --git a/drivers/acpi/acpica/exdump.c b/drivers/acpi/acpica/exdump.c
index aa313574b0d..925202acc3e 100644
--- a/drivers/acpi/acpica/exdump.c
+++ b/drivers/acpi/acpica/exdump.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -94,12 +94,13 @@ static struct acpi_exdump_info acpi_ex_dump_buffer[5] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_buffer), NULL},
{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(buffer.length), "Length"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(buffer.pointer), "Pointer"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(buffer.node), "Parent Node"},
+ {ACPI_EXD_NODE, ACPI_EXD_OFFSET(buffer.node), "Parent Node"},
{ACPI_EXD_BUFFER, 0, NULL}
};
-static struct acpi_exdump_info acpi_ex_dump_package[5] = {
+static struct acpi_exdump_info acpi_ex_dump_package[6] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_package), NULL},
+ {ACPI_EXD_NODE, ACPI_EXD_OFFSET(package.node), "Parent Node"},
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(package.flags), "Flags"},
{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(package.count), "Elements"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(package.elements), "Element List"},
@@ -108,11 +109,11 @@ static struct acpi_exdump_info acpi_ex_dump_package[5] = {
static struct acpi_exdump_info acpi_ex_dump_device[4] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_device), NULL},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(device.handler), "Handler"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(device.system_notify),
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(device.notify_list[0]),
"System Notify"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(device.device_notify),
- "Device Notify"}
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(device.notify_list[1]),
+ "Device Notify"},
+ {ACPI_EXD_HDLR_LIST, ACPI_EXD_OFFSET(device.handler), "Handler"}
};
static struct acpi_exdump_info acpi_ex_dump_event[2] = {
@@ -120,9 +121,11 @@ static struct acpi_exdump_info acpi_ex_dump_event[2] = {
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(event.os_semaphore), "OsSemaphore"}
};
-static struct acpi_exdump_info acpi_ex_dump_method[8] = {
+static struct acpi_exdump_info acpi_ex_dump_method[9] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_method), NULL},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.param_count), "ParamCount"},
+ {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.info_flags), "Info Flags"},
+ {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.param_count),
+ "Parameter Count"},
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.sync_level), "Sync Level"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(method.mutex), "Mutex"},
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(method.owner_id), "Owner Id"},
@@ -131,35 +134,39 @@ static struct acpi_exdump_info acpi_ex_dump_method[8] = {
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(method.aml_start), "Aml Start"}
};
-static struct acpi_exdump_info acpi_ex_dump_mutex[5] = {
+static struct acpi_exdump_info acpi_ex_dump_mutex[6] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_mutex), NULL},
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(mutex.sync_level), "Sync Level"},
+ {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(mutex.original_sync_level),
+ "Original Sync Level"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(mutex.owner_thread), "Owner Thread"},
{ACPI_EXD_UINT16, ACPI_EXD_OFFSET(mutex.acquisition_depth),
"Acquire Depth"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(mutex.os_mutex), "OsMutex"}
};
-static struct acpi_exdump_info acpi_ex_dump_region[7] = {
+static struct acpi_exdump_info acpi_ex_dump_region[8] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_region), NULL},
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(region.space_id), "Space Id"},
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(region.flags), "Flags"},
+ {ACPI_EXD_NODE, ACPI_EXD_OFFSET(region.node), "Parent Node"},
{ACPI_EXD_ADDRESS, ACPI_EXD_OFFSET(region.address), "Address"},
{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(region.length), "Length"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(region.handler), "Handler"},
+ {ACPI_EXD_HDLR_LIST, ACPI_EXD_OFFSET(region.handler), "Handler"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(region.next), "Next"}
};
-static struct acpi_exdump_info acpi_ex_dump_power[5] = {
+static struct acpi_exdump_info acpi_ex_dump_power[6] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_power), NULL},
{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(power_resource.system_level),
"System Level"},
{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(power_resource.resource_order),
"Resource Order"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(power_resource.system_notify),
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(power_resource.notify_list[0]),
"System Notify"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(power_resource.device_notify),
- "Device Notify"}
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(power_resource.notify_list[1]),
+ "Device Notify"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(power_resource.handler), "Handler"}
};
static struct acpi_exdump_info acpi_ex_dump_processor[7] = {
@@ -167,18 +174,18 @@ static struct acpi_exdump_info acpi_ex_dump_processor[7] = {
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(processor.proc_id), "Processor ID"},
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(processor.length), "Length"},
{ACPI_EXD_ADDRESS, ACPI_EXD_OFFSET(processor.address), "Address"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(processor.system_notify),
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(processor.notify_list[0]),
"System Notify"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(processor.device_notify),
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(processor.notify_list[1]),
"Device Notify"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(processor.handler), "Handler"}
};
static struct acpi_exdump_info acpi_ex_dump_thermal[4] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_thermal), NULL},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(thermal_zone.system_notify),
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(thermal_zone.notify_list[0]),
"System Notify"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(thermal_zone.device_notify),
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(thermal_zone.notify_list[1]),
"Device Notify"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(thermal_zone.handler), "Handler"}
};
@@ -190,10 +197,13 @@ static struct acpi_exdump_info acpi_ex_dump_buffer_field[3] = {
"Buffer Object"}
};
-static struct acpi_exdump_info acpi_ex_dump_region_field[3] = {
+static struct acpi_exdump_info acpi_ex_dump_region_field[5] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_region_field), NULL},
{ACPI_EXD_FIELD, 0, NULL},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(field.region_obj), "Region Object"}
+ {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(field.access_length), "AccessLength"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(field.region_obj), "Region Object"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(field.resource_buffer),
+ "ResourceBuffer"}
};
static struct acpi_exdump_info acpi_ex_dump_bank_field[5] = {
@@ -220,7 +230,7 @@ static struct acpi_exdump_info acpi_ex_dump_reference[8] = {
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(reference.target_type), "Target Type"},
{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(reference.value), "Value"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.object), "Object Desc"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.node), "Node"},
+ {ACPI_EXD_NODE, ACPI_EXD_OFFSET(reference.node), "Node"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(reference.where), "Where"},
{ACPI_EXD_REFERENCE, 0, NULL}
};
@@ -229,27 +239,49 @@ static struct acpi_exdump_info acpi_ex_dump_address_handler[6] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_address_handler),
NULL},
{ACPI_EXD_UINT8, ACPI_EXD_OFFSET(address_space.space_id), "Space Id"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(address_space.next), "Next"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(address_space.region_list),
+ {ACPI_EXD_HDLR_LIST, ACPI_EXD_OFFSET(address_space.next), "Next"},
+ {ACPI_EXD_RGN_LIST, ACPI_EXD_OFFSET(address_space.region_list),
"Region List"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(address_space.node), "Node"},
+ {ACPI_EXD_NODE, ACPI_EXD_OFFSET(address_space.node), "Node"},
{ACPI_EXD_POINTER, ACPI_EXD_OFFSET(address_space.context), "Context"}
};
-static struct acpi_exdump_info acpi_ex_dump_notify[3] = {
+static struct acpi_exdump_info acpi_ex_dump_notify[7] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_notify), NULL},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.node), "Node"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.context), "Context"}
+ {ACPI_EXD_NODE, ACPI_EXD_OFFSET(notify.node), "Node"},
+ {ACPI_EXD_UINT32, ACPI_EXD_OFFSET(notify.handler_type), "Handler Type"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.handler), "Handler"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.context), "Context"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.next[0]),
+ "Next System Notify"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(notify.next[1]), "Next Device Notify"}
+};
+
+static struct acpi_exdump_info acpi_ex_dump_extra[6] = {
+ {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_extra), NULL},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(extra.method_REG), "_REG Method"},
+ {ACPI_EXD_NODE, ACPI_EXD_OFFSET(extra.scope_node), "Scope Node"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(extra.region_context),
+ "Region Context"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(extra.aml_start), "Aml Start"},
+ {ACPI_EXD_UINT32, ACPI_EXD_OFFSET(extra.aml_length), "Aml Length"}
+};
+
+static struct acpi_exdump_info acpi_ex_dump_data[3] = {
+ {ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_data), NULL},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(data.handler), "Handler"},
+ {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(data.pointer), "Raw Data"}
};
/* Miscellaneous tables */
-static struct acpi_exdump_info acpi_ex_dump_common[4] = {
+static struct acpi_exdump_info acpi_ex_dump_common[5] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_common), NULL},
{ACPI_EXD_TYPE, 0, NULL},
{ACPI_EXD_UINT16, ACPI_EXD_OFFSET(common.reference_count),
"Reference Count"},
- {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(common.flags), "Flags"}
+ {ACPI_EXD_UINT8, ACPI_EXD_OFFSET(common.flags), "Flags"},
+ {ACPI_EXD_LIST, ACPI_EXD_OFFSET(common.next_object), "Object List"}
};
static struct acpi_exdump_info acpi_ex_dump_field_common[7] = {
@@ -264,15 +296,17 @@ static struct acpi_exdump_info acpi_ex_dump_field_common[7] = {
"Field Bit Offset"},
{ACPI_EXD_UINT32, ACPI_EXD_OFFSET(common_field.base_byte_offset),
"Base Byte Offset"},
- {ACPI_EXD_POINTER, ACPI_EXD_OFFSET(common_field.node), "Parent Node"}
+ {ACPI_EXD_NODE, ACPI_EXD_OFFSET(common_field.node), "Parent Node"}
};
-static struct acpi_exdump_info acpi_ex_dump_node[5] = {
+static struct acpi_exdump_info acpi_ex_dump_node[7] = {
{ACPI_EXD_INIT, ACPI_EXD_TABLE_SIZE(acpi_ex_dump_node), NULL},
{ACPI_EXD_UINT8, ACPI_EXD_NSOFFSET(flags), "Flags"},
{ACPI_EXD_UINT8, ACPI_EXD_NSOFFSET(owner_id), "Owner Id"},
- {ACPI_EXD_POINTER, ACPI_EXD_NSOFFSET(child), "Child List"},
- {ACPI_EXD_POINTER, ACPI_EXD_NSOFFSET(peer), "Next Peer"}
+ {ACPI_EXD_LIST, ACPI_EXD_NSOFFSET(object), "Object List"},
+ {ACPI_EXD_NODE, ACPI_EXD_NSOFFSET(parent), "Parent"},
+ {ACPI_EXD_NODE, ACPI_EXD_NSOFFSET(child), "Child"},
+ {ACPI_EXD_NODE, ACPI_EXD_NSOFFSET(peer), "Peer"}
};
/* Dispatch table, indexed by object type */
@@ -305,7 +339,9 @@ static struct acpi_exdump_info *acpi_ex_dump_info[] = {
acpi_ex_dump_address_handler,
NULL,
NULL,
- NULL
+ NULL,
+ acpi_ex_dump_extra,
+ acpi_ex_dump_data
};
/*******************************************************************************
@@ -313,7 +349,7 @@ static struct acpi_exdump_info *acpi_ex_dump_info[] = {
* FUNCTION: acpi_ex_dump_object
*
* PARAMETERS: obj_desc - Descriptor to dump
- * Info - Info table corresponding to this object
+ * info - Info table corresponding to this object
* type
*
* RETURN: None
@@ -328,7 +364,12 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
{
u8 *target;
char *name;
+ const char *reference_name;
u8 count;
+ union acpi_operand_object *start;
+ union acpi_operand_object *data = NULL;
+ union acpi_operand_object *next;
+ struct acpi_namespace_node *node;
if (!info) {
acpi_os_printf
@@ -347,12 +388,14 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
switch (info->opcode) {
case ACPI_EXD_INIT:
+
break;
case ACPI_EXD_TYPE:
- acpi_ex_out_string("Type",
- acpi_ut_get_object_type_name
- (obj_desc));
+
+ acpi_os_printf("%20s : %2.2X [%s]\n", "Type",
+ obj_desc->common.type,
+ acpi_ut_get_object_type_name(obj_desc));
break;
case ACPI_EXD_UINT8:
@@ -414,14 +457,129 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
case ACPI_EXD_REFERENCE:
+ reference_name = acpi_ut_get_reference_name(obj_desc);
acpi_ex_out_string("Class Name",
- (char *)
- acpi_ut_get_reference_name
- (obj_desc));
+ ACPI_CAST_PTR(char, reference_name));
acpi_ex_dump_reference_obj(obj_desc);
break;
+ case ACPI_EXD_LIST:
+
+ start = *ACPI_CAST_PTR(void *, target);
+ next = start;
+
+ acpi_os_printf("%20s : %p", name, next);
+ if (next) {
+ acpi_os_printf("(%s %2.2X)",
+ acpi_ut_get_object_type_name
+ (next), next->common.type);
+
+ while (next->common.next_object) {
+ if ((next->common.type ==
+ ACPI_TYPE_LOCAL_DATA) && !data) {
+ data = next;
+ }
+
+ next = next->common.next_object;
+ acpi_os_printf("->%p(%s %2.2X)", next,
+ acpi_ut_get_object_type_name
+ (next),
+ next->common.type);
+
+ if ((next == start) || (next == data)) {
+ acpi_os_printf
+ ("\n**** Error: Object list appears to be circular linked");
+ break;
+ }
+ }
+ }
+
+ acpi_os_printf("\n", next);
+ break;
+
+ case ACPI_EXD_HDLR_LIST:
+
+ start = *ACPI_CAST_PTR(void *, target);
+ next = start;
+
+ acpi_os_printf("%20s : %p", name, next);
+ if (next) {
+ acpi_os_printf("(%s %2.2X)",
+ acpi_ut_get_object_type_name
+ (next), next->common.type);
+
+ while (next->address_space.next) {
+ if ((next->common.type ==
+ ACPI_TYPE_LOCAL_DATA) && !data) {
+ data = next;
+ }
+
+ next = next->address_space.next;
+ acpi_os_printf("->%p(%s %2.2X)", next,
+ acpi_ut_get_object_type_name
+ (next),
+ next->common.type);
+
+ if ((next == start) || (next == data)) {
+ acpi_os_printf
+ ("\n**** Error: Handler list appears to be circular linked");
+ break;
+ }
+ }
+ }
+
+ acpi_os_printf("\n", next);
+ break;
+
+ case ACPI_EXD_RGN_LIST:
+
+ start = *ACPI_CAST_PTR(void *, target);
+ next = start;
+
+ acpi_os_printf("%20s : %p", name, next);
+ if (next) {
+ acpi_os_printf("(%s %2.2X)",
+ acpi_ut_get_object_type_name
+ (next), next->common.type);
+
+ while (next->region.next) {
+ if ((next->common.type ==
+ ACPI_TYPE_LOCAL_DATA) && !data) {
+ data = next;
+ }
+
+ next = next->region.next;
+ acpi_os_printf("->%p(%s %2.2X)", next,
+ acpi_ut_get_object_type_name
+ (next),
+ next->common.type);
+
+ if ((next == start) || (next == data)) {
+ acpi_os_printf
+ ("\n**** Error: Region list appears to be circular linked");
+ break;
+ }
+ }
+ }
+
+ acpi_os_printf("\n", next);
+ break;
+
+ case ACPI_EXD_NODE:
+
+ node =
+ *ACPI_CAST_PTR(struct acpi_namespace_node *,
+ target);
+
+ acpi_os_printf("%20s : %p", name, node);
+ if (node) {
+ acpi_os_printf(" [%4.4s]", node->name.ascii);
+ }
+ acpi_os_printf("\n");
+ break;
+
default:
+
acpi_os_printf("**** Invalid table opcode [%X] ****\n",
info->opcode);
return;
@@ -437,7 +595,7 @@ acpi_ex_dump_object(union acpi_operand_object *obj_desc,
* FUNCTION: acpi_ex_dump_operand
*
* PARAMETERS: *obj_desc - Pointer to entry to be dumped
- * Depth - Current nesting depth
+ * depth - Current nesting depth
*
* RETURN: None
*
@@ -452,8 +610,8 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
ACPI_FUNCTION_NAME(ex_dump_operand)
- if (!((ACPI_LV_EXEC & acpi_dbg_level)
- && (_COMPONENT & acpi_dbg_layer))) {
+ /* Check if debug output enabled */
+ if (!ACPI_IS_DEBUG_ENABLED(ACPI_LV_EXEC, _COMPONENT)) {
return;
}
@@ -492,7 +650,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
/* Decode object type */
- switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
+ switch (obj_desc->common.type) {
case ACPI_TYPE_LOCAL_REFERENCE:
acpi_os_printf("Reference: [%s] ",
@@ -527,44 +685,16 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
type));
break;
- case ACPI_REFCLASS_ARG:
-
- acpi_os_printf("%X", obj_desc->reference.value);
-
- if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
-
- /* Value is an Integer */
-
- acpi_os_printf(" value is [%8.8X%8.8x]",
- ACPI_FORMAT_UINT64(obj_desc->
- integer.
- value));
- }
+ case ACPI_REFCLASS_NAME:
- acpi_os_printf("\n");
+ acpi_os_printf("- [%4.4s]\n",
+ obj_desc->reference.node->name.ascii);
break;
+ case ACPI_REFCLASS_ARG:
case ACPI_REFCLASS_LOCAL:
- acpi_os_printf("%X", obj_desc->reference.value);
-
- if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_INTEGER) {
-
- /* Value is an Integer */
-
- acpi_os_printf(" value is [%8.8X%8.8x]",
- ACPI_FORMAT_UINT64(obj_desc->
- integer.
- value));
- }
-
- acpi_os_printf("\n");
- break;
-
- case ACPI_REFCLASS_NAME:
-
- acpi_os_printf("- [%4.4s]\n",
- obj_desc->reference.node->name.ascii);
+ acpi_os_printf("%X\n", obj_desc->reference.value);
break;
default: /* Unknown reference class */
@@ -661,8 +791,8 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
case ACPI_TYPE_LOCAL_REGION_FIELD:
acpi_os_printf
- ("RegionField: Bits=%X AccWidth=%X Lock=%X Update=%X at byte=%X bit=%X of below:\n",
- obj_desc->field.bit_length,
+ ("RegionField: Bits=%X AccWidth=%X Lock=%X Update=%X at "
+ "byte=%X bit=%X of below:\n", obj_desc->field.bit_length,
obj_desc->field.access_byte_width,
obj_desc->field.field_flags & AML_FIELD_LOCK_RULE_MASK,
obj_desc->field.field_flags & AML_FIELD_UPDATE_RULE_MASK,
@@ -686,9 +816,8 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
if (!obj_desc->buffer_field.buffer_obj) {
ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "*NULL*\n"));
- } else
- if (ACPI_GET_OBJECT_TYPE(obj_desc->buffer_field.buffer_obj)
- != ACPI_TYPE_BUFFER) {
+ } else if ((obj_desc->buffer_field.buffer_obj)->common.type !=
+ ACPI_TYPE_BUFFER) {
acpi_os_printf("*not a Buffer*\n");
} else {
acpi_ex_dump_operand(obj_desc->buffer_field.buffer_obj,
@@ -735,10 +864,10 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
break;
default:
+
/* Unknown Type */
- acpi_os_printf("Unknown Type %X\n",
- ACPI_GET_OBJECT_TYPE(obj_desc));
+ acpi_os_printf("Unknown Type %X\n", obj_desc->common.type);
break;
}
@@ -749,7 +878,7 @@ void acpi_ex_dump_operand(union acpi_operand_object *obj_desc, u32 depth)
*
* FUNCTION: acpi_ex_dump_operands
*
- * PARAMETERS: Operands - A list of Operand objects
+ * PARAMETERS: operands - A list of Operand objects
* opcode_name - AML opcode name
* num_operands - Operand count for this opcode
*
@@ -768,7 +897,7 @@ acpi_ex_dump_operands(union acpi_operand_object **operands,
}
ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
- "**** Start operand dump for opcode [%s], %d operands\n",
+ "**** Start operand dump for opcode [%s], %u operands\n",
opcode_name, num_operands));
if (num_operands == 0) {
@@ -792,10 +921,10 @@ acpi_ex_dump_operands(union acpi_operand_object **operands,
*
* FUNCTION: acpi_ex_out* functions
*
- * PARAMETERS: Title - Descriptive text
- * Value - Value to be displayed
+ * PARAMETERS: title - Descriptive text
+ * value - Value to be displayed
*
- * DESCRIPTION: Object dump output formatting functions. These functions
+ * DESCRIPTION: Object dump output formatting functions. These functions
* reduce the number of format strings required and keeps them
* all in one place for easy modification.
*
@@ -815,8 +944,8 @@ static void acpi_ex_out_pointer(char *title, void *value)
*
* FUNCTION: acpi_ex_dump_namespace_node
*
- * PARAMETERS: Node - Descriptor to dump
- * Flags - Force display if TRUE
+ * PARAMETERS: node - Descriptor to dump
+ * flags - Force display if TRUE
*
* DESCRIPTION: Dumps the members of the given.Node
*
@@ -828,17 +957,17 @@ void acpi_ex_dump_namespace_node(struct acpi_namespace_node *node, u32 flags)
ACPI_FUNCTION_ENTRY();
if (!flags) {
- if (!((ACPI_LV_OBJECTS & acpi_dbg_level)
- && (_COMPONENT & acpi_dbg_layer))) {
+
+ /* Check if debug output enabled */
+
+ if (!ACPI_IS_DEBUG_ENABLED(ACPI_LV_OBJECTS, _COMPONENT)) {
return;
}
}
acpi_os_printf("%20s : %4.4s\n", "Name", acpi_ut_get_node_name(node));
- acpi_ex_out_string("Type", acpi_ut_get_type_name(node->type));
- acpi_ex_out_pointer("Attached Object",
- acpi_ns_get_attached_object(node));
- acpi_ex_out_pointer("Parent", acpi_ns_get_parent_node(node));
+ acpi_os_printf("%20s : %2.2X [%s]\n", "Type",
+ node->type, acpi_ut_get_type_name(node->type));
acpi_ex_dump_object(ACPI_CAST_PTR(union acpi_operand_object, node),
acpi_ex_dump_node);
@@ -848,7 +977,7 @@ void acpi_ex_dump_namespace_node(struct acpi_namespace_node *node, u32 flags)
*
* FUNCTION: acpi_ex_dump_reference_obj
*
- * PARAMETERS: Object - Descriptor to dump
+ * PARAMETERS: object - Descriptor to dump
*
* DESCRIPTION: Dumps a reference object
*
@@ -905,8 +1034,8 @@ static void acpi_ex_dump_reference_obj(union acpi_operand_object *obj_desc)
* FUNCTION: acpi_ex_dump_package_obj
*
* PARAMETERS: obj_desc - Descriptor to dump
- * Level - Indentation Level
- * Index - Package index for this object
+ * level - Indentation Level
+ * index - Package index for this object
*
* DESCRIPTION: Dumps the elements of the package
*
@@ -939,7 +1068,7 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc,
/* Packages may only contain a few object types */
- switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
+ switch (obj_desc->common.type) {
case ACPI_TYPE_INTEGER:
acpi_os_printf("[Integer] = %8.8X%8.8X\n",
@@ -949,9 +1078,7 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc,
case ACPI_TYPE_STRING:
acpi_os_printf("[String] Value: ");
- for (i = 0; i < obj_desc->string.length; i++) {
- acpi_os_printf("%c", obj_desc->string.pointer[i]);
- }
+ acpi_ut_print_string(obj_desc->string.pointer, ACPI_UINT8_MAX);
acpi_os_printf("\n");
break;
@@ -960,10 +1087,11 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc,
acpi_os_printf("[Buffer] Length %.2X = ",
obj_desc->buffer.length);
if (obj_desc->buffer.length) {
- acpi_ut_dump_buffer(ACPI_CAST_PTR
- (u8, obj_desc->buffer.pointer),
- obj_desc->buffer.length,
- DB_DWORD_DISPLAY, _COMPONENT);
+ acpi_ut_debug_dump_buffer(ACPI_CAST_PTR
+ (u8,
+ obj_desc->buffer.pointer),
+ obj_desc->buffer.length,
+ DB_DWORD_DISPLAY, _COMPONENT);
} else {
acpi_os_printf("\n");
}
@@ -971,7 +1099,7 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc,
case ACPI_TYPE_PACKAGE:
- acpi_os_printf("[Package] Contains %d Elements:\n",
+ acpi_os_printf("[Package] Contains %u Elements:\n",
obj_desc->package.count);
for (i = 0; i < obj_desc->package.count; i++) {
@@ -990,8 +1118,7 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc,
default:
- acpi_os_printf("[Unknown Type] %X\n",
- ACPI_GET_OBJECT_TYPE(obj_desc));
+ acpi_os_printf("[Unknown Type] %X\n", obj_desc->common.type);
break;
}
}
@@ -1001,7 +1128,7 @@ acpi_ex_dump_package_obj(union acpi_operand_object *obj_desc,
* FUNCTION: acpi_ex_dump_object_descriptor
*
* PARAMETERS: obj_desc - Descriptor to dump
- * Flags - Force display if TRUE
+ * flags - Force display if TRUE
*
* DESCRIPTION: Dumps the members of the object descriptor given.
*
@@ -1017,8 +1144,10 @@ acpi_ex_dump_object_descriptor(union acpi_operand_object *obj_desc, u32 flags)
}
if (!flags) {
- if (!((ACPI_LV_OBJECTS & acpi_dbg_level)
- && (_COMPONENT & acpi_dbg_layer))) {
+
+ /* Check if debug output enabled */
+
+ if (!ACPI_IS_DEBUG_ENABLED(ACPI_LV_OBJECTS, _COMPONENT)) {
return_VOID;
}
}
@@ -1031,22 +1160,26 @@ acpi_ex_dump_object_descriptor(union acpi_operand_object *obj_desc, u32 flags)
((struct acpi_namespace_node *)obj_desc)->
object);
- acpi_ex_dump_object_descriptor(((struct acpi_namespace_node *)
- obj_desc)->object, flags);
- return_VOID;
+ obj_desc = ((struct acpi_namespace_node *)obj_desc)->object;
+ goto dump_object;
}
if (ACPI_GET_DESCRIPTOR_TYPE(obj_desc) != ACPI_DESC_TYPE_OPERAND) {
- acpi_os_printf
- ("ExDumpObjectDescriptor: %p is not an ACPI operand object: [%s]\n",
- obj_desc, acpi_ut_get_descriptor_name(obj_desc));
+ acpi_os_printf("%p is not an ACPI operand object: [%s]\n",
+ obj_desc, acpi_ut_get_descriptor_name(obj_desc));
return_VOID;
}
- if (obj_desc->common.type > ACPI_TYPE_NS_NODE_MAX) {
+ /* Validate the object type */
+
+ if (obj_desc->common.type > ACPI_TYPE_LOCAL_MAX) {
+ acpi_os_printf("Not a known object type: %2.2X\n",
+ obj_desc->common.type);
return_VOID;
}
+dump_object:
+
/* Common Fields */
acpi_ex_dump_object(obj_desc, acpi_ex_dump_common);
@@ -1054,6 +1187,22 @@ acpi_ex_dump_object_descriptor(union acpi_operand_object *obj_desc, u32 flags)
/* Object-specific fields */
acpi_ex_dump_object(obj_desc, acpi_ex_dump_info[obj_desc->common.type]);
+
+ if (obj_desc->common.type == ACPI_TYPE_REGION) {
+ obj_desc = obj_desc->common.next_object;
+ if (obj_desc->common.type > ACPI_TYPE_LOCAL_MAX) {
+ acpi_os_printf
+ ("Secondary object is not a known object type: %2.2X\n",
+ obj_desc->common.type);
+
+ return_VOID;
+ }
+
+ acpi_os_printf("\nExtra attached Object (%p):\n", obj_desc);
+ acpi_ex_dump_object(obj_desc,
+ acpi_ex_dump_info[obj_desc->common.type]);
+ }
+
return_VOID;
}
diff --git a/drivers/acpi/acpica/exfield.c b/drivers/acpi/acpica/exfield.c
index a352d023385..12878e1982f 100644
--- a/drivers/acpi/acpica/exfield.c
+++ b/drivers/acpi/acpica/exfield.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -45,10 +45,71 @@
#include "accommon.h"
#include "acdispat.h"
#include "acinterp.h"
+#include "amlcode.h"
#define _COMPONENT ACPI_EXECUTER
ACPI_MODULE_NAME("exfield")
+/* Local prototypes */
+static u32
+acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length);
+
+/*******************************************************************************
+ *
+ * FUNCTION: acpi_get_serial_access_bytes
+ *
+ * PARAMETERS: accessor_type - The type of the protocol indicated by region
+ * field access attributes
+ * access_length - The access length of the region field
+ *
+ * RETURN: Decoded access length
+ *
+ * DESCRIPTION: This routine returns the length of the generic_serial_bus
+ * protocol bytes
+ *
+ ******************************************************************************/
+
+static u32
+acpi_ex_get_serial_access_length(u32 accessor_type, u32 access_length)
+{
+ u32 length;
+
+ switch (accessor_type) {
+ case AML_FIELD_ATTRIB_QUICK:
+
+ length = 0;
+ break;
+
+ case AML_FIELD_ATTRIB_SEND_RCV:
+ case AML_FIELD_ATTRIB_BYTE:
+
+ length = 1;
+ break;
+
+ case AML_FIELD_ATTRIB_WORD:
+ case AML_FIELD_ATTRIB_WORD_CALL:
+
+ length = 2;
+ break;
+
+ case AML_FIELD_ATTRIB_MULTIBYTE:
+ case AML_FIELD_ATTRIB_RAW_BYTES:
+ case AML_FIELD_ATTRIB_RAW_PROCESS:
+
+ length = access_length;
+ break;
+
+ case AML_FIELD_ATTRIB_BLOCK:
+ case AML_FIELD_ATTRIB_BLOCK_CALL:
+ default:
+
+ length = ACPI_GSBUS_BUFFER_SIZE;
+ break;
+ }
+
+ return (length);
+}
+
/*******************************************************************************
*
* FUNCTION: acpi_ex_read_data_from_field
@@ -59,12 +120,13 @@ ACPI_MODULE_NAME("exfield")
*
* RETURN: Status
*
- * DESCRIPTION: Read from a named field. Returns either an Integer or a
+ * DESCRIPTION: Read from a named field. Returns either an Integer or a
* Buffer, depending on the size of the field.
*
******************************************************************************/
+
acpi_status
-acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
+acpi_ex_read_data_from_field(struct acpi_walk_state * walk_state,
union acpi_operand_object *obj_desc,
union acpi_operand_object **ret_buffer_desc)
{
@@ -72,6 +134,8 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
union acpi_operand_object *buffer_desc;
acpi_size length;
void *buffer;
+ u32 function;
+ u16 accessor_type;
ACPI_FUNCTION_TRACE_PTR(ex_read_data_from_field, obj_desc);
@@ -84,7 +148,7 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
return_ACPI_STATUS(AE_BAD_PARAMETER);
}
- if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_BUFFER_FIELD) {
+ if (obj_desc->common.type == ACPI_TYPE_BUFFER_FIELD) {
/*
* If the buffer_field arguments have not been previously evaluated,
* evaluate them now and save the results.
@@ -95,16 +159,49 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
return_ACPI_STATUS(status);
}
}
- } else
- if ((ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_LOCAL_REGION_FIELD)
- && (obj_desc->field.region_obj->region.space_id ==
- ACPI_ADR_SPACE_SMBUS)) {
+ } else if ((obj_desc->common.type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
+ (obj_desc->field.region_obj->region.space_id ==
+ ACPI_ADR_SPACE_SMBUS
+ || obj_desc->field.region_obj->region.space_id ==
+ ACPI_ADR_SPACE_GSBUS
+ || obj_desc->field.region_obj->region.space_id ==
+ ACPI_ADR_SPACE_IPMI)) {
/*
- * This is an SMBus read. We must create a buffer to hold the data
- * and directly access the region handler.
+ * This is an SMBus, GSBus or IPMI read. We must create a buffer to hold
+ * the data and then directly access the region handler.
+ *
+ * Note: SMBus and GSBus protocol value is passed in upper 16-bits of Function
*/
- buffer_desc =
- acpi_ut_create_buffer_object(ACPI_SMBUS_BUFFER_SIZE);
+ if (obj_desc->field.region_obj->region.space_id ==
+ ACPI_ADR_SPACE_SMBUS) {
+ length = ACPI_SMBUS_BUFFER_SIZE;
+ function =
+ ACPI_READ | (obj_desc->field.attribute << 16);
+ } else if (obj_desc->field.region_obj->region.space_id ==
+ ACPI_ADR_SPACE_GSBUS) {
+ accessor_type = obj_desc->field.attribute;
+ length = acpi_ex_get_serial_access_length(accessor_type,
+ obj_desc->
+ field.
+ access_length);
+
+ /*
+ * Add additional 2 bytes for modeled generic_serial_bus data buffer:
+ * typedef struct {
+ * BYTEStatus; // Byte 0 of the data buffer
+ * BYTELength; // Byte 1 of the data buffer
+ * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer,
+ * }
+ */
+ length += 2;
+ function = ACPI_READ | (accessor_type << 16);
+ } else { /* IPMI */
+
+ length = ACPI_IPMI_BUFFER_SIZE;
+ function = ACPI_READ;
+ }
+
+ buffer_desc = acpi_ut_create_buffer_object(length);
if (!buffer_desc) {
return_ACPI_STATUS(AE_NO_MEMORY);
}
@@ -113,16 +210,13 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
acpi_ex_acquire_global_lock(obj_desc->common_field.field_flags);
- /*
- * Perform the read.
- * Note: Smbus protocol value is passed in upper 16-bits of Function
- */
+ /* Call the region handler for the read */
+
status = acpi_ex_access_region(obj_desc, 0,
- ACPI_CAST_PTR(acpi_integer,
+ ACPI_CAST_PTR(u64,
buffer_desc->
buffer.pointer),
- ACPI_READ | (obj_desc->field.
- attribute << 16));
+ function);
acpi_ex_release_global_lock(obj_desc->common_field.field_flags);
goto exit;
}
@@ -130,8 +224,8 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
/*
* Allocate a buffer for the contents of the field.
*
- * If the field is larger than the size of an acpi_integer, create
- * a BUFFER to hold it. Otherwise, use an INTEGER. This allows
+ * If the field is larger than the current integer width, create
+ * a BUFFER to hold it. Otherwise, use an INTEGER. This allows
* the use of arithmetic operators on the returned value if the
* field size is equal or smaller than an Integer.
*
@@ -151,19 +245,18 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
} else {
/* Field will fit within an Integer (normal case) */
- buffer_desc = acpi_ut_create_internal_object(ACPI_TYPE_INTEGER);
+ buffer_desc = acpi_ut_create_integer_object((u64) 0);
if (!buffer_desc) {
return_ACPI_STATUS(AE_NO_MEMORY);
}
length = acpi_gbl_integer_byte_width;
- buffer_desc->integer.value = 0;
buffer = &buffer_desc->integer.value;
}
ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
"FieldRead [TO]: Obj %p, Type %X, Buf %p, ByteLen %X\n",
- obj_desc, ACPI_GET_OBJECT_TYPE(obj_desc), buffer,
+ obj_desc, obj_desc->common.type, buffer,
(u32) length));
ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
"FieldRead [FROM]: BitLen %X, BitOff %X, ByteOff %X\n",
@@ -180,7 +273,7 @@ acpi_ex_read_data_from_field(struct acpi_walk_state *walk_state,
status = acpi_ex_extract_from_field(obj_desc, buffer, (u32) length);
acpi_ex_release_global_lock(obj_desc->common_field.field_flags);
- exit:
+exit:
if (ACPI_FAILURE(status)) {
acpi_ut_remove_reference(buffer_desc);
} else {
@@ -213,6 +306,8 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,
u32 length;
void *buffer;
union acpi_operand_object *buffer_desc;
+ u32 function;
+ u16 accessor_type;
ACPI_FUNCTION_TRACE_PTR(ex_write_data_to_field, obj_desc);
@@ -222,7 +317,7 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,
return_ACPI_STATUS(AE_AML_NO_OPERAND);
}
- if (ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_BUFFER_FIELD) {
+ if (obj_desc->common.type == ACPI_TYPE_BUFFER_FIELD) {
/*
* If the buffer_field arguments have not been previously evaluated,
* evaluate them now and save the results.
@@ -233,42 +328,78 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,
return_ACPI_STATUS(status);
}
}
- } else
- if ((ACPI_GET_OBJECT_TYPE(obj_desc) == ACPI_TYPE_LOCAL_REGION_FIELD)
- && (obj_desc->field.region_obj->region.space_id ==
- ACPI_ADR_SPACE_SMBUS)) {
+ } else if ((obj_desc->common.type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
+ (obj_desc->field.region_obj->region.space_id ==
+ ACPI_ADR_SPACE_SMBUS
+ || obj_desc->field.region_obj->region.space_id ==
+ ACPI_ADR_SPACE_GSBUS
+ || obj_desc->field.region_obj->region.space_id ==
+ ACPI_ADR_SPACE_IPMI)) {
/*
- * This is an SMBus write. We will bypass the entire field mechanism
- * and handoff the buffer directly to the handler.
+ * This is an SMBus, GSBus or IPMI write. We will bypass the entire field
+ * mechanism and handoff the buffer directly to the handler. For
+ * these address spaces, the buffer is bi-directional; on a write,
+ * return data is returned in the same buffer.
*
- * Source must be a buffer of sufficient size (ACPI_SMBUS_BUFFER_SIZE).
+ * Source must be a buffer of sufficient size:
+ * ACPI_SMBUS_BUFFER_SIZE, ACPI_GSBUS_BUFFER_SIZE, or ACPI_IPMI_BUFFER_SIZE.
+ *
+ * Note: SMBus and GSBus protocol type is passed in upper 16-bits of Function
*/
- if (ACPI_GET_OBJECT_TYPE(source_desc) != ACPI_TYPE_BUFFER) {
+ if (source_desc->common.type != ACPI_TYPE_BUFFER) {
ACPI_ERROR((AE_INFO,
- "SMBus write requires Buffer, found type %s",
+ "SMBus/IPMI/GenericSerialBus write requires Buffer, found type %s",
acpi_ut_get_object_type_name(source_desc)));
return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
}
- if (source_desc->buffer.length < ACPI_SMBUS_BUFFER_SIZE) {
+ if (obj_desc->field.region_obj->region.space_id ==
+ ACPI_ADR_SPACE_SMBUS) {
+ length = ACPI_SMBUS_BUFFER_SIZE;
+ function =
+ ACPI_WRITE | (obj_desc->field.attribute << 16);
+ } else if (obj_desc->field.region_obj->region.space_id ==
+ ACPI_ADR_SPACE_GSBUS) {
+ accessor_type = obj_desc->field.attribute;
+ length = acpi_ex_get_serial_access_length(accessor_type,
+ obj_desc->
+ field.
+ access_length);
+
+ /*
+ * Add additional 2 bytes for modeled generic_serial_bus data buffer:
+ * typedef struct {
+ * BYTEStatus; // Byte 0 of the data buffer
+ * BYTELength; // Byte 1 of the data buffer
+ * BYTE[x-1]Data; // Bytes 2-x of the arbitrary length data buffer,
+ * }
+ */
+ length += 2;
+ function = ACPI_WRITE | (accessor_type << 16);
+ } else { /* IPMI */
+
+ length = ACPI_IPMI_BUFFER_SIZE;
+ function = ACPI_WRITE;
+ }
+
+ if (source_desc->buffer.length < length) {
ACPI_ERROR((AE_INFO,
- "SMBus write requires Buffer of length %X, found length %X",
- ACPI_SMBUS_BUFFER_SIZE,
- source_desc->buffer.length));
+ "SMBus/IPMI/GenericSerialBus write requires Buffer of length %u, found length %u",
+ length, source_desc->buffer.length));
return_ACPI_STATUS(AE_AML_BUFFER_LIMIT);
}
- buffer_desc =
- acpi_ut_create_buffer_object(ACPI_SMBUS_BUFFER_SIZE);
+ /* Create the bi-directional buffer */
+
+ buffer_desc = acpi_ut_create_buffer_object(length);
if (!buffer_desc) {
return_ACPI_STATUS(AE_NO_MEMORY);
}
buffer = buffer_desc->buffer.pointer;
- ACPI_MEMCPY(buffer, source_desc->buffer.pointer,
- ACPI_SMBUS_BUFFER_SIZE);
+ ACPI_MEMCPY(buffer, source_desc->buffer.pointer, length);
/* Lock entire transaction if requested */
@@ -277,12 +408,9 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,
/*
* Perform the write (returns status and perhaps data in the
* same buffer)
- * Note: SMBus protocol type is passed in upper 16-bits of Function.
*/
status = acpi_ex_access_region(obj_desc, 0,
- (acpi_integer *) buffer,
- ACPI_WRITE | (obj_desc->field.
- attribute << 16));
+ (u64 *) buffer, function);
acpi_ex_release_global_lock(obj_desc->common_field.field_flags);
*result_desc = buffer_desc;
@@ -291,38 +419,41 @@ acpi_ex_write_data_to_field(union acpi_operand_object *source_desc,
/* Get a pointer to the data to be written */
- switch (ACPI_GET_OBJECT_TYPE(source_desc)) {
+ switch (source_desc->common.type) {
case ACPI_TYPE_INTEGER:
+
buffer = &source_desc->integer.value;
length = sizeof(source_desc->integer.value);
break;
case ACPI_TYPE_BUFFER:
+
buffer = source_desc->buffer.pointer;
length = source_desc->buffer.length;
break;
case ACPI_TYPE_STRING:
+
buffer = source_desc->string.pointer;
length = source_desc->string.length;
break;
default:
+
return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
}
ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
"FieldWrite [FROM]: Obj %p (%s:%X), Buf %p, ByteLen %X\n",
source_desc,
- acpi_ut_get_type_name(ACPI_GET_OBJECT_TYPE
- (source_desc)),
- ACPI_GET_OBJECT_TYPE(source_desc), buffer, length));
+ acpi_ut_get_type_name(source_desc->common.type),
+ source_desc->common.type, buffer, length));
ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
"FieldWrite [TO]: Obj %p (%s:%X), BitLen %X, BitOff %X, ByteOff %X\n",
obj_desc,
- acpi_ut_get_type_name(ACPI_GET_OBJECT_TYPE(obj_desc)),
- ACPI_GET_OBJECT_TYPE(obj_desc),
+ acpi_ut_get_type_name(obj_desc->common.type),
+ obj_desc->common.type,
obj_desc->common_field.bit_length,
obj_desc->common_field.start_field_bit_offset,
obj_desc->common_field.base_byte_offset));
diff --git a/drivers/acpi/acpica/exfldio.c b/drivers/acpi/acpica/exfldio.c
index ef58ac4e687..1d1b27a96c5 100644
--- a/drivers/acpi/acpica/exfldio.c
+++ b/drivers/acpi/acpica/exfldio.c
@@ -5,7 +5,7 @@
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2008, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -54,12 +54,10 @@ ACPI_MODULE_NAME("exfldio")
/* Local prototypes */
static acpi_status
acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
- u32 field_datum_byte_offset,
- acpi_integer * value, u32 read_write);
+ u32 field_datum_byte_offset, u64 *value, u32 read_write);
static u8
-acpi_ex_register_overflow(union acpi_operand_object *obj_desc,
- acpi_integer value);
+acpi_ex_register_overflow(union acpi_operand_object *obj_desc, u64 value);
static acpi_status
acpi_ex_setup_region(union acpi_operand_object *obj_desc,
@@ -87,6 +85,7 @@ acpi_ex_setup_region(union acpi_operand_object *obj_desc,
{
acpi_status status = AE_OK;
union acpi_operand_object *rgn_desc;
+ u8 space_id;
ACPI_FUNCTION_TRACE_U32(ex_setup_region, field_datum_byte_offset);
@@ -94,14 +93,25 @@ acpi_ex_setup_region(union acpi_operand_object *obj_desc,
/* We must have a valid region */
- if (ACPI_GET_OBJECT_TYPE(rgn_desc) != ACPI_TYPE_REGION) {
- ACPI_ERROR((AE_INFO, "Needed Region, found type %X (%s)",
- ACPI_GET_OBJECT_TYPE(rgn_desc),
+ if (rgn_desc->common.type != ACPI_TYPE_REGION) {
+ ACPI_ERROR((AE_INFO, "Needed Region, found type 0x%X (%s)",
+ rgn_desc->common.type,
acpi_ut_get_object_type_name(rgn_desc)));
return_ACPI_STATUS(AE_AML_OPERAND_TYPE);
}
+ space_id = rgn_desc->region.space_id;
+
+ /* Validate the Space ID */
+
+ if (!acpi_is_valid_space_id(space_id)) {
+ ACPI_ERROR((AE_INFO,
+ "Invalid/unknown Address Space ID: 0x%2.2X",
+ space_id));
+ return_ACPI_STATUS(AE_AML_INVALID_SPACE_ID);
+ }
+
/*
* If the Region Address and Length have not been previously evaluated,
* evaluate them now and save the results.
@@ -113,19 +123,15 @@ acpi_ex_setup_region(union acpi_operand_object *obj_desc,
}
}
- /* Exit if Address/Length have been disallowed by the host OS */
-
- if (rgn_desc->common.flags & AOPOBJ_INVALID) {
- return_ACPI_STATUS(AE_AML_ILLEGAL_ADDRESS);
- }
-
/*
- * Exit now for SMBus address space, it has a non-linear address space
- * and the request cannot be directly validated
+ * Exit now for SMBus, GSBus or IPMI address space, it has a non-linear
+ * address space and the request cannot be directly validated
*/
- if (rgn_desc->region.space_id == ACPI_ADR_SPACE_SMBUS) {
+ if (space_id == ACPI_ADR_SPACE_SMBUS ||
+ space_id == ACPI_ADR_SPACE_GSBUS ||
+ space_id == ACPI_ADR_SPACE_IPMI) {
- /* SMBus has a non-linear address space */
+ /* SMBus or IPMI has a non-linear address space */
return_ACPI_STATUS(AE_OK);
}
@@ -142,13 +148,12 @@ acpi_ex_setup_region(union acpi_operand_object *obj_desc,
#endif
/*
- * Validate the request. The entire request from the byte offset for a
+ * Validate the request. The entire request from the byte offset for a
* length of one field datum (access width) must fit within the region.
* (Region length is specified in bytes)
*/
if (rgn_desc->region.length <
- (obj_desc->common_field.base_byte_offset +
- field_datum_byte_offset +
+ (obj_desc->common_field.base_byte_offset + field_datum_byte_offset +
obj_desc->common_field.access_byte_width)) {
if (acpi_gbl_enable_interpreter_slack) {
/*
@@ -171,11 +176,11 @@ acpi_ex_setup_region(union acpi_operand_object *obj_desc,
obj_desc->common_field.access_byte_width) {
/*
* This is the case where the access_type (acc_word, etc.) is wider
- * than the region itself. For example, a region of length one
+ * than the region itself. For example, a region of length one
* byte, and a field with Dword access specified.
*/
ACPI_ERROR((AE_INFO,
- "Field [%4.4s] access width (%d bytes) too large for region [%4.4s] (length %X)",
+ "Field [%4.4s] access width (%u bytes) too large for region [%4.4s] (length %u)",
acpi_ut_get_node_name(obj_desc->
common_field.node),
obj_desc->common_field.access_byte_width,
@@ -189,7 +194,7 @@ acpi_ex_setup_region(union acpi_operand_object *obj_desc,
* exceeds region length, indicate an error
*/
ACPI_ERROR((AE_INFO,
- "Field [%4.4s] Base+Offset+Width %X+%X+%X is beyond end of region [%4.4s] (length %X)",
+ "Field [%4.4s] Base+Offset+Width %u+%u+%u is beyond end of region [%4.4s] (length %u)",
acpi_ut_get_node_name(obj_desc->common_field.node),
obj_desc->common_field.base_byte_offset,
field_datum_byte_offset,
@@ -210,9 +215,9 @@ acpi_ex_setup_region(union acpi_operand_object *obj_desc,
* PARAMETERS: obj_desc - Field to be read
* field_datum_byte_offset - Byte offset of this datum within the
* parent field
- * Value - Where to store value (must at least
- * the size of acpi_integer)
- * Function - Read or Write flag plus other region-
+ * value - Where to store value (must at least
+ * 64 bits)
+ * function - Read or Write flag plus other region-
* dependent flags
*
* RETURN: Status
@@ -223,12 +228,11 @@ acpi_ex_setup_region(union acpi_operand_object *obj_desc,
acpi_status
acpi_ex_access_region(union acpi_operand_object *obj_desc,
- u32 field_datum_byte_offset,
- acpi_integer * value, u32 function)
+ u32 field_datum_byte_offset, u64 *value, u32 function)
{
acpi_status status;
union acpi_operand_object *rgn_desc;
- acpi_physical_address address;
+ u32 region_offset;
ACPI_FUNCTION_TRACE(ex_access_region);
@@ -249,7 +253,7 @@ acpi_ex_access_region(union acpi_operand_object *obj_desc,
* 3) The current offset into the field
*/
rgn_desc = obj_desc->common_field.region_obj;
- address = rgn_desc->region.address +
+ region_offset =
obj_desc->common_field.base_byte_offset + field_datum_byte_offset;
if ((function & ACPI_IO_MASK) == ACPI_READ) {
@@ -266,12 +270,15 @@ acpi_ex_access_region(union acpi_operand_object *obj_desc,
obj_desc->common_field.access_byte_width,
obj_desc->common_field.base_byte_offset,
field_datum_byte_offset, ACPI_CAST_PTR(void,
- address)));
+ (rgn_desc->
+ region.
+ address +
+ region_offset))));
/* Invoke the appropriate address_space/op_region handler */
- status = acpi_ev_address_space_dispatch(rgn_desc, function,
- address,
+ status = acpi_ev_address_space_dispatch(rgn_desc, obj_desc,
+ function, region_offset,
ACPI_MUL_8(obj_desc->
common_field.
access_byte_width),
@@ -280,13 +287,13 @@ acpi_ex_access_region(union acpi_operand_object *obj_desc,
if (ACPI_FAILURE(status)) {
if (status == AE_NOT_IMPLEMENTED) {
ACPI_ERROR((AE_INFO,
- "Region %s(%X) not implemented",
+ "Region %s (ID=%u) not implemented",
acpi_ut_get_region_name(rgn_desc->region.
space_id),
rgn_desc->region.space_id));
} else if (status == AE_NOT_EXIST) {
ACPI_ERROR((AE_INFO,
- "Region %s(%X) has no handler",
+ "Region %s (ID=%u) has no handler",
acpi_ut_get_region_name(rgn_desc->region.
space_id),
rgn_desc->region.space_id));
@@ -301,21 +308,20 @@ acpi_ex_access_region(union acpi_operand_object *obj_desc,
* FUNCTION: acpi_ex_register_overflow
*
* PARAMETERS: obj_desc - Register(Field) to be written
- * Value - Value to be stored
+ * value - Value to be stored
*
* RETURN: TRUE if value overflows the field, FALSE otherwise
*
* DESCRIPTION: Check if a value is out of range of the field being written.
* Used to check if the values written to Index and Bank registers
- * are out of range. Normally, the value is simply truncated
+ * are out of range. Normally, the value is simply truncated
* to fit the field, but this case is most likely a serious
* coding error in the ASL.
*
******************************************************************************/
static u8
-acpi_ex_register_overflow(union acpi_operand_object *obj_desc,
- acpi_integer value)
+acpi_ex_register_overflow(union acpi_operand_object *obj_desc, u64 value)
{
if (obj_desc->common_field.bit_length >= ACPI_INTEGER_BIT_SIZE) {
@@ -326,11 +332,16 @@ acpi_ex_register_overflow(union acpi_operand_object *obj_desc,
return (FALSE);
}
- if (value >= ((acpi_integer) 1 << obj_desc->common_field.bit_length)) {
+ if (value >= ((u64) 1 << obj_desc->common_field.bit_length)) {
/*
* The Value is larger than the maximum value that can fit into
* the register.
*/
+ ACPI_ERROR((AE_INFO,
+ "Index value 0x%8.8X%8.8X overflows field width 0x%X",
+ ACPI_FORMAT_UINT64(value),
+ obj_desc->common_field.bit_length));
+
return (TRUE);
}
@@ -346,12 +357,12 @@ acpi_ex_register_overflow(union acpi_operand_object *obj_desc,
* PARAMETERS: obj_desc - Field to be read
* field_datum_byte_offset - Byte offset of this datum within the
* parent field
- * Value - Where to store value (must be 64 bits)
+ * value - Where to store value (must be 64 bits)
* read_write - Read or Write flag
*
* RETURN: Status
*
- * DESCRIPTION: Read or Write a single datum of a field. The field_type is
+ * DESCRIPTION: Read or Write a single datum of a field. The field_type is
* demultiplexed here to handle the different types of fields
* (buffer_field, region_field, index_field, bank_field)
*
@@ -359,11 +370,10 @@ acpi_ex_register_overflow(union acpi_operand_object *obj_desc,
static acpi_status
acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
- u32 field_datum_byte_offset,
- acpi_integer * value, u32 read_write)
+ u32 field_datum_byte_offset, u64 *value, u32 read_write)
{
acpi_status status;
- acpi_integer local_value;
+ u64 local_value;
ACPI_FUNCTION_TRACE_U32(ex_field_datum_io, field_datum_byte_offset);
@@ -390,7 +400,7 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
* index_field - Write to an Index Register, then read/write from/to a
* Data Register
*/
- switch (ACPI_GET_OBJECT_TYPE(obj_desc)) {
+ switch (obj_desc->common.type) {
case ACPI_TYPE_BUFFER_FIELD:
/*
* If the buffer_field arguments have not been previously evaluated,
@@ -430,14 +440,13 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
break;
case ACPI_TYPE_LOCAL_BANK_FIELD:
-
/*
* Ensure that the bank_value is not beyond the capacity of
* the register
*/
if (acpi_ex_register_overflow(obj_desc->bank_field.bank_obj,
- (acpi_integer) obj_desc->
- bank_field.value)) {
+ (u64) obj_desc->bank_field.
+ value)) {
return_ACPI_STATUS(AE_AML_REGISTER_LIMIT);
}
@@ -472,14 +481,13 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
break;
case ACPI_TYPE_LOCAL_INDEX_FIELD:
-
/*
* Ensure that the index_value is not beyond the capacity of
* the register
*/
if (acpi_ex_register_overflow(obj_desc->index_field.index_obj,
- (acpi_integer) obj_desc->
- index_field.value)) {
+ (u64) obj_desc->index_field.
+ value)) {
return_ACPI_STATUS(AE_AML_REGISTER_LIMIT);
}
@@ -509,7 +517,7 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
status =
acpi_ex_extract_from_field(obj_desc->index_field.
data_obj, value,
- sizeof(acpi_integer));
+ sizeof(u64));
} else {
/* Write the datum to the data_register */
@@ -520,14 +528,14 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
status =
acpi_ex_insert_into_field(obj_desc->index_field.
data_obj, value,
- sizeof(acpi_integer));
+ sizeof(u64));
}
break;
default:
- ACPI_ERROR((AE_INFO, "Wrong object type in field I/O %X",
- ACPI_GET_OBJECT_TYPE(obj_desc)));
+ ACPI_ERROR((AE_INFO, "Wrong object type in field I/O %u",
+ obj_desc->common.type));
status = AE_AML_INTERNAL;
break;
}
@@ -535,13 +543,13 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
if (ACPI_SUCCESS(status)) {
if (read_write == ACPI_READ) {
ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
- "Value Read %8.8X%8.8X, Width %d\n",
+ "Value Read %8.8X%8.8X, Width %u\n",
ACPI_FORMAT_UINT64(*value),
obj_desc->common_field.
access_byte_width));
} else {
ACPI_DEBUG_PRINT((ACPI_DB_BFIELD,
- "Value Written %8.8X%8.8X, Width %d\n",
+ "Value Written %8.8X%8.8X, Width %u\n",
ACPI_FORMAT_UINT64(*value),
obj_desc->common_field.
access_byte_width));
@@ -556,7 +564,7 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
* FUNCTION: acpi_ex_write_with_update_rule
*
* PARAMETERS: obj_desc - Field to be written
- * Mask - bitmask within field datum
+ * mask - bitmask within field datum
* field_value - Value to write
* field_datum_byte_offset - Offset of datum within field
*
@@ -568,13 +576,12 @@ acpi_ex_field_datum_io(union acpi_operand_object *obj_desc,
acpi_status
acpi_ex_write_with_update_rule(union acpi_operand_object *obj_desc,
- acpi_integer mask,
- acpi_integer field_value,
- u32 field_datum_byte_offset)
+ u64 mask,
+ u64 field_value, u32 field_datum_byte_offset)
{
acpi_status status = AE_OK;
- acpi_integer merged_value;
- acpi_integer current_value;
+ u64 merged_value;
+ u64 current_value;
ACPI_FUNCTION_TRACE_U32(ex_write_with_update_rule, mask);
@@ -584,7 +591,7 @@ acpi_ex_write_with_update_rule(union acpi_operand_object *obj_desc,
/* If the mask is all ones, we don't need to worry about the update rule */
- if (mask != ACPI_INTEGER_MAX) {
+ if (mask != ACPI_UINT64_MAX) {
/* Decode the update rule */
@@ -632,7 +639,7 @@ acpi_ex_write_with_update_rule(union acpi_operand_object *obj_desc,
default:
ACPI_ERROR((AE_INFO,
- "Unknown UpdateRule value: %X",
+ "Unknown UpdateRule value: 0x%X",
(obj_desc->common_field.
field_flags &
AML_FIELD_UPDATE_RULE_MASK)));
@@ -661,7 +668,7 @@ acpi_ex_write_with_update_rule(union acpi_operand_object *obj_desc,
* FUNCTION: acpi_ex_extract_from_field
*
* PARAMETERS: obj_desc - Field to be read
- * Buffer - Where to store the field data
+ * buffer - Where to store the field data
* buffer_length - Length of Buffer
*
* RETURN: Status
@@ -675,13 +682,14 @@ acpi_ex_extract_from_field(union acpi_operand_object *obj_desc,
void *buffer, u32 buffer_length)
{
acpi_status status;
- acpi_integer raw_datum;
- acpi_integer merged_datum;
+ u64 raw_datum;
+ u64 merged_datum;
u32 field_offset = 0;
u32 buffer_offset = 0;
u32 buffer_tail_bits;
u32 datum_count;
u32 field_datum_count;
+ u32 access_bit_width;
u32 i;
ACPI_FUNCTION_TRACE(ex_extract_from_field);
@@ -691,21 +699,53 @@ acpi_ex_extract_from_field(union acpi_operand_object *obj_desc,
if (buffer_length <
ACPI_ROUND_BITS_UP_TO_BYTES(obj_desc->common_field.bit_length)) {
ACPI_ERROR((AE_INFO,
- "Field size %X (bits) is too large for buffer (%X)",
+ "Field size %u (bits) is too large for buffer (%u)",
obj_desc->common_field.bit_length, buffer_length));
return_ACPI_STATUS(AE_BUFFER_OVERFLOW);
}
+
ACPI_MEMSET(buffer, 0, buffer_length);
+ access_bit_width = ACPI_MUL_8(obj_desc->common_field.access_byte_width);
+
+ /* Handle the simple case here */
+
+ if ((obj_desc->common_field.start_field_bit_offset == 0) &&
+ (obj_desc->common_field.bit_length == access_bit_width)) {
+ if (buffer_length >= sizeof(u64)) {
+ status =
+ acpi_ex_field_datum_io(obj_desc, 0, buffer,
+ ACPI_READ);
+ } else {
+ /* Use raw_datum (u64) to handle buffers < 64 bits */
+
+ status =
+ acpi_ex_field_datum_io(obj_desc, 0, &raw_datum,
+ ACPI_READ);
+ ACPI_MEMCPY(buffer, &raw_datum, buffer_length);
+ }
+
+ return_ACPI_STATUS(status);
+ }
+
+/* TBD: Move to common setup code */
+
+ /* Field algorithm is limited to sizeof(u64), truncate if needed */
+
+ if (obj_desc->common_field.access_byte_width > sizeof(u64)) {
+ obj_desc->common_field.access_byte_width = sizeof(u64);
+ access_bit_width = sizeof(u64) * 8;
+ }
/* Compute the number of datums (access width data items) */
- datum_count = ACPI_ROUND_UP_TO(obj_desc->common_field.bit_length,
- obj_desc->common_field.access_bit_width);
+ datum_count =
+ ACPI_ROUND_UP_TO(obj_desc->common_field.bit_length,
+ access_bit_width);
+
field_datum_count = ACPI_ROUND_UP_TO(obj_desc->common_field.bit_length +
obj_desc->common_field.
start_field_bit_offset,
- obj_desc->common_field.
access_bit_width);
/* Priming read from the field */
@@ -740,12 +780,11 @@ acpi_ex_extract_from_field(union acpi_operand_object *obj_desc,
* This avoids the differences in behavior between different compilers
* concerning shift values larger than the target data width.
*/
- if ((obj_desc->common_field.access_bit_width -
- obj_desc->common_field.start_field_bit_offset) <
+ if (access_bit_width -
+ obj_desc->common_field.start_field_bit_offset <
ACPI_INTEGER_BIT_SIZE) {
merged_datum |=
- raw_datum << (obj_desc->common_field.
- access_bit_width -
+ raw_datum << (access_bit_width -
obj_desc->common_field.
start_field_bit_offset);
}
@@ -767,8 +806,7 @@ acpi_ex_extract_from_field(union acpi_operand_object *obj_desc,
/* Mask off any extra bits in the last datum */
- buffer_tail_bits = obj_desc->common_field.bit_length %
- obj_desc->common_field.access_bit_width;
+ buffer_tail_bits = obj_desc->common_field.bit_length % access_bit_width;
if (buffer_tail_bits) {
merged_datum &= ACPI_MASK_BITS_ABOVE(buffer_tail_bits);
}
@@ -787,7 +825,7 @@ acpi_ex_extract_from_field(union acpi_operand_object *obj_desc,
* FUNCTION: acpi_ex_insert_into_field
*
* PARAMETERS: obj_desc - Field to be written
- * Buffer - Data to be written
+ * buffer - Data to be written
* buffer_length - Length of Buffer
*
* RETURN: Status
@@ -800,19 +838,20 @@ acpi_status
acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
void *buffer, u32 buffer_length)
{
+ void *new_buffer;
acpi_status status;
- acpi_integer mask;
- acpi_integer width_mask;
- acpi_integer merged_datum;
- acpi_integer raw_datum = 0;
+ u64 mask;
+ u64 width_mask;
+ u64 merged_datum;
+ u64 raw_datum = 0;
u32 field_offset = 0;
u32 buffer_offset = 0;
u32 buffer_tail_bits;
u32 datum_count;
u32 field_datum_count;
- u32 i;
+ u32 access_bit_width;
u32 required_length;
- void *new_buffer;
+ u32 i;
ACPI_FUNCTION_TRACE(ex_insert_into_field);
@@ -823,7 +862,7 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
ACPI_ROUND_BITS_UP_TO_BYTES(obj_desc->common_field.bit_length);
/*
* We must have a buffer that is at least as long as the field
- * we are writing to. This is because individual fields are
+ * we are writing to. This is because individual fields are
* indivisible and partial writes are not supported -- as per
* the ACPI specification.
*/
@@ -838,7 +877,7 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
/*
* Copy the original data to the new buffer, starting
- * at Byte zero. All unused (upper) bytes of the
+ * at Byte zero. All unused (upper) bytes of the
* buffer will be 0.
*/
ACPI_MEMCPY((char *)new_buffer, (char *)buffer, buffer_length);
@@ -846,17 +885,24 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
buffer_length = required_length;
}
+/* TBD: Move to common setup code */
+
+ /* Algo is limited to sizeof(u64), so cut the access_byte_width */
+ if (obj_desc->common_field.access_byte_width > sizeof(u64)) {
+ obj_desc->common_field.access_byte_width = sizeof(u64);
+ }
+
+ access_bit_width = ACPI_MUL_8(obj_desc->common_field.access_byte_width);
+
/*
* Create the bitmasks used for bit insertion.
* Note: This if/else is used to bypass compiler differences with the
* shift operator
*/
- if (obj_desc->common_field.access_bit_width == ACPI_INTEGER_BIT_SIZE) {
- width_mask = ACPI_INTEGER_MAX;
+ if (access_bit_width == ACPI_INTEGER_BIT_SIZE) {
+ width_mask = ACPI_UINT64_MAX;
} else {
- width_mask =
- ACPI_MASK_BITS_ABOVE(obj_desc->common_field.
- access_bit_width);
+ width_mask = ACPI_MASK_BITS_ABOVE(access_bit_width);
}
mask = width_mask &
@@ -865,12 +911,11 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
/* Compute the number of datums (access width data items) */
datum_count = ACPI_ROUND_UP_TO(obj_desc->common_field.bit_length,
- obj_desc->common_field.access_bit_width);
+ access_bit_width);
field_datum_count = ACPI_ROUND_UP_TO(obj_desc->common_field.bit_length +
obj_desc->common_field.
start_field_bit_offset,
- obj_desc->common_field.
access_bit_width);
/* Get initial Datum from the input buffer */
@@ -907,12 +952,11 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
* This avoids the differences in behavior between different compilers
* concerning shift values larger than the target data width.
*/
- if ((obj_desc->common_field.access_bit_width -
+ if ((access_bit_width -
obj_desc->common_field.start_field_bit_offset) <
ACPI_INTEGER_BIT_SIZE) {
merged_datum =
- raw_datum >> (obj_desc->common_field.
- access_bit_width -
+ raw_datum >> (access_bit_width -
obj_desc->common_field.
start_field_bit_offset);
} else {
@@ -931,6 +975,7 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
ACPI_MEMCPY(&raw_datum, ((char *)buffer) + buffer_offset,
ACPI_MIN(obj_desc->common_field.access_byte_width,
buffer_length - buffer_offset));
+
merged_datum |=
raw_datum << obj_desc->common_field.start_field_bit_offset;
}
@@ -939,7 +984,7 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
buffer_tail_bits = (obj_desc->common_field.bit_length +
obj_desc->common_field.start_field_bit_offset) %
- obj_desc->common_field.access_bit_width;
+ access_bit_width;
if (buffer_tail_bits) {
mask &= ACPI_MASK_BITS_ABOVE(buffer_tail_bits);
}
@@ -951,7 +996,7 @@ acpi_ex_insert_into_field(union acpi_operand_object *obj_desc,
mask, merged_datum,
field_offset);
- exit:
+exit:
/* Free temporary buffer if we used one */
if (new_buffer) {
diff --git a/drivers/acpi/acpica/exmisc.c b/drivers/acpi/acpica/exmisc.c