From 7714f776841bb8ee82ab46c1b73307a582498613 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 4 Jun 2005 17:08:24 -0400 Subject: [PATCH] --- yaml --- r: 2143 b: refs/heads/master c: 91bcc018f9fc5547875e9ec5a3dc09cbc70d4f8e h: refs/heads/master i: 2141: 70ca7e184ed2004e7b4fb15e670826f4586cf124 2139: 7847bd0f794611182aa5a56ab1ee06d1e03fa202 2135: 6d923bbc107d8ee47d67b7012d698f2ebe79fdf8 2127: 7140151334ed3fbe55903cbcaef8c995d9f70c20 2111: e3d3929f7c25fae67d01a67ff8ff43901547be41 v: v3 --- [refs] | 2 +- trunk/Documentation/DocBook/libata.tmpl | 156 ++- .../Documentation/cpu-freq/cpufreq-stats.txt | 128 ++ .../Documentation/networking/generic-hdlc.txt | 51 +- trunk/MAINTAINERS | 10 +- trunk/arch/h8300/kernel/process.c | 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/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/pSeries_reconfig.c | 8 - trunk/arch/ppc64/kernel/process.c | 3 - trunk/arch/ppc64/kernel/prom_init.c | 118 +- 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 | 2 - 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/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 | 1 + 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/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/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 | 2 +- trunk/drivers/ide/pci/amd74xx.c | 3 + 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/via-pmu.c | 8 +- trunk/drivers/media/dvb/bt8xx/dst.c | 122 +- trunk/drivers/net/8139cp.c | 100 +- trunk/drivers/net/8139too.c | 194 ++- trunk/drivers/net/Kconfig | 12 + trunk/drivers/net/Makefile | 1 + trunk/drivers/net/arm/etherh.c | 16 +- trunk/drivers/net/dm9000.c | 1219 +++++++++++++++++ trunk/drivers/net/dm9000.h | 135 ++ trunk/drivers/net/hamradio/baycom_epp.c | 126 +- trunk/drivers/net/pcmcia/pcnet_cs.c | 17 +- trunk/drivers/net/ppp_generic.c | 177 ++- trunk/drivers/net/r8169.c | 343 ++++- trunk/drivers/net/shaper.c | 86 +- trunk/drivers/net/tg3.c | 571 +++++++- trunk/drivers/net/wan/hdlc_fr.c | 320 +++-- trunk/drivers/net/wan/hdlc_generic.c | 16 +- trunk/drivers/net/wireless/orinoco.c | 332 +---- trunk/drivers/net/wireless/orinoco.h | 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/scsi/ahci.c | 3 + trunk/drivers/scsi/aic7xxx/aic79xx_osm.c | 2 +- trunk/drivers/scsi/ata_piix.c | 18 +- trunk/drivers/scsi/libata-core.c | 485 ++++++- 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 | 1 + trunk/drivers/scsi/sata_qstor.c | 2 + trunk/drivers/scsi/sata_sil.c | 1 + 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/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/pwc-ctrl.c | 2 - trunk/drivers/usb/media/pwc/pwc-uncompress.c | 2 - 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/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/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-um/page.h | 8 +- trunk/include/asm-um/pgtable.h | 8 - trunk/include/asm-um/thread_info.h | 9 +- trunk/include/linux/cpufreq.h | 2 +- trunk/include/linux/dm9000.h | 36 + 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/hdlc.h | 4 +- trunk/include/linux/if_shaper.h | 3 +- trunk/include/linux/inetdevice.h | 2 + trunk/include/linux/libata.h | 59 + trunk/include/linux/netdevice.h | 5 +- trunk/include/linux/notifier.h | 1 + trunk/include/linux/pci_ids.h | 6 + trunk/include/linux/sysctl.h | 1 + trunk/include/linux/usb.h | 6 +- trunk/include/net/route.h | 3 - trunk/init/Kconfig | 2 +- trunk/kernel/irq/handle.c | 2 - trunk/kernel/module.c | 6 + trunk/lib/Kconfig.debug | 3 +- 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/sched/sch_dsmark.c | 16 +- trunk/sound/oss/Kconfig | 12 +- trunk/sound/ppc/pmac.c | 30 +- 251 files changed, 9036 insertions(+), 3642 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/dm9000.c create mode 100644 trunk/drivers/net/dm9000.h create mode 100644 trunk/drivers/usb/host/sl811_cs.c delete mode 100644 trunk/drivers/usb/media/pwc/ChangeLog create mode 100644 trunk/drivers/usb/serial/option.c create mode 100644 trunk/include/linux/dm9000.h delete mode 100644 trunk/net/ipv4/ipvs/ip_vs_proto_icmp.c diff --git a/[refs] b/[refs] index 0ff5ccc12b60..e8368b1e0313 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1f15d694522af9cd7492695f11dd2dc77b6cf098 +refs/heads/master: 91bcc018f9fc5547875e9ec5a3dc09cbc70d4f8e 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 "