1. 10 12月, 2009 12 次提交
    • A
      eeepc-laptop: fix value of pwm1_enable to match documentation · 48718688
      Alan Jenkins 提交于
      Documentation/hwmon/sysfs-interface tells us that automatic fan speed
      control should be represented by a value of 2 or above for pwm1_enable.
      Fix eeepc_get_fan_ctrl() to return 2 for automatic fan control.
      
      Setting "1" for manual control is already consistent with the
      documentation, so this remains unchanged.
      
      Let's preserve the ABI for this specific driver, so that writing "0"
      will still invoke automatic control.
      
      (The documentation says setting "0" should leave the fan at full speed
      all the time.  This mode is not directly supported by our hardware. Full
      speed is rather noisy on my 701 and the automatic control has never used
      it.  If you really want this e.g. to prolong the life of an EeePC used
      as a server, you can always use manual mode.  hwmon has always been
      fairly machine-specific, and you're in a tiny minority (or elite :-).
      I'm sure you're smart enough to notice that the fan doesn't turn on to
      full speed when you try this mode, either by ear or checking
      fan_input1.
      
      We could even claim to be honouring the spirit of the documentation.
      "0" really means "safe mode".  EeePCs default to automatic mode, ie that
      is what Asus will actually test.  Since we do not provide any way to
      tamper with the temperature threshold, automatic mode _is_ the safe
      option).
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      48718688
    • A
      eeepc-laptop: set acpi_driver.owner · eacec303
      Alan Jenkins 提交于
      The owner field provides the link between drivers and modules in sysfs,
      but no ACPI driver was setting it.
      
      After setting the owner field, we can see which module provides which
      driver and vice versa by looking at /sys/bus/acpi/driver/*/module and
      /sys/module/*/drivers/acpi:*.
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      eacec303
    • A
      eeepc-laptop: Remove uneccesary acpi_disabled check · 2adb8bd3
      Alan Jenkins 提交于
      acpi_bus_register_driver() already checks acpi_disabled, so acpi bus
      drivers don't need to.
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      2adb8bd3
    • A
      eeepc-laptop: Remove redundant NULL checks · fbe3d894
      Alan Jenkins 提交于
      The acpi device callbacks add, start, remove, suspend and resume can
      never be called with a NULL acpi_device. Each callsite in acpi/scan.c
      has to dereference the device in order to get the ops structure, e.g.
      
          struct acpi_device *acpi_dev = to_acpi_device(dev);
          struct acpi_driver *acpi_drv = acpi_dev->driver;
      
          if (acpi_drv && acpi_drv->ops.suspend)
              return acpi_drv->ops.suspend(acpi_dev, state);
      
      Remove all checks for acpi_dev == NULL within these callbacks.
      
      Also remove the checks for acpi_driver_data(acpi_dev) == NULL. None of
      these checks could fail unless the driver does something strange
      (which none of them do), the acpi core did something terribly wrong,
      or we have a memory corruption issue. If this does happen then it's
      best to dereference the pointer and crash noisily.
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      fbe3d894
    • C
      eeepc-laptop: add touchpad led · 3c0eb510
      Corentin Chary 提交于
      This led can be found on Eeepc 1005 series.
      Signed-off-by: NCorentin Chary <corentincj@iksaif.net>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      3c0eb510
    • A
      asus-laptop: set acpi_driver.owner · edf62452
      Alan Jenkins 提交于
      The owner field provides the link between drivers and modules in sysfs,
      but no ACPI driver was setting it.
      
      After setting the owner field, we can see which module provides which
      driver and vice versa by looking at /sys/bus/acpi/driver/*/module and
      /sys/module/*/drivers/acpi:*.
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      edf62452
    • A
      asus-acpi: set acpi_driver.owner · db7c554a
      Alan Jenkins 提交于
      The owner field provides the link between drivers and modules in sysfs,
      but no ACPI driver was setting it.
      
      After setting the owner field, we can see which module provides which
      driver and vice versa by looking at /sys/bus/acpi/driver/*/module and
      /sys/module/*/drivers/acpi:*.
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      db7c554a
    • A
      asus-acpi: Remove uneccesary acpi_disabled checks · 5a4a9f6f
      Alan Jenkins 提交于
      acpi_bus_register_driver() already checks acpi_disabled, so acpi bus
      drivers don't need to.
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      5a4a9f6f
    • A
      asus-laptop: Remove uneccesary acpi_disabled check · b7fab7a0
      Alan Jenkins 提交于
      acpi_bus_register_driver() already checks acpi_disabled, so acpi bus
      drivers don't need to.
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      b7fab7a0
    • A
      asus-acpi: Remove redundant NULL checks · 2d5db0be
      Alan Jenkins 提交于
      The acpi device callbacks add, start, remove, suspend and resume can
      never be called with a NULL acpi_device. Each callsite in acpi/scan.c
      has to dereference the device in order to get the ops structure, e.g.
      
          struct acpi_device *acpi_dev = to_acpi_device(dev);
          struct acpi_driver *acpi_drv = acpi_dev->driver;
      
          if (acpi_drv && acpi_drv->ops.suspend)
              return acpi_drv->ops.suspend(acpi_dev, state);
      
      Remove all checks for acpi_dev == NULL within these callbacks.
      
      Also remove the checks for acpi_driver_data(acpi_dev) == NULL. None of
      these checks could fail unless the driver does something strange
      (which none of them do), the acpi core did something terribly wrong,
      or we have a memory corruption issue. If this does happen then it's
      best to dereference the pointer and crash noisily.
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      2d5db0be
    • A
      asus-laptop: Remove redundant NULL checks · 1df8d8d4
      Alan Jenkins 提交于
      The acpi device callbacks add, start, remove, suspend and resume can
      never be called with a NULL acpi_device. Each callsite in acpi/scan.c
      has to dereference the device in order to get the ops structure, e.g.
      
          struct acpi_device *acpi_dev = to_acpi_device(dev);
          struct acpi_driver *acpi_drv = acpi_dev->driver;
      
          if (acpi_drv && acpi_drv->ops.suspend)
              return acpi_drv->ops.suspend(acpi_dev, state);
      
      Remove all checks for acpi_dev == NULL within these callbacks.
      
      Also remove the checks for acpi_driver_data(acpi_dev) == NULL. None of
      these checks could fail unless the driver does something strange
      (which none of them do), the acpi core did something terribly wrong,
      or we have a memory corruption issue. If this does happen then it's
      best to dereference the pointer and crash noisily.
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      1df8d8d4
    • A
      eeepc-laptop: disp attribute should be write-only · 6dff29b6
      Alan Jenkins 提交于
      Currently, reading from the disp attribute fails with "No such device",
      which is misleading. According to CMSG table on acpi4asus project site,
      no models have a getter method corresponding to SDSP. Change the file
      permission to disallow reads.
      
      If some joker changes the permission to permit reads, then return -EIO
      to be consistent with sysfs' behaviour when no show() method is
      provided.
      Signed-off-by: NAlan Jenkins <alan-jenkins@tuffmail.co.uk>
      Signed-off-by: NCorentin Chary <corentincj@iksaif.net>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      6dff29b6
  2. 03 12月, 2009 15 次提交
  3. 02 12月, 2009 13 次提交
    • D
      [ARM] pxamci: call mmc_remove_host() before freeing resources · 5d6b1edf
      Daniel Mack 提交于
      mmc_remove_host() will cause the mmc core to switch off the bus power by
      eventually calling pxamci_set_ios(). This function uses the regulator or
      the GPIO which have been freed already.
      
      This causes the following Oops on module unload.
      
      [   49.519649] Unable to handle kernel paging request at virtual address 30303a70
      [   49.526878] pgd = c7084000
      [   49.529563] [30303a70] *pgd=00000000
      [   49.533136] Internal error: Oops: 5 [#1]
      [   49.537025] last sysfs file: /sys/devices/platform/pxa27x-ohci/usb1/1-1/1-1:1.0/host0/target0:0:0/0:0:0:0/scsi_level
      [   49.547471] Modules linked in: pxamci(-) eeti_ts
      [   49.552061] CPU: 0    Not tainted  (2.6.32-rc8 #322)
      [   49.557001] PC is at regulator_is_enabled+0x3c/0xbc
      [   49.561846] LR is at regulator_is_enabled+0x30/0xbc
      [   49.566691] pc : [<c01a2448>]    lr : [<c01a243c>]    psr: 60000013
      [   49.566702] sp : c7083e70  ip : 30303a30  fp : 00000000
      [   49.578093] r10: c705e200  r9 : c7082000  r8 : c705e2e0
      [   49.583280] r7 : c7061340  r6 : c7061340  r5 : c7083e70  r4 : 00000000
      [   49.589759] r3 : c04dc434  r2 : c04dc434  r1 : c03eecea  r0 : 00000047
      [   49.596241] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      [   49.603329] Control: 0000397f  Table: a7084018  DAC: 00000015
      [   49.609031] Process rmmod (pid: 1101, stack limit = 0xc7082278)
      [   49.614908] Stack: (0xc7083e70 to 0xc7084000)
      [   49.619238] 3e60:                                     c7082000 c703c4f8 c705ea00 c04f4074
      [   49.627366] 3e80: 00000000 c705e3a0 ffffffff c0247ddc c70361a0 00000000 c705e3a0 ffffffff
      [   49.635499] 3ea0: c705e200 bf006400 c78c4f00 c705e200 c705e3a0 ffffffff c705e200 ffffffff
      [   49.643633] 3ec0: c04d8ac8 c02476d0 ffffffff c0247c60 c705e200 c0248678 c705e200 c0249064
      [   49.651765] 3ee0: ffffffff bf006204 c04d8ad0 c04d8ad0 c04d8ac8 bf007490 00000880 c00440c4
      [   49.659898] 3f00: 0000b748 c01c5708 bf007490 c01c44c8 c04d8ac8 c04d8afc bf007490 c01c4570
      [   49.668031] 3f20: bf007490 bf00750c c04f4258 c01c37a4 00000000 bf00750c c7083f44 c007b014
      [   49.676162] 3f40: 4000d000 6d617870 08006963 00000001 00000000 c7085000 00000001 00000000
      [   49.684287] 3f60: 4000d000 c7083f8c 00000001 bea01a54 00005401 c7ab1400 c00440c4 00082000
      [   49.692420] 3f80: bf00750c 00000880 c7083f8c 00000000 4000cfa8 00000000 00000880 bea01cc8
      [   49.700552] 3fa0: 00000081 c0043f40 00000000 00000880 bea01cc8 00000880 00000006 00000000
      [   49.708677] 3fc0: 00000000 00000880 bea01cc8 00000081 00000097 0000cca4 0000b748 00000000
      [   49.716802] 3fe0: 4001a4f0 bea01cc0 00018bf4 4001a4fc 20000010 bea01cc8 a063e021 a063e421
      [   49.724958] [<c01a2448>] (regulator_is_enabled+0x3c/0xbc) from [<c0247ddc>] (mmc_regulator_set_ocr+0x14/0xd8)
      [   49.734836] [<c0247ddc>] (mmc_regulator_set_ocr+0x14/0xd8) from [<bf006400>] (pxamci_set_ios+0xd8/0x17c [pxamci])
      [   49.745044] [<bf006400>] (pxamci_set_ios+0xd8/0x17c [pxamci]) from [<c02476d0>] (mmc_power_off+0x50/0x58)
      [   49.754555] [<c02476d0>] (mmc_power_off+0x50/0x58) from [<c0247c60>] (mmc_detach_bus+0x68/0xc4)
      [   49.763207] [<c0247c60>] (mmc_detach_bus+0x68/0xc4) from [<c0248678>] (mmc_stop_host+0xd4/0x1bc)
      [   49.771944] [<c0248678>] (mmc_stop_host+0xd4/0x1bc) from [<c0249064>] (mmc_remove_host+0xc/0x20)
      [   49.780681] [<c0249064>] (mmc_remove_host+0xc/0x20) from [<bf006204>] (pxamci_remove+0xc8/0x174 [pxamci])
      [   49.790211] [<bf006204>] (pxamci_remove+0xc8/0x174 [pxamci]) from [<c01c5708>] (platform_drv_remove+0x1c/0x24)
      [   49.800164] [<c01c5708>] (platform_drv_remove+0x1c/0x24) from [<c01c44c8>] (__device_release_driver+0x7c/0xc4)
      [   49.810110] [<c01c44c8>] (__device_release_driver+0x7c/0xc4) from [<c01c4570>] (driver_detach+0x60/0x8c)
      [   49.819535] [<c01c4570>] (driver_detach+0x60/0x8c) from [<c01c37a4>] (bus_remove_driver+0x90/0xcc)
      [   49.828452] [<c01c37a4>] (bus_remove_driver+0x90/0xcc) from [<c007b014>] (sys_delete_module+0x1d8/0x254)
      [   49.837891] [<c007b014>] (sys_delete_module+0x1d8/0x254) from [<c0043f40>] (ret_fast_syscall+0x0/0x28)
      [   49.847145] Code: eb06c53a e596c030 e1a0500d e59f106c (e59c0040)
      [   49.853566] ---[ end trace b5fa66a00cea142f ]---
      Signed-off-by: NDaniel Mack <daniel@caiaq.de>
      Reported-by: NSven Neumann <s.neumann@raumfeld.com>
      Cc: Pierre Ossman <pierre@ossman.eu>
      Cc: linux-mmc@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: stable@kernel.org
      Signed-off-by: NEric Miao <eric.y.miao@gmail.com>
      5d6b1edf
    • F
      [PATCH] rc32434_wdt: fix compilation failure · 810a90ae
      Florian Fainelli 提交于
      This patch fixes the compilation failure of
      rc32434 due to a bad module parameter description.
      Signed-off-by: NFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      810a90ae
    • H
      [WATCHDOG] rc32434_wdt.c: use resource_size() · be088b13
      H Hartley Sweeten 提交于
      The size value passed to ioremap_nocache() is not correct.
      Use resource_size() to get the correct value.
      Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com>
      Cc: Phil Sutter <n0-1@freewrt.org>
      Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
      be088b13
    • R
      sysfs: fix SYSFS_DEPRECATED_V2 prompt · e9438e31
      Randy Dunlap 提交于
      The SYSFS_DEPRECATED_V2 says "remove" older, deprecated features, but it
      actually enables them, so correct this confusing, backwards text.
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e9438e31
    • J
      rtc-x1205: reset clock to sane state after power failure · cb8799ee
      Johannes Weiner 提交于
      When detecting power failure, the probe function would reset the clock
      time to defined state.
      
      However, the clock's _date_ might still be bogus and a subsequent probe
      fails when sanity-checking these values.
      
      Change the power-failure fixup code to do a full setting of rtc_time,
      including a valid date.
      Signed-off-by: NJohannes Weiner <jw@emlix.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Paul Gortmaker <p_gortmaker@yahoo.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cb8799ee
    • J
      rtc-x1205: fix rtc_time to y2k register value conversion · 48a7f774
      Johannes Weiner 提交于
      The possible CCR_Y2K register values are 19 or 20 and struct rtc_time's
      tm_year is in years since 1900.
      
      The function translating rtc_time to register values assumes tm_year to be
      years since first christmas, though, and we end up storing 0 or 1 in the
      CCR_Y2K register, which the hardware does not refuse to do.
      
      A subsequent probing of the clock fails due to the invalid value range in
      the register, though.
      
      [ And if it didn't, reading the clock would yield a bogus year because
        the function translating registers to tm_year is assuming a register
        value of 19 or 20. ]
      
      This fixes the conversion from years since 1900 in tm_year to the
      corresponding CCR_Y2K value of 19 or 20.
      Signed-off-by: NJohannes Weiner <jw@emlix.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Paul Gortmaker <p_gortmaker@yahoo.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      48a7f774
    • P
      aoe: prevent cache aliases · 0a1f127a
      Peter Horton 提交于
      Prevent the AoE block driver from creating cache aliases of page cache
      pages on machines with virtually indexed caches.
      
      Building kernels on an AT91SAM9G20 board without this patch fails with
      segmentation faults after a couple of passes.
      Signed-off-by: NPeter Horton <zero@colonel-panic.org>
      Cc: "Ed L. Cashin" <ecashin@coraid.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0a1f127a
    • A
      gpio: Langwell GPIO driver bugfixes · ca029701
      Alek Du 提交于
      - Remove wrong and unnecessary unmask operation
      
      - Remove extra GEDR reading
      
      This fixes the loss of interrupts which occurs when two or more pins are
      triggered in close succession.
      Signed-off-by: NAlek Du <alek.du@intel.com>
      Cc: David Brownell <david-b@pacbell.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ca029701
    • S
      kbuild: stepping down as maintainer · 97434843
      Sam Ravnborg 提交于
      It has been fun but the last year or more it has been a duty and a burden.
      So I leave it open for others to take over.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Anibal Monsalve Salazar <anibal@debian.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Michal Marek <mmarek@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      97434843
    • S
      davinci: fb: fix frame buffer driver issues · 3510b8f7
      Sudhakar Rajashekhara 提交于
      Following issues have been addressed on DA8XX/OMAP-L1XX:
      
      a. Screen misalignment during booting when frame buffer console is
         enabled.
      
      b. Driver was configured always in PSEUDOCOLOR mode.  This patch
         dynamically configures the driver either in PSEUDOCOLOUR or TRUECOLOR
         mode depending on bpp.
      
      c. The RED and BLUE offsets were interchanged resulting in wrong
         bootup logo colour.
      
      This patch has been tested on DA830/OMAP-L137 and DA850/OMAP-L138 EVMs.
      Signed-off-by: NSudhakar Rajashekhara <sudhakar.raj@ti.com>
      Cc: Steve Chen <schen@mvista.com>
      Cc: Pavel Kiryukhin <pkiryukhin@ru.mvista.com>
      Cc: Krzysztof Helt <krzysztof.h1@wp.pl>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3510b8f7
    • D
      drivers/rtc/rtc-pcf50633.c: fix use after free in pcf50633_rtc_probe() · fa00e106
      Dan Carpenter 提交于
      "rtc" is freed and then dereferenced on the next line.  This patch fixes
      that.
      Signed-off-by: NDan Carpenter <error27@gmail.com>
      Acked-by: NAlessandro Zummo <a.zummo@towertech.it>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: Paul Gortmaker <p_gortmaker@yahoo.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fa00e106
    • A
      drivers/media/dvb/dvb-core/dvb_frontend.c: needs semaphore.h · 4c4cb1b1
      Andrew Morton 提交于
      Fixes:
      
        v4l/dvb_frontend.c: In function 'dvb_frontend_stop':
        v4l/dvb_frontend.c:707: error: implicit declaration of function 'init_MUTEX'
      
      Addresses http://bugzilla.kernel.org/show_bug.cgi?id=14609
      
      Reported-by: <tstrelar@gmail.com>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4c4cb1b1
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6 · 21278163
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6:
        Staging: update TODO files
        Staging: hv: Fix some missing author names
        Staging: hv: Fix vmbus event handler bug
        Staging: hv: Fix argument order in incorrect memset invocations in hyperv driver.
      21278163