From 52d78729591d938224694eb9c8e2ccab5cc2aa41 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 4 Jun 2005 00:59:09 -0400 Subject: [PATCH] --- yaml --- r: 2172 b: refs/heads/master c: 31c94a6e987af162ac5ede83cddf49870cd1f2ed h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/Documentation/DocBook/libata.tmpl | 156 +- .../Documentation/cpu-freq/cpufreq-stats.txt | 128 + trunk/MAINTAINERS | 10 +- trunk/arch/h8300/kernel/process.c | 2 +- trunk/arch/i386/Kconfig | 2 +- trunk/arch/i386/kernel/cpu/cpufreq/Kconfig | 14 +- trunk/arch/i386/kernel/cpu/cpufreq/Makefile | 1 + trunk/arch/i386/kernel/cpu/cpufreq/longhaul.c | 58 +- .../i386/kernel/cpu/cpufreq/powernow-k7.c | 11 +- .../i386/kernel/cpu/cpufreq/powernow-k8.c | 113 +- .../i386/kernel/cpu/cpufreq/powernow-k8.h | 15 + .../arch/i386/kernel/cpu/cpufreq/sc520_freq.c | 186 + .../kernel/cpu/cpufreq/speedstep-centrino.c | 6 + .../i386/kernel/cpu/cpufreq/speedstep-lib.c | 6 +- .../i386/kernel/cpu/cpufreq/speedstep-smi.c | 3 + trunk/arch/i386/kernel/cpu/intel_cacheinfo.c | 2 +- trunk/arch/i386/kernel/setup.c | 2 + trunk/arch/i386/kernel/smpboot.c | 4 +- trunk/arch/i386/kernel/timers/common.c | 6 +- trunk/arch/i386/kernel/timers/timer_tsc.c | 20 + trunk/arch/i386/pci/irq.c | 5 - trunk/arch/ia64/ia32/sys_ia32.c | 2 +- trunk/arch/ia64/kernel/entry.S | 4 +- trunk/arch/ia64/kernel/mca.c | 8 +- trunk/arch/ia64/kernel/minstate.h | 3 +- trunk/arch/ia64/kernel/perfmon.c | 175 +- trunk/arch/ia64/kernel/ptrace.c | 20 +- trunk/arch/ia64/kernel/smpboot.c | 2 +- trunk/arch/ia64/kernel/sys_ia64.c | 7 - trunk/arch/ia64/sn/kernel/setup.c | 2 + trunk/arch/m68knommu/kernel/process.c | 17 +- trunk/arch/ppc/Kconfig | 4 +- trunk/arch/ppc/boot/images/Makefile | 3 +- trunk/arch/ppc/configs/mpc8555_cds_defconfig | 117 +- trunk/arch/ppc/kernel/head_fsl_booke.S | 15 +- trunk/arch/ppc/kernel/traps.c | 7 +- trunk/arch/ppc/platforms/83xx/mpc834x_sys.c | 1 - trunk/arch/ppc/platforms/83xx/mpc834x_sys.h | 7 +- trunk/arch/ppc/platforms/85xx/mpc8540_ads.c | 3 + .../ppc/platforms/85xx/mpc85xx_cds_common.c | 143 +- .../ppc/platforms/85xx/mpc85xx_cds_common.h | 3 + trunk/arch/ppc/platforms/85xx/sbc8560.c | 3 + trunk/arch/ppc/platforms/pmac_cpufreq.c | 36 +- trunk/arch/ppc/platforms/pq2ads.h | 41 +- trunk/arch/ppc/syslib/Makefile | 4 +- trunk/arch/ppc/syslib/m8260_pci.c | 193 - trunk/arch/ppc/syslib/m8260_pci.h | 76 - trunk/arch/ppc/syslib/m8260_pci_erratum9.c | 10 +- trunk/arch/ppc/syslib/m8260_setup.c | 11 +- trunk/arch/ppc/syslib/m82xx_pci.c | 383 ++ trunk/arch/ppc/syslib/m82xx_pci.h | 92 + trunk/arch/ppc/syslib/open_pic.c | 4 +- trunk/arch/ppc/syslib/ppc83xx_setup.c | 28 + trunk/arch/ppc/syslib/ppc85xx_setup.c | 16 + trunk/arch/ppc/syslib/prom_init.c | 10 + trunk/arch/ppc64/kernel/entry.S | 9 - trunk/arch/ppc64/kernel/head.S | 10 +- trunk/arch/ppc64/kernel/iSeries_setup.c | 22 + trunk/arch/ppc64/kernel/idle.c | 8 +- trunk/arch/ppc64/kernel/mf.c | 85 +- trunk/arch/ppc64/kernel/pSeries_reconfig.c | 8 - trunk/arch/ppc64/kernel/process.c | 3 - trunk/arch/ppc64/kernel/prom_init.c | 118 +- trunk/arch/ppc64/kernel/rtc.c | 39 +- trunk/arch/ppc64/kernel/setup.c | 56 +- trunk/arch/ppc64/kernel/smp.c | 3 +- trunk/arch/ppc64/kernel/sysfs.c | 8 +- trunk/arch/ppc64/kernel/time.c | 3 +- trunk/arch/sparc64/kernel/pci_iommu.c | 88 +- trunk/arch/sparc64/kernel/pci_psycho.c | 2 +- trunk/arch/sparc64/kernel/pci_sabre.c | 2 +- trunk/arch/sparc64/kernel/pci_schizo.c | 2 +- trunk/arch/sparc64/kernel/sbus.c | 20 +- trunk/arch/sparc64/kernel/setup.c | 11 + trunk/arch/sparc64/kernel/smp.c | 3 + trunk/arch/sparc64/kernel/traps.c | 19 + trunk/arch/um/Kconfig.debug | 4 - trunk/arch/um/drivers/random.c | 16 +- trunk/arch/um/drivers/ssl.c | 1 - trunk/arch/um/drivers/stdio_console.c | 1 - trunk/arch/um/drivers/ubd_kern.c | 7 +- trunk/arch/um/include/2_5compat.h | 24 - trunk/arch/um/include/sysrq.h | 3 +- trunk/arch/um/kernel/exec_kern.c | 1 - trunk/arch/um/kernel/initrd_kern.c | 59 - trunk/arch/um/kernel/initrd_user.c | 46 - trunk/arch/um/kernel/main.c | 40 +- trunk/arch/um/kernel/process_kern.c | 36 - trunk/arch/um/kernel/ptrace.c | 19 +- trunk/arch/um/kernel/sysrq.c | 21 +- trunk/arch/um/kernel/trap_kern.c | 1 - trunk/arch/um/kernel/tt/process_kern.c | 8 +- trunk/arch/um/kernel/um_arch.c | 6 - trunk/arch/um/sys-i386/sysrq.c | 80 +- trunk/arch/um/sys-ppc/sysrq.c | 14 +- trunk/arch/um/sys-x86_64/syscalls.c | 16 +- trunk/arch/um/sys-x86_64/sysrq.c | 11 +- trunk/arch/x86_64/Kconfig | 3 +- trunk/arch/x86_64/kernel/io_apic.c | 1 + trunk/arch/x86_64/kernel/mpparse.c | 1 + trunk/arch/x86_64/kernel/signal.c | 1 + trunk/arch/x86_64/kernel/time.c | 2 + trunk/arch/x86_64/kernel/traps.c | 2 + trunk/arch/x86_64/kernel/x8664_ksyms.c | 3 +- trunk/drivers/acpi/Kconfig | 5 +- trunk/drivers/acpi/pci_irq.c | 4 - trunk/drivers/atm/Makefile | 3 +- trunk/drivers/atm/fore200e.c | 6 +- trunk/drivers/atm/he.c | 6 +- trunk/drivers/atm/nicstar.c | 20 +- trunk/drivers/atm/zatm.c | 11 +- trunk/drivers/block/ub.c | 598 +- trunk/drivers/cdrom/viocd.c | 14 + trunk/drivers/char/ipmi/ipmi_devintf.c | 4 +- trunk/drivers/cpufreq/Kconfig | 24 + trunk/drivers/cpufreq/Makefile | 1 + trunk/drivers/cpufreq/cpufreq.c | 8 +- trunk/drivers/cpufreq/cpufreq_conservative.c | 586 ++ trunk/drivers/cpufreq/cpufreq_ondemand.c | 180 +- trunk/drivers/cpufreq/cpufreq_stats.c | 47 +- trunk/drivers/firmware/pcdp.c | 1 + trunk/drivers/i2c/busses/i2c-ali1563.c | 46 +- trunk/drivers/ide/ide-cd.c | 52 +- trunk/drivers/ide/ide-disk.c | 41 +- trunk/drivers/ide/ide-floppy.c | 42 +- trunk/drivers/ide/ide-probe.c | 51 +- trunk/drivers/ide/ide-proc.c | 52 +- trunk/drivers/ide/ide-tape.c | 51 +- trunk/drivers/ide/ide.c | 307 +- trunk/drivers/ide/pci/amd74xx.c | 3 + trunk/drivers/infiniband/core/sa_query.c | 35 +- trunk/drivers/infiniband/core/user_mad.c | 4 + trunk/drivers/infiniband/include/ib_sa.h | 4 +- trunk/drivers/input/gameport/Kconfig | 20 - trunk/drivers/input/joydev.c | 2 +- trunk/drivers/input/keyboard/atkbd.c | 6 +- trunk/drivers/input/mouse/psmouse-base.c | 7 +- trunk/drivers/input/mouse/synaptics.c | 39 +- trunk/drivers/input/mousedev.c | 15 +- trunk/drivers/input/serio/i8042-x86ia64io.h | 32 +- trunk/drivers/input/serio/i8042.c | 50 +- trunk/drivers/input/touchscreen/gunze.c | 3 +- trunk/drivers/macintosh/therm_adt746x.c | 125 +- trunk/drivers/macintosh/via-pmu.c | 8 +- trunk/drivers/media/dvb/bt8xx/dst.c | 122 +- trunk/drivers/media/video/bttv-i2c.c | 3 + trunk/drivers/net/Kconfig | 10 + trunk/drivers/net/Makefile | 1 + trunk/drivers/net/amd8111e.c | 24 +- trunk/drivers/net/bnx2.c | 5530 +++++++++++++++++ trunk/drivers/net/bnx2.h | 4352 +++++++++++++ trunk/drivers/net/bnx2_fw.h | 2468 ++++++++ trunk/drivers/net/bonding/bond_main.c | 2 +- trunk/drivers/net/e100.c | 165 +- trunk/drivers/net/e1000/e1000.h | 37 +- trunk/drivers/net/e1000/e1000_ethtool.c | 105 +- trunk/drivers/net/e1000/e1000_hw.c | 2133 +++++-- trunk/drivers/net/e1000/e1000_hw.h | 570 +- trunk/drivers/net/e1000/e1000_main.c | 1147 +++- trunk/drivers/net/e1000/e1000_osdep.h | 32 +- trunk/drivers/net/e1000/e1000_param.c | 3 +- trunk/drivers/net/forcedeth.c | 103 +- trunk/drivers/net/hamradio/baycom_epp.c | 126 +- trunk/drivers/net/iseries_veth.c | 32 +- trunk/drivers/net/ixgb/ixgb.h | 2 +- trunk/drivers/net/ixgb/ixgb_ee.c | 24 +- trunk/drivers/net/ixgb/ixgb_ethtool.c | 4 +- trunk/drivers/net/ixgb/ixgb_main.c | 153 +- trunk/drivers/net/ixgb/ixgb_osdep.h | 3 +- trunk/drivers/net/natsemi.c | 6 +- trunk/drivers/net/ns83820.c | 69 +- trunk/drivers/net/pcnet32.c | 7 +- trunk/drivers/net/shaper.c | 86 +- trunk/drivers/net/sis900.c | 52 +- trunk/drivers/net/tg3.c | 571 +- trunk/drivers/net/tlan.c | 12 + trunk/drivers/net/tulip/media.c | 1 + trunk/drivers/net/wireless/airo.c | 150 +- trunk/drivers/net/wireless/atmel_cs.c | 1 + trunk/drivers/pci/hotplug/cpci_hotplug_core.c | 302 +- trunk/drivers/pci/hotplug/cpci_hotplug_pci.c | 144 +- trunk/drivers/pci/hotplug/shpchprm_acpi.c | 4 +- trunk/drivers/pci/quirks.c | 40 +- trunk/drivers/s390/net/Makefile | 3 +- trunk/drivers/s390/net/ctcdbug.h | 12 +- trunk/drivers/s390/net/ctcmain.c | 616 +- trunk/drivers/s390/net/ctcmain.h | 276 + trunk/drivers/s390/net/ctctty.c | 5 +- trunk/drivers/s390/net/cu3088.c | 4 +- trunk/drivers/s390/net/cu3088.h | 3 + trunk/drivers/s390/net/iucv.c | 10 +- trunk/drivers/s390/net/lcs.c | 33 +- trunk/drivers/s390/net/qeth.h | 35 +- trunk/drivers/s390/net/qeth_eddp.c | 51 +- trunk/drivers/s390/net/qeth_main.c | 316 +- trunk/drivers/s390/net/qeth_tso.c | 285 - trunk/drivers/s390/net/qeth_tso.h | 166 +- trunk/drivers/scsi/ahci.c | 83 +- trunk/drivers/scsi/aic7xxx/aic79xx_osm.c | 2 +- trunk/drivers/scsi/ata_piix.c | 18 +- trunk/drivers/scsi/ide-scsi.c | 86 +- trunk/drivers/scsi/libata-core.c | 498 +- trunk/drivers/scsi/libata-scsi.c | 2 +- trunk/drivers/scsi/libata.h | 2 +- trunk/drivers/scsi/qla2xxx/qla_os.c | 24 +- trunk/drivers/scsi/sata_nv.c | 2 + trunk/drivers/scsi/sata_promise.c | 29 +- trunk/drivers/scsi/sata_qstor.c | 2 + trunk/drivers/scsi/sata_sil.c | 2 + trunk/drivers/scsi/sata_sis.c | 1 + trunk/drivers/scsi/sata_svw.c | 1 + trunk/drivers/scsi/sata_sx4.c | 2 + trunk/drivers/scsi/sata_uli.c | 1 + trunk/drivers/scsi/sata_via.c | 1 + trunk/drivers/scsi/sata_vsc.c | 2 + trunk/drivers/scsi/scsi_scan.c | 1 + trunk/drivers/usb/atm/speedtch.c | 2 + trunk/drivers/usb/core/sysfs.c | 22 +- trunk/drivers/usb/host/Kconfig | 11 + trunk/drivers/usb/host/Makefile | 1 + trunk/drivers/usb/host/sl811-hcd.c | 146 +- trunk/drivers/usb/host/sl811_cs.c | 442 ++ trunk/drivers/usb/input/hid-core.c | 18 + trunk/drivers/usb/media/pwc/ChangeLog | 143 - trunk/drivers/usb/media/pwc/Makefile | 2 +- trunk/drivers/usb/media/pwc/pwc-ctrl.c | 14 +- trunk/drivers/usb/media/pwc/pwc-dec1.c | 42 - trunk/drivers/usb/media/pwc/pwc-dec1.h | 36 - trunk/drivers/usb/media/pwc/pwc-dec23.c | 623 -- trunk/drivers/usb/media/pwc/pwc-dec23.h | 58 - trunk/drivers/usb/media/pwc/pwc-if.c | 9 +- trunk/drivers/usb/media/pwc/pwc-kiara.c | 573 -- trunk/drivers/usb/media/pwc/pwc-timon.c | 1130 ---- trunk/drivers/usb/media/pwc/pwc-uncompress.c | 4 +- trunk/drivers/usb/net/usbnet.c | 2 +- trunk/drivers/usb/serial/Kconfig | 11 + trunk/drivers/usb/serial/Makefile | 1 + trunk/drivers/usb/serial/cp2101.c | 363 +- trunk/drivers/usb/serial/ftdi_sio.c | 3 + trunk/drivers/usb/serial/ftdi_sio.h | 2 + trunk/drivers/usb/serial/option.c | 729 +++ trunk/drivers/usb/serial/usb-serial.c | 20 +- trunk/drivers/usb/storage/unusual_devs.h | 9 + trunk/drivers/video/intelfb/intelfbdrv.c | 22 +- trunk/fs/cifs/README | 4 +- trunk/fs/cifs/cifsproto.h | 2 +- trunk/fs/cifs/cifssmb.c | 56 +- trunk/fs/cifs/dir.c | 3 +- trunk/fs/cifs/inode.c | 24 +- trunk/fs/cifs/misc.c | 1 + trunk/fs/hostfs/hostfs_kern.c | 1 - trunk/fs/jbd/checkpoint.c | 5 +- trunk/fs/proc/proc_devtree.c | 105 +- trunk/fs/udf/udftime.c | 2 +- trunk/fs/xfs/linux-2.6/xfs_aops.c | 1 - trunk/fs/xfs/linux-2.6/xfs_file.c | 7 +- trunk/fs/xfs/linux-2.6/xfs_ioctl32.c | 29 +- trunk/fs/xfs/linux-2.6/xfs_ioctl32.h | 6 +- trunk/fs/xfs/linux-2.6/xfs_super.c | 3 +- trunk/fs/xfs/xfs_iomap.c | 4 +- trunk/include/asm-i386/linkage.h | 4 +- trunk/include/asm-i386/timer.h | 1 + trunk/include/asm-ia64/perfmon.h | 8 + trunk/include/asm-ia64/sn/sn_sal.h | 28 +- trunk/include/asm-ppc/cpm2.h | 46 + trunk/include/asm-ppc/m8260_pci.h | 1 + trunk/include/asm-ppc/mpc8260.h | 2 +- trunk/include/asm-ppc64/iSeries/mf.h | 1 + trunk/include/asm-ppc64/processor.h | 186 +- trunk/include/asm-ppc64/prom.h | 13 +- trunk/include/asm-ppc64/thread_info.h | 4 +- trunk/include/asm-sh/thread_info.h | 2 +- trunk/include/asm-sh64/thread_info.h | 2 +- trunk/include/asm-sparc64/iommu.h | 2 + trunk/include/asm-sparc64/pbm.h | 8 +- trunk/include/asm-sparc64/spitfire.h | 3 + trunk/include/asm-um/page.h | 8 +- trunk/include/asm-um/pgtable.h | 8 - trunk/include/asm-um/thread_info.h | 9 +- trunk/include/asm-x86_64/bug.h | 2 + trunk/include/linux/acpi.h | 5 +- trunk/include/linux/cpufreq.h | 2 +- trunk/include/linux/etherdevice.h | 22 +- trunk/include/linux/ethtool.h | 1 + trunk/include/linux/gameport.h | 28 +- trunk/include/linux/hardirq.h | 6 +- trunk/include/linux/ide.h | 20 +- trunk/include/linux/if_shaper.h | 3 +- trunk/include/linux/if_tr.h | 6 +- trunk/include/linux/inetdevice.h | 2 + trunk/include/linux/libata.h | 59 + trunk/include/linux/mii.h | 8 + trunk/include/linux/netdevice.h | 5 +- trunk/include/linux/notifier.h | 1 + trunk/include/linux/pci_ids.h | 8 + trunk/include/linux/pkt_sched.h | 9 +- trunk/include/linux/sysctl.h | 1 + trunk/include/linux/usb.h | 6 +- trunk/include/net/route.h | 3 - trunk/include/net/xfrm.h | 2 + trunk/init/Kconfig | 2 +- trunk/kernel/cpuset.c | 24 +- trunk/kernel/irq/handle.c | 2 - trunk/kernel/module.c | 6 + trunk/lib/Kconfig.debug | 3 +- trunk/net/802/tr.c | 26 +- trunk/net/bridge/br_device.c | 15 +- trunk/net/bridge/br_if.c | 23 + trunk/net/bridge/br_input.c | 8 +- trunk/net/bridge/br_notify.c | 9 + trunk/net/bridge/br_private.h | 1 + trunk/net/bridge/br_stp_bpdu.c | 3 + trunk/net/core/dev.c | 12 + trunk/net/core/ethtool.c | 20 +- trunk/net/core/net-sysfs.c | 3 +- trunk/net/ipv4/devinet.c | 34 +- trunk/net/ipv4/esp4.c | 2 +- trunk/net/ipv4/ipvs/Makefile | 2 +- trunk/net/ipv4/ipvs/ip_vs_proto.c | 3 - trunk/net/ipv4/ipvs/ip_vs_proto_icmp.c | 182 - trunk/net/ipv4/multipath_drr.c | 18 +- trunk/net/ipv4/multipath_rr.c | 20 - trunk/net/ipv4/netfilter/ip_queue.c | 10 + trunk/net/ipv4/udp.c | 12 +- trunk/net/ipv6/ip6_flowlabel.c | 10 +- trunk/net/ipv6/ipv6_syms.c | 1 - trunk/net/ipv6/xfrm6_policy.c | 4 + trunk/net/sched/sch_dsmark.c | 16 +- trunk/net/sched/sch_netem.c | 209 +- trunk/net/xfrm/xfrm_policy.c | 4 +- trunk/sound/oss/Kconfig | 12 +- trunk/sound/ppc/pmac.c | 30 +- 333 files changed, 24650 insertions(+), 8133 deletions(-) create mode 100644 trunk/Documentation/cpu-freq/cpufreq-stats.txt create mode 100644 trunk/arch/i386/kernel/cpu/cpufreq/sc520_freq.c delete mode 100644 trunk/arch/ppc/syslib/m8260_pci.c delete mode 100644 trunk/arch/ppc/syslib/m8260_pci.h create mode 100644 trunk/arch/ppc/syslib/m82xx_pci.c create mode 100644 trunk/arch/ppc/syslib/m82xx_pci.h delete mode 100644 trunk/arch/um/include/2_5compat.h delete mode 100644 trunk/arch/um/kernel/initrd_kern.c delete mode 100644 trunk/arch/um/kernel/initrd_user.c create mode 100644 trunk/drivers/cpufreq/cpufreq_conservative.c create mode 100644 trunk/drivers/net/bnx2.c create mode 100644 trunk/drivers/net/bnx2.h create mode 100644 trunk/drivers/net/bnx2_fw.h create mode 100644 trunk/drivers/s390/net/ctcmain.h delete mode 100644 trunk/drivers/s390/net/qeth_tso.c create mode 100644 trunk/drivers/usb/host/sl811_cs.c delete mode 100644 trunk/drivers/usb/media/pwc/ChangeLog delete mode 100644 trunk/drivers/usb/media/pwc/pwc-dec1.c delete mode 100644 trunk/drivers/usb/media/pwc/pwc-dec1.h delete mode 100644 trunk/drivers/usb/media/pwc/pwc-dec23.c delete mode 100644 trunk/drivers/usb/media/pwc/pwc-dec23.h create mode 100644 trunk/drivers/usb/serial/option.c delete mode 100644 trunk/net/ipv4/ipvs/ip_vs_proto_icmp.c diff --git a/[refs] b/[refs] index e95da6236d5a..cd828d19f580 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 60bf09a366c873aab36e3b3110ee9f5bd89a1a6d +refs/heads/master: 31c94a6e987af162ac5ede83cddf49870cd1f2ed diff --git a/trunk/Documentation/DocBook/libata.tmpl b/trunk/Documentation/DocBook/libata.tmpl index cf2fce7707da..6df1dfd18b65 100644 --- a/trunk/Documentation/DocBook/libata.tmpl +++ b/trunk/Documentation/DocBook/libata.tmpl @@ -14,7 +14,7 @@ - 2003 + 2003-2005 Jeff Garzik @@ -44,30 +44,38 @@ - - Thanks + + Introduction - The bulk of the ATA knowledge comes thanks to long conversations with - Andre Hedrick (www.linux-ide.org). + libATA is a library used inside the Linux kernel to support ATA host + controllers and devices. libATA provides an ATA driver API, class + transports for ATA and ATAPI devices, and SCSI<->ATA translation + for ATA devices according to the T10 SAT specification. - Thanks to Alan Cox for pointing out similarities - between SATA and SCSI, and in general for motivation to hack on - libata. - - - libata's device detection - method, ata_pio_devchk, and in general all the early probing was - based on extensive study of Hale Landis's probe/reset code in his - ATADRVR driver (www.ata-atapi.com). + This Guide documents the libATA driver API, library functions, library + internals, and a couple sample ATA low-level drivers. libata Driver API + + struct ata_port_operations is defined for every low-level libata + hardware driver, and it controls how the low-level driver + interfaces with the ATA and SCSI layers. + + + FIS-based drivers will hook into the system with ->qc_prep() and + ->qc_issue() high-level hooks. Hardware which behaves in a manner + similar to PCI IDE hardware may utilize several generic helpers, + defining at a bare minimum the bus I/O addresses of the ATA shadow + register blocks. + struct ata_port_operations + Disable ATA port void (*port_disable) (struct ata_port *); @@ -78,6 +86,9 @@ void (*port_disable) (struct ata_port *); unplug). + + + Post-IDENTIFY device configuration void (*dev_config) (struct ata_port *, struct ata_device *); @@ -88,6 +99,9 @@ void (*dev_config) (struct ata_port *, struct ata_device *); issue of SET FEATURES - XFER MODE, and prior to operation. + + + Set PIO/DMA mode void (*set_piomode) (struct ata_port *, struct ata_device *); void (*set_dmamode) (struct ata_port *, struct ata_device *); @@ -108,6 +122,9 @@ void (*post_set_mode) (struct ata_port *ap); ->set_dma_mode() is only called if DMA is possible. + + + Taskfile read/write void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf); void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); @@ -120,6 +137,9 @@ void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); taskfile register values. + + + ATA command execute void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); @@ -129,17 +149,37 @@ void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); ->tf_load(), to be initiated in hardware. + + + Per-cmd ATAPI DMA capabilities filter + +int (*check_atapi_dma) (struct ata_queued_cmd *qc); + + + +Allow low-level driver to filter ATA PACKET commands, returning a status +indicating whether or not it is OK to use DMA for the supplied PACKET +command. + + + + + Read specific ATA shadow registers u8 (*check_status)(struct ata_port *ap); -void (*dev_select)(struct ata_port *ap, unsigned int device); +u8 (*check_altstatus)(struct ata_port *ap); +u8 (*check_err)(struct ata_port *ap); - Reads the Status ATA shadow register from hardware. On some - hardware, this has the side effect of clearing the interrupt - condition. + Reads the Status/AltStatus/Error ATA shadow register from + hardware. On some hardware, reading the Status register has + the side effect of clearing the interrupt condition. + + + Select ATA device on bus void (*dev_select)(struct ata_port *ap, unsigned int device); @@ -147,9 +187,13 @@ void (*dev_select)(struct ata_port *ap, unsigned int device); Issues the low-level hardware command(s) that causes one of N hardware devices to be considered 'selected' (active and - available for use) on the ATA bus. + available for use) on the ATA bus. This generally has no +meaning on FIS-based devices. + + + Reset ATA bus void (*phy_reset) (struct ata_port *ap); @@ -162,17 +206,31 @@ void (*phy_reset) (struct ata_port *ap); functions ata_bus_reset() or sata_phy_reset() for this hook. + + + Control PCI IDE BMDMA engine void (*bmdma_setup) (struct ata_queued_cmd *qc); void (*bmdma_start) (struct ata_queued_cmd *qc); +void (*bmdma_stop) (struct ata_port *ap); +u8 (*bmdma_status) (struct ata_port *ap); - When setting up an IDE BMDMA transaction, these hooks arm - (->bmdma_setup) and fire (->bmdma_start) the hardware's DMA - engine. +When setting up an IDE BMDMA transaction, these hooks arm +(->bmdma_setup), fire (->bmdma_start), and halt (->bmdma_stop) +the hardware's DMA engine. ->bmdma_status is used to read the standard +PCI IDE DMA Status register. + +These hooks are typically either no-ops, or simply not implemented, in +FIS-based drivers. + + + + + High-level taskfile hooks void (*qc_prep) (struct ata_queued_cmd *qc); int (*qc_issue) (struct ata_queued_cmd *qc); @@ -190,20 +248,26 @@ int (*qc_issue) (struct ata_queued_cmd *qc); ->qc_issue is used to make a command active, once the hardware and S/G tables have been prepared. IDE BMDMA drivers use the helper function ata_qc_issue_prot() for taskfile protocol-based - dispatch. More advanced drivers roll their own ->qc_issue - implementation, using this as the "issue new ATA command to - hardware" hook. + dispatch. More advanced drivers implement their own ->qc_issue. + + + Timeout (error) handling void (*eng_timeout) (struct ata_port *ap); - This is a high level error handling function, called from the - error handling thread, when a command times out. +This is a high level error handling function, called from the +error handling thread, when a command times out. Most newer +hardware will implement its own error handling code here. IDE BMDMA +drivers may use the helper function ata_eng_timeout(). + + + Hardware interrupt handling irqreturn_t (*irq_handler)(int, void *, struct pt_regs *); void (*irq_clear) (struct ata_port *); @@ -216,6 +280,9 @@ void (*irq_clear) (struct ata_port *); is quiet. + + + SATA phy read/write u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg); void (*scr_write) (struct ata_port *ap, unsigned int sc_reg, @@ -227,6 +294,9 @@ void (*scr_write) (struct ata_port *ap, unsigned int sc_reg, if ->phy_reset hook called the sata_phy_reset() helper function. + + + Init and shutdown int (*port_start) (struct ata_port *ap); void (*port_stop) (struct ata_port *ap); @@ -240,15 +310,17 @@ void (*host_stop) (struct ata_host_set *host_set); tasks. - ->host_stop() is called when the rmmod or hot unplug process - begins. The hook must stop all hardware interrupts, DMA - engines, etc. - - ->port_stop() is called after ->host_stop(). It's sole function is to release DMA/memory resources, now that they are no longer actively being used. + + ->host_stop() is called after all ->port_stop() calls +have completed. The hook must finalize hardware shutdown, release DMA +and other resources, etc. + + + @@ -279,4 +351,24 @@ void (*host_stop) (struct ata_host_set *host_set); !Idrivers/scsi/sata_sil.c + + Thanks + + The bulk of the ATA knowledge comes thanks to long conversations with + Andre Hedrick (www.linux-ide.org), and long hours pondering the ATA + and SCSI specifications. + + + Thanks to Alan Cox for pointing out similarities + between SATA and SCSI, and in general for motivation to hack on + libata. + + + libata's device detection + method, ata_pio_devchk, and in general all the early probing was + based on extensive study of Hale Landis's probe/reset code in his + ATADRVR driver (www.ata-atapi.com). + + + diff --git a/trunk/Documentation/cpu-freq/cpufreq-stats.txt b/trunk/Documentation/cpu-freq/cpufreq-stats.txt new file mode 100644 index 000000000000..e2d1e760b4ba --- /dev/null +++ b/trunk/Documentation/cpu-freq/cpufreq-stats.txt @@ -0,0 +1,128 @@ + + CPU frequency and voltage scaling statictics in the Linux(TM) kernel + + + L i n u x c p u f r e q - s t a t s d r i v e r + + - information for users - + + + Venkatesh Pallipadi + +Contents +1. Introduction +2. Statistics Provided (with example) +3. Configuring cpufreq-stats + + +1. Introduction + +cpufreq-stats is a driver that provices CPU frequency statistics for each CPU. +This statistics is provided in /sysfs as a bunch of read_only interfaces. This +interface (when configured) will appear in a seperate directory under cpufreq +in /sysfs (/devices/system/cpu/cpuX/cpufreq/stats/) for each CPU. +Various statistics will form read_only files under this directory. + +This driver is designed to be independent of any particular cpufreq_driver +that may be running on your CPU. So, it will work with any cpufreq_driver. + + +2. Statistics Provided (with example) + +cpufreq stats provides following statistics (explained in detail below). +- time_in_state +- total_trans +- trans_table + +All the statistics will be from the time the stats driver has been inserted +to the time when a read of a particular statistic is done. Obviously, stats +driver will not have any information about the the frequcny transitions before +the stats driver insertion. + +-------------------------------------------------------------------------------- +:/sys/devices/system/cpu/cpu0/cpufreq/stats # ls -l +total 0 +drwxr-xr-x 2 root root 0 May 14 16:06 . +drwxr-xr-x 3 root root 0 May 14 15:58 .. +-r--r--r-- 1 root root 4096 May 14 16:06 time_in_state +-r--r--r-- 1 root root 4096 May 14 16:06 total_trans +-r--r--r-- 1 root root 4096 May 14 16:06 trans_table +-------------------------------------------------------------------------------- + +- time_in_state +This gives the amount of time spent in each of the frequencies supported by +this CPU. The cat output will have "