29 Oct, 2010

40 commits

  • When fsnotify groups return errors they are ignored. For permissions
    events these should be passed back up the stack, but for most events these
    should continue to be ignored.

    Signed-off-by: Eric Paris

    Eric Paris
     
  • Currently the userspace struct exposed by fanotify uses
    __attribute__((packed)) to make sure that alignment works on multiarch
    platforms. Since this causes a severe performance penalty on some
    platforms we are going to switch to using explicit alignment notation on
    the 64bit values so we don't have to use 'packed'

    Signed-off-by: Eric Paris

    Eric Paris
     
  • The fanotify listeners needs to be able to specify what types of operations
    they are going to perform so they can be ordered appropriately between other
    listeners doing other types of operations. They need this to be able to make
    sure that things like hierarchichal storage managers will get access to inodes
    before processes which need the data. This patch defines 3 possible uses
    which groups must indicate in the fanotify_init() flags.

    FAN_CLASS_PRE_CONTENT
    FAN_CLASS_CONTENT
    FAN_CLASS_NOTIF

    Groups will receive notification in that order. The order between 2 groups in
    the same class is undeterministic.

    FAN_CLASS_PRE_CONTENT is intended to be used by listeners which need access to
    the inode before they are certain that the inode contains it's final data. A
    hierarchical storage manager should choose to use this class.

    FAN_CLASS_CONTENT is intended to be used by listeners which need access to the
    inode after it contains its intended contents. This would be the appropriate
    level for an AV solution or document control system.

    FAN_CLASS_NOTIF is intended for normal async notification about access, much the
    same as inotify and dnotify. Syncronous permissions events are not permitted
    at this class.

    Signed-off-by: Eric Paris

    Eric Paris
     
  • fanotify needs to be able to specify that some groups get events before
    others. They use this idea to make sure that a hierarchical storage
    manager gets access to files before programs which actually use them. This
    is purely infrastructure. Everything will have a priority of 0, but the
    infrastructure will exist for it to be non-zero.

    Signed-off-by: Eric Paris

    Eric Paris
     
  • We disabled the ability to build fanotify in commit 7c5347733dcc4ba0ba.
    This reverts that commit and allows people to build fanotify.

    Signed-off-by: Eric Paris

    Eric Paris
     
  • …el/git/tip/linux-2.6-tip

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: Move olpc to platform
    x86: Move uv to platform
    x86: Move mrst to platform
    x86: Move scx200 to platform
    x86: Move visws to platform
    x86: Move efi to platform
    x86: Move sfi to platform
    x86: Add platform directory

    Linus Torvalds
     
  • * 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging: (68 commits)
    hwmon: (it87) Add support for the IT8721F/IT8758E
    hwmon: (it87) Move conversion functions
    hwmon: Remove many EXPERIMENTAL flags
    hwmon: (lm85) Add support for ADT7468 high-frequency PWM mode
    hwmon: (lm85) Document the ADT7468 as supported
    hwmon: (lm85) Fix ADT7468 frequency table
    hwmon: I2C addresses are constant
    Move ams driver to macintosh
    hwmon: (pcf8591) Don't attempt to detect devices
    hwmon: (pcf8591) Register as a hwmon device
    hwmon: (w83795) Use standard attributes for chassis intrusion
    hwmon: (w83795) Exclude fan control feature by default
    hwmon: (w83795) Add myself as co-author and maintainer
    hwmon: (w83795) More style cleanups
    hwmon: (w83795) Fix LSB reading of voltage limits
    hwmon: (w83795) Use dev_get_drvdata() where possible
    hwmon: (w83795) Delay reading pwm config registers
    hwmon: (w83795) Delay reading limit registers
    hwmon: (w83795) Move register reads to dedicated functions
    hwmon: (w83795) Pack similar register reads
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (841 commits)
    Staging: brcm80211: fix usage of roundup in structures
    Staging: bcm: fix up network device reference counting
    Staging: keucr: fix up US_ macro change
    staging: brcm80211: brcmfmac: Removed codeversion from firmware filenames.
    staging: brcm80211: Remove unnecessary header files.
    staging: brcm80211: Remove unnecessary includes from bcmutils.c
    staging: brcm80211: Removed unnecessary pktsetprio() function.
    Staging: brcm80211: remove typedefs.h
    Staging: brcm80211: remove uintptr typedef usage
    Staging: hv: remove struct vmbus_channel_interface
    Staging: hv: remove Open from struct vmbus_channel_interface
    Staging: hv: storvsc: call vmbus_open directly
    Staging: hv: netvsc: call vmbus_open directly
    Staging: hv: channel: export vmbus_open to modules
    Staging: hv: remove Close from struct vmbus_channel_interface
    Staging: hv: netvsc: call vmbus_close directly
    Staging: hv: storvsc: call vmbus_close directly
    Staging: hv: channel: export vmbus_close to modules
    Staging: hv: remove SendPacket from struct vmbus_channel_interface
    Staging: hv: storvsc: call vmbus_sendpacket directly
    ...

    Fix up conflicts in
    drivers/staging/cx25821/cx25821-audio-upstream.c
    drivers/staging/cx25821/cx25821-audio.h
    due to warring whitespace cleanups (neither of which were all that great)

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (32 commits)
    sh: intc: switch irq_desc iteration to new active IRQ iterator.
    sh: fix up cpu hotplug IRQ migration for irq_data changes.
    sh: oprofile: Make sure the backtrace op is available for timer-fallback.
    sh64: oprofile: Fix up kernel stack pointer size mismatch.
    sh: oprofile: Fix up and extend op_name_from_perf_id().
    sh: lockless get_user_pages_fast()
    sh64: _PAGE_SPECIAL support.
    sound: sh: ctrl_in/outX to __raw_read/writeX conversion.
    sh: disable deprecated genirq support.
    sh: update show_interrupts() for irq_data chip lookup.
    sh: intc: irq_data conversion.
    sh64: irq_data conversion.
    sh64: update for IRQ flag handling naming changes.
    rtc: rtc-rs5c313: ctrl_in/outX to __raw_read/writeX conversion.
    sh: mach-se: irq_data conversion.
    input: hp680_ts_input: ctrl_in/outX to __raw_read/writeX conversion.
    input: jornada680_kbd: ctrl_in/outX to __raw_read/writeX conversion.
    sh: hd64461: irq_data conversion.
    sh: mach-x3proto: irq_data conversion.
    sh: mach-systemh: irq_data conversion.
    ...

    Linus Torvalds
     
  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (27 commits)
    x86: allocate space within a region top-down
    x86: update iomem_resource end based on CPU physical address capabilities
    x86/PCI: allocate space from the end of a region, not the beginning
    PCI: allocate bus resources from the top down
    resources: support allocating space within a region from the top down
    resources: handle overflow when aligning start of available area
    resources: ensure callback doesn't allocate outside available space
    resources: factor out resource_clip() to simplify find_resource()
    resources: add a default alignf to simplify find_resource()
    x86/PCI: MMCONFIG: fix region end calculation
    PCI: Add support for polling PME state on suspended legacy PCI devices
    PCI: Export some PCI PM functionality
    PCI: fix message typo
    PCI: log vendor/device ID always
    PCI: update Intel chipset names and defines
    PCI: use new ccflags variable in Makefile
    PCI: add PCI_MSIX_TABLE/PBA defines
    PCI: add PCI vendor id for STmicroelectronics
    x86/PCI: irq and pci_ids patch for Intel Patsburg DeviceIDs
    PCI: OLPC: Only enable PCI configuration type override on XO-1
    ...

    Linus Torvalds
     
  • Add support for the IT8721F/IT8758E. These new chips differ from the
    older IT87xxF chips in the following ways:
    * ADC LSB is 12 mV instead of 16 mV.
    * PWM values are 8-bit instead of 7-bit.
    There are other minor changes we don't have to care about in the
    driver.

    Another change is that we will handle internal voltage scaling in the
    driver instead of delegating the work to user-space.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Move conversion functions until after structure defintions. This is
    needed for future changes which make use of the structures in the
    conversion funtcions.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Remove the dependency on EXPERIMENTAL for all drivers which are in
    the kernel tree for a long time, are known to work properly and for
    which we have documentation.

    Signed-off-by: Jean Delvare
    Cc: Corentin Labbe
    Cc: Riku Voipio
    Cc: Juerg Haefliger
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • The ADT7468 supports a high-frequency PWM output mode where all PWM
    outputs are driven by a 22.5 kHz clock. Add support for this mode, and
    document it, as it may surprise the user that setting one PWM output
    frequency also affects the other PWM outputs.

    Signed-off-by: Jean Delvare
    Cc: Darrick J. Wong
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • Signed-off-by: Jean Delvare
    Cc: Darrick J. Wong
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • The ADT7468 uses the same frequency table as the ADT7463.

    Signed-off-by: Jean Delvare
    Cc: stable@kernel.org
    Cc: Darrick J. Wong
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • We can mark normal_i2c const. Almost all drivers do that already, so
    fix the 3 remaining ones before they are used as (bad) examples for
    new drivers.

    Signed-off-by: Jean Delvare
    Cc: George Joseph
    Reviewed-by: Guenter Roeck

    Jean Delvare
     
  • The ams driver isn't a hardware monitoring driver, so it shouldn't
    live under driver/hwmon. drivers/macintosh seems much more
    appropriate, as the driver is only useful on PowerBooks and iBooks.

    Signed-off-by: Jean Delvare
    Cc: Guenter Roeck
    Cc: Stelian Pop
    Cc: Michael Hanselmann
    Cc: Benjamin Herrenschmidt
    Cc: Grant Likely

    Jean Delvare
     
  • The PCF8591 can't be detected, don't even try. There are plenty of
    other means to instantiate i2c devices these days.

    Signed-off-by: Jean Delvare
    Reviewed-by: Guenter Roeck
    Cc: Aurelien Jarno

    Jean Delvare
     
  • Register PCF8591 devices as hwmon devices. There's little point in
    implementing the standard sysfs interface if we don't register it in
    a way libsensors will pick it.

    Signed-off-by: Jean Delvare
    Reviewed-by: Guenter Roeck
    Cc: Aurelien Jarno

    Jean Delvare
     
  • Follow the standard attribute naming for the chassis intrusion
    feature. I couldn't test the beeping (my board apparently doesn't do
    that) but the alarm works fine.

    Signed-off-by: Jean Delvare
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • The fan control feature of the w83795 driver is insufficiently
    reviewed and tested for public consumption at this time, so make it
    optional and disabled by default. We will change the default when
    review and testing is deemed sufficient. Ultimately the option will
    go away.

    Signed-off-by: Jean Delvare
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • I've made so many changes to the w83795 driver that it's only fair to
    list myself as a co-author. I'll also maintain the driver for some
    time. There's more work needed on the driver for sure.

    Signed-off-by: Jean Delvare
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • Cleanups suggested by Guenter Roeck, falling into 4 categories:
    * Swapping test orders, because if (var == CONSTANT) is much easier to
    read than if (CONSTANT == var).
    * Simplifying comparisons with 0.
    * Dropping unneeded masks.
    * Dropping unneeded parentheses and curly braces.

    Signed-off-by: Jean Delvare
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • Wrong index caused the wrong register value to be read, resulting in
    random LSB for voltage limits.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • When we don't need the client pointer, calling dev_get_drvdata() is
    more efficient that calling to_i2c_client() and then
    i2c_get_clientdata().

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Wait until we need the pwm config register values, instead of
    pre-reading them. This saves over 1 second on modprobe on my test
    system.

    Obviously this time is added when first accessing pwm config
    attributes, however not everybody will use them, so it seems unfair
    to slow down driver loading (and thus boot) for an optional feature.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Wait until we need the limit register values, instead of pre-reading
    them. This saves 544 ms on modprobe on my test system. Obviously this
    time is added when first running "sensors" or any other monitoring
    application, but I think it is better than slowing down the boot.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Move initial register reads out of probe, to dedicated functions.
    This makes the code clearer, and will be needed if we want to delay
    calling these functions until they are needed, or want to call them
    periodically.

    Signed-off-by: Jean Delvare
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • Pack similar register reads using for loops.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Cascaded conditionals are inefficient. Reorder the fields so that
    PWM register addresses can be computed more efficiently.

    Signed-off-by: Jean Delvare
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • There is no point in reading registers during initialization if we
    will refresh the values in the update function later. This is only
    slowing down the driver loading with no benefit, stop doing it.
    This change saves 480 ms on driver load on my test system.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • All 3 temperature sensor type sysfs functions (show_temp_mode,
    store_temp_mode and show_dts_mode) can be simplified. We don't
    create these files when the correponding input isn't in temperature
    monitoring mode, so there is no point in handling that case.
    Likewise, we don't allow changing inputs from temperature to voltage,
    so the code handling this case is dead and can be removed.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Consistently use ARRAY_SIZE() to control for loops.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Get rid of REST_VLT_BEGIN and REST_VLT_END, they don't make the code
    more readable.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • x % 1 is obviously wrong, as it always evaluates to 0. You want
    x % 2, or x & 1, for parity checking.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • VRLSB_SHIFT is a non-sense, the actual shift depends on the sensor
    type (fans need 4, other sensors need 6). Get rid of it to prevent
    any confusion. Also get rid of the useless masking, the meaningful
    bits are always the MSb so there's nothing to mask out after
    shifting.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Shorten driver load time by avoiding duplicate register access during
    initialization. This saves 112 ms on modprobe on my test system.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Handle beep_enable just like all other beep bits. It doesn't need
    anything special, so let's avoid redundant code. This also saves a
    duplicate register read at initialization time.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • On systems with PECI, report PECI agent Tbase temperature values.
    This is informative only.

    Signed-off-by: Jean Delvare

    Jean Delvare