]> pilppa.org Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
17 years agoMerge branch 'master' of git://git.infradead.org/users/pcmoore/lblnet-2.6_next into...
James Morris [Fri, 10 Oct 2008 22:26:14 +0000 (09:26 +1100)]
Merge branch 'master' of git://git.infradead.org/users/pcmoore/lblnet-2.6_next into next

17 years agoMerge branch 'omap3-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind...
Russell King [Fri, 10 Oct 2008 22:10:10 +0000 (23:10 +0100)]
Merge branch 'omap3-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 into omap-all

17 years agotoshiba_acpi: depends on INPUT
Randy Dunlap [Fri, 19 Sep 2008 21:06:59 +0000 (14:06 -0700)]
toshiba_acpi: depends on INPUT

CONFIG_ACPI_TOSHIBA can =y when CONFIG_INPUT=m, so prevent that
combination and its subsequent build errors:

toshiba_acpi.c:(.text+0x3e877): undefined reference to `input_event'
toshiba_acpi.c:(.text+0x3e98a): undefined reference to `input_unregister_polled_device'
toshiba_acpi.c:(.text+0x3e994): undefined reference to `input_free_polled_device'
toshiba_acpi.c:(.init.text+0x21b4): undefined reference to `input_allocate_polled_device'
toshiba_acpi.c:(.init.text+0x2263): undefined reference to `input_register_polled_device'
make[1]: *** [.tmp_vmlinux1] Error 1

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPI: catch calls of acpi_driver_data on pointer of wrong type
Pavel Machek [Mon, 22 Sep 2008 21:37:34 +0000 (14:37 -0700)]
ACPI: catch calls of acpi_driver_data on pointer of wrong type

Catch attempts to use of acpi_driver_data on pointers of wrong type.

akpm: rewritten to use proper C typechecking and remove the
"function"-used-as-lvalue thing.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPI: toshiba_acpi.c fix sparse signedness mismatch warnings
Harvey Harrison [Mon, 22 Sep 2008 21:37:29 +0000 (14:37 -0700)]
ACPI: toshiba_acpi.c fix sparse signedness mismatch warnings

set_bit expects unsigned int, and we start with a u32 anyway.
drivers/acpi/toshiba_acpi.c:397:14: warning: incorrect type in argument 1 (different signedness)
drivers/acpi/toshiba_acpi.c:397:14:    expected unsigned int [usertype] *word
drivers/acpi/toshiba_acpi.c:397:14:    got int *<noident>
drivers/acpi/toshiba_acpi.c:399:14: warning: incorrect type in argument 1 (different signedness)
drivers/acpi/toshiba_acpi.c:399:14:    expected unsigned int [usertype] *word
drivers/acpi/toshiba_acpi.c:399:14:    got int *<noident>
drivers/acpi/toshiba_acpi.c:401:14: warning: incorrect type in argument 1 (different signedness)
drivers/acpi/toshiba_acpi.c:401:14:    expected unsigned int [usertype] *word
drivers/acpi/toshiba_acpi.c:401:14:    got int *<noident>

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoACPI: acpi_driver_data could only be applied to acpi_device
Alexey Starikovskiy [Wed, 10 Sep 2008 10:33:43 +0000 (14:33 +0400)]
ACPI: acpi_driver_data could only be applied to acpi_device

Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
CC: Hannes Reinecke <hare@suse.de>
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agox86: trim ACPI sleep stack buffer
Matt Mackall [Thu, 9 Oct 2008 16:56:21 +0000 (11:56 -0500)]
x86: trim ACPI sleep stack buffer

x86_64 SMP suspend to RAM uses a 10k temporary stack for saving the
kernel state, but only 4k of it is used. Shrink it to 4k.

Signed-off-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agox86: remove magic number from ACPI sleep stack buffer
Matt Mackall [Thu, 9 Oct 2008 17:41:50 +0000 (12:41 -0500)]
x86: remove magic number from ACPI sleep stack buffer

x86_64 SMP suspend to RAM uses a 10k temporary stack for saving the
kernel state, but only 4k of it is used. Shrink it to 4k.

Signed-off-by: Matt Mackall <mpm@selenic.com>
Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoAs pointed out by Jonathan Corbet, the timer must be deleted before
Rajiv Andrade [Fri, 10 Oct 2008 22:05:20 +0000 (09:05 +1100)]
As pointed out by Jonathan Corbet, the timer must be deleted before
flushing the work queue in order to avoid a job being submitted after the
chip had been released.

Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: "Serge E. Hallyn" <serue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: James Morris <jmorris@namei.org>
17 years agoERROR: code indent should use tabs where possible
Andrew Morton [Fri, 10 Oct 2008 22:04:48 +0000 (09:04 +1100)]
ERROR: code indent should use tabs where possible
#32: FILE: drivers/char/tpm/tpm.c:1148:
+^I ^Ichip->vendor.release(chip->dev);$

total: 1 errors, 0 warnings, 86 lines checked

./patches/tpm-addition-of-pnp_remove.patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Please run checkpatch prior to sending patches

Cc: "Serge E. Hallyn" <serue@us.ibm.com>
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>
Cc: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: James Morris <jmorris@namei.org>
17 years agoThe tpm_dev_release function is only called for platform devices, not pnp
Rajiv Andrade [Fri, 10 Oct 2008 22:04:39 +0000 (09:04 +1100)]
The tpm_dev_release function is only called for platform devices, not pnp
devices, so we implemented the .remove function for pnp ones.  Since it's
code is very similar to the one inside tpm_dev_release, we've created a
helper function tpm_dev_vendor_release, which is called by both.

Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Cc: "Serge E. Hallyn" <serue@us.ibm.com>
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: James Morris <jmorris@namei.org>
17 years agoProtect tpm_chip_list when transversing it.
Rajiv Andrade [Fri, 10 Oct 2008 22:04:23 +0000 (09:04 +1100)]
Protect tpm_chip_list when transversing it.

Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Acked-by: Serge E. Hallyn <serue@us.ibm.com>
Cc: "Paul E. McKenney" <paulmck@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: James Morris <jmorris@namei.org>
17 years agoRenames num_open to is_open, as only one process can open the file at a time.
Rajiv Andrade [Fri, 10 Oct 2008 22:04:02 +0000 (09:04 +1100)]
Renames num_open to is_open, as only one process can open the file at a time.

Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Cc: "Serge E. Hallyn" <serue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: James Morris <jmorris@namei.org>
17 years agoRemove the BKL calls from the TPM driver, which were added in the overall
Rajiv Andrade [Fri, 10 Oct 2008 22:03:39 +0000 (09:03 +1100)]
Remove the BKL calls from the TPM driver, which were added in the overall
misc-char-dev-BKL-pushdown.patch, as they are not needed.

Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
Cc: "Serge E. Hallyn" <serue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: James Morris <jmorris@namei.org>
17 years agoeeepc-laptop: Use standard interfaces
Matthew Garrett [Tue, 19 Aug 2008 11:13:20 +0000 (12:13 +0100)]
eeepc-laptop: Use standard interfaces

eeepc-laptop currently only sends key events via ACPI and has
non-standard rfkill control. Add an input device and use the rfkill
infrastructure.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Len Brown <len.brown@intel.com>
17 years agoMerge branch 'r8169' of git://git.kernel.org/pub/scm/linux/kernel/git/romieu/netdev-2.6
David S. Miller [Fri, 10 Oct 2008 21:43:54 +0000 (14:43 -0700)]
Merge branch 'r8169' of git://git.kernel.org/pub/scm/linux/kernel/git/romieu/netdev-2.6

17 years agoIB/ehca: Don't allow creating UC QP with SRQ
Hoang-Nam Nguyen [Fri, 10 Oct 2008 21:40:39 +0000 (14:40 -0700)]
IB/ehca: Don't allow creating UC QP with SRQ

This patch prevents a UC QP to be created attached to an SRQ, since
current firmware does not support this feature.

Signed-off-by: Michael Faath <micfaath@de.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
17 years agomyri10ge: update driver version number to 1.4.3-1.369
Brice Goglin [Fri, 10 Oct 2008 21:33:37 +0000 (14:33 -0700)]
myri10ge: update driver version number to 1.4.3-1.369

Update myri10ge driver version number to 1.4.3-1.369.

Signed-off-by: Brice Goglin <brice@myri.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agor8169: add shutdown handler
Francois Romieu [Sat, 13 Sep 2008 15:21:40 +0000 (17:21 +0200)]
r8169: add shutdown handler

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: preliminary 8168d support
Francois Romieu [Sun, 20 Jul 2008 14:22:45 +0000 (16:22 +0200)]
r8169: preliminary 8168d support

Taken from Realtek's 8.007.00 r8168 driver.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Fixed-by: Ivan Vecera <ivecera@redhat.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: support additional 8168cp chipset
Francois Romieu [Sun, 20 Jul 2008 16:53:20 +0000 (18:53 +0200)]
r8169: support additional 8168cp chipset

Taken from Realtek's 8.007.00 r8168 driver.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Fixed-by: Ivan Vecera <ivecera@redhat.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: change default behavior for mildly identified 8168c chipsets
Francois Romieu [Sun, 29 Jun 2008 11:10:54 +0000 (13:10 +0200)]
r8169: change default behavior for mildly identified 8168c chipsets

The addition of a new device has so far implied a specialization of
these masks. While they identify 8168c devices, they can be expected
to be further refined as they have been by Realtek so far.

The change should bring the driver closer to the version 8.006.00 of
Realtek's 8168 driver.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: add a new 8168cp flavor
Francois Romieu [Sun, 29 Jun 2008 10:24:30 +0000 (12:24 +0200)]
r8169: add a new 8168cp flavor

Taken from Realtek's 8.006.00 r8168 driver.

I have left some bits related to jumbo frame aside for now.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: add a new 8168c flavor (bis)
Francois Romieu [Sun, 29 Jun 2008 09:54:28 +0000 (11:54 +0200)]
r8169: add a new 8168c flavor (bis)

Taken from Realtek's 8.006.00 r8168 driver.

I have left some bits related to jumbo frame aside for now.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: add a new 8168c flavor
Francois Romieu [Sat, 28 Jun 2008 11:16:02 +0000 (13:16 +0200)]
r8169: add a new 8168c flavor

Taken from Realtek's 8.006.00 r8168 driver.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: sync existing 8168 device hardware start sequences with vendor driver
Francois Romieu [Sat, 28 Jun 2008 10:22:59 +0000 (12:22 +0200)]
r8169: sync existing 8168 device hardware start sequences with vendor driver

This part of the driver should be reasonably in line with Realtek's
8.006.00 driver.

I have left some bits related to jumbo frame and optional features
aside for now.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: 8168b Tx performance tweak
Francois Romieu [Sat, 28 Jun 2008 10:00:55 +0000 (12:00 +0200)]
r8169: 8168b Tx performance tweak

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: make room for more specific 8168 hardware start procedure
Francois Romieu [Sat, 28 Jun 2008 09:58:39 +0000 (11:58 +0200)]
r8169: make room for more specific 8168 hardware start procedure

Broadly speaking the 8168c* share some common code which will
be factored in __rtl_hw_start_8168cp. The 8168b* share some
code too but it will be a bit different.

Any change of behavior should be confined to the currently
unidentified 8168 chipsets. They will not be applied the Tx
performance tweak and will emit a warning instead.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: shuffle some registers handling around (8168 operation only)
Francois Romieu [Sun, 1 Jun 2008 10:31:57 +0000 (12:31 +0200)]
r8169: shuffle some registers handling around (8168 operation only)

I can not argue strongly for (or against) a specific ordering
on a purely technical ground but the patch avoids to swallow
Realtek's changes in one big, hard-to-read gulp.

Let aside the way the RxConfig register is written (see
rtl_set_rx_tx_config_registers / RxConfig / rtl_set_rx_mode),
this change brings the registers write ordering closer with
Realtek's driver one (version 8.006.00) for the 8168 chipsets.

More 8168 specific code which touches the Configx registers will
be added in the section covered by Cfg9346_UnLock / Cfg9346_Lock.

This code should not be the cause of regression for 810x and
8110 users.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: new phy init parameters for the 8168b
Francois Romieu [Fri, 30 May 2008 14:11:48 +0000 (16:11 +0200)]
r8169: new phy init parameters for the 8168b

The new parameters are synced with Realtek's driver
version 8.006.00.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: update phy init parameters
Francois Romieu [Fri, 30 May 2008 14:07:07 +0000 (16:07 +0200)]
r8169: update phy init parameters

The modified parameters are synced with Realtek's driver
version 8.006.00.

The change should only be noticeable with some 8168c.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
17 years agor8169: wake up the PHY of the 8168
Francois Romieu [Wed, 3 Sep 2008 22:17:12 +0000 (00:17 +0200)]
r8169: wake up the PHY of the 8168

This is typically needed when some other OS puts the PHY
to sleep due to the disabling of WOL options in the BIOS
of the system.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Tested-by: Chiaki Ishikawa <chiaki.ishikawa@ubin.jp>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
Cc: RyanKao <ryankao@realtek.com.tw>
17 years agoaf_key: fix SADB_X_SPDDELETE response
Tobias Brunner [Fri, 10 Oct 2008 21:07:03 +0000 (14:07 -0700)]
af_key: fix SADB_X_SPDDELETE response

When deleting an SPD entry using SADB_X_SPDDELETE, c.data.byid is not
initialized to zero in pfkey_spddelete(). Thus, key_notify_policy()
responds with a PF_KEY message of type SADB_X_SPDDELETE2 instead of
SADB_X_SPDDELETE.

Signed-off-by: Tobias Brunner <tobias.brunner@strongswan.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
17 years agoide: Remove ide_spin_wait_hwgroup() and use special requests instead
Elias Oltmanns [Fri, 10 Oct 2008 20:39:40 +0000 (22:39 +0200)]
ide: Remove ide_spin_wait_hwgroup() and use special requests instead

Use a special request for serialisation purposes and get rid of the
awkward ide_spin_wait_hwgroup(). This also involves converting the
ide_devset structure so it can be shared by the /proc and the ioctl code.

Signed-off-by: Elias Oltmanns <eo@nebensachen.de>
[bart: use rq->cmd[] directly]
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: move IDE{FLOPPY,TAPE}_WAIT_CMD defines to <linux/ide.h>
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:39 +0000 (22:39 +0200)]
ide: move IDE{FLOPPY,TAPE}_WAIT_CMD defines to <linux/ide.h>

While at it:

* IDE{FLOPPY,TAPE}_WAIT_CMD -> WAIT_{FLOPPY,TAPE}_CMD

* Use enum for WAIT_* defines.

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add ide_do_test_unit_ready() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:39 +0000 (22:39 +0200)]
ide: add ide_do_test_unit_ready() helper

* Add ide_do_test_unit_ready() helper and convert ide-{floppy,tape}.c
  to use it.

* Remove no longer used idetape_create_test_unit_ready_cmd().

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add ide_do_start_stop() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:39 +0000 (22:39 +0200)]
ide: add ide_do_start_stop() helper

* Add ide_do_start_stop() helper and convert ide-{floppy,tape}.c
  to use it.

* Remove no longer used idefloppy_create_start_stop_cmd()
  and idetape_create_load_unload_cmd().

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add ide_set_media_lock() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:38 +0000 (22:39 +0200)]
ide: add ide_set_media_lock() helper

* Set IDE_AFLAG_NO_DOORLOCK in idetape_get_mode_sense_result(), check it
  in ide_tape_set_media_lock() and cleanup idetape_create_prevent_cmd().

* Set IDE_AFLAG_NO_DOORLOCK in ide_floppy_create_read_capacity_cmd() and
  check it instead of IDE_AFLAG_CLIK_DRIVE in ide_floppy_set_media_lock().

* Add ide_set_media_lock() helper and convert ide-{floppy,tape}.c to use it.

* Remove no longer used ide*_create_prevent_cmd()/ide*_set_media_lock().

* Update comment in <linux/ide.h> accordingly.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-floppy: move floppy ioctls handling to ide-floppy_ioctl.c
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:38 +0000 (22:39 +0200)]
ide-floppy: move floppy ioctls handling to ide-floppy_ioctl.c

While at it:

- idefloppy_create_read_capacity_cmd() -> ide_floppy_create_read_capacity_cmd()
- idefloppy_create_mode_sense_cmd() -> ide_floppy_create_mode_sense_cmd()
- idefloppy_create_request_sense_cmd() -> ide_floppy_create_request_sense_cmd()
- idefloppy_create_format_unit_cmd() -> ide_floppy_create_format_unit_cmd()
- idefloppy_get_sfrp_bit() -> ide_floppy_get_sfrp_bit()

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-floppy: ->{srfp,wp} -> IDE_AFLAG_{SRFP,WP}
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:38 +0000 (22:39 +0200)]
ide-floppy: ->{srfp,wp} -> IDE_AFLAG_{SRFP,WP}

Add IDE_AFLAG_{SRFP,WP} drive->atapi_flags and use them
instead of ->{srfp,wp} struct ide_floppy_obj fields.

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add ide_queue_pc_tail() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:38 +0000 (22:39 +0200)]
ide: add ide_queue_pc_tail() helper

* Add ide_queue_pc_tail() and convert ide-{floppy,tape}.c to use it
  instead of ide*_queue_pc_tail().

* Remove no longer used ide*_queue_pc_tail().

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add ide_queue_pc_head() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:37 +0000 (22:39 +0200)]
ide: add ide_queue_pc_head() helper

* Move REQ_IDETAPE_* enums to <linux/ide.h>.

* Add ide_queue_pc_head() and convert ide-{floppy,tape}.c to use it
  instead of ide*_queue_pc_head().

* Remove no longer used ide*_queue_pc_head().

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add ide_init_pc() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:37 +0000 (22:39 +0200)]
ide: add ide_init_pc() helper

* Add IDE_PC_BUFFER_SIZE define.

* Add ide_init_pc() and convert ide-{floppy,tape}.c to use it
  instead of ide*_init_pc().

* Remove no longer used IDE*_PC_BUFFER_SIZE and ide*_init_pc().

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-tape: add ide_tape_set_media_lock() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:37 +0000 (22:39 +0200)]
ide-tape: add ide_tape_set_media_lock() helper

Add ide_tape_set_media_lock() helper and convert idetape_mtioctop(),
idetape_chrdev_open() and idetape_chrdev_release() to use it.

There should be no functional changes caused by this patch (it is
OK to modify ->door_locked if idetape_create_prevent_cmd() fails).

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-floppy: add ide_floppy_set_media_lock() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:37 +0000 (22:39 +0200)]
ide-floppy: add ide_floppy_set_media_lock() helper

Add ide_floppy_set_media_lock() helper and convert idefloppy_open(),
idefloppy_release() and ide_floppy_lockdoor() to use it.

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add ide_io_buffers() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:36 +0000 (22:39 +0200)]
ide: add ide_io_buffers() helper

* Make ->io_buffers method return number of bytes transferred.

* Use ide_end_request() instead of idefloppy_end_request()
  in ide_floppy_io_buffers() and then move the call out to
  ide_pc_intr().

* Add ide_io_buffers() helper and convert ide-{floppy,scsi}.c
  to use it instead of ide*_io_buffers().

There should be no functional changes caused by this patch.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-scsi: cleanup ide_scsi_io_buffers()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:36 +0000 (22:39 +0200)]
ide-scsi: cleanup ide_scsi_io_buffers()

Preparation for ide_{floppy,scsi}_io_buffers() unification.

Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-floppy: remove MODE_SENSE_* defines
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:36 +0000 (22:39 +0200)]
ide-floppy: remove MODE_SENSE_* defines

Only MODE_SENSE_CURRENT (0x00) is ever used so just remove
these defines and then drop no longer needed 'type' argument
from idefloppy_create_mode_sense_cmd().

Cc: Borislav Petkov <petkovbb@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-{floppy,tape}: remove packet command stack
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:36 +0000 (22:39 +0200)]
ide-{floppy,tape}: remove packet command stack

* Add 'struct ide_atapi_pc queued_pc' to struct ide_{floppy,tape}_obj
  and switch ide*_do_request() to use it (there can be only one active
  request for a given device).

* Add 'struct ide_atapi_pc request_sense_pc' to struct ide_*_obj
  and switch ide*_retry_pc() to use it.

* Remove needless {floppy,tape}->pc assignment from ide*_setup().

* Remove no longer needed ide*_next_pc_storage(), pc_stack[],
  rq_stack_index, IDE*_PC_STACK and DBG_PC_STACK.

There should be no functional changes caused by this patch.

Cc: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-{floppy,tape}: remove request stack
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:35 +0000 (22:39 +0200)]
ide-{floppy,tape}: remove request stack

* Add 'struct request request_sense_rq' to struct ide_{floppy,tape}_obj
  and switch ide*_retry_pc() to use it (there can be only one REQUEST SENSE
  request active for a given device).

* Remove no longer needed ide*_next_rq_storage(), rq_stack[]
  and rq_stack_index.

* DBG_PCRQ_STACK -> DBG_PC_STACK

* Update comments for IDE*_PC_STACK and idetape_queue_pc_{head,tail}().

There should be no functional changes caused by this patch.

Cc: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-generic: handle probing of legacy io-ports v5
Borislav Petkov [Fri, 10 Oct 2008 20:39:35 +0000 (22:39 +0200)]
ide-generic: handle probing of legacy io-ports v5

Avoid probing the io-ports in case an IDE PCI controller is present and it
uses the legacy iobases. If we still want to enforce the probing, we do

ide_generic.probe_mask=0x3f

on the kernel command line. The iobase checking code is
adapted from drivers/ata/pata_legacy.c after converting hex
pci ids into their corresponding macros in <linux/pci_ids.h>.

Also, check only BAR0/2 resources since those are guaranteed
by the workaround in drivers/pci/probe.c:pci_setup_device().

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
[bart: trivial printk() fixups]
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-floppy: use scatterlists for pio transfers
Borislav Petkov [Fri, 10 Oct 2008 20:39:35 +0000 (22:39 +0200)]
ide-floppy: use scatterlists for pio transfers

Use hwif->sg_table for pio transfers instead of fumbling
with block layer internals in the driver. Also, make debug
statements more informative in .._do_request() while at it.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
[bart: fixup pc->b_count in idefloppy_blockpc_cmd()]
[bart: add missing include (noticed by Stephen Rothwell)]
[bart: map hwif->sg_{table,nents} on pc->{sg,sg_cnt} (multi-IRQs-per-sg fix)]
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-tape: remove idetape_init_rq()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:34 +0000 (22:39 +0200)]
ide-tape: remove idetape_init_rq()

idetape_init_rq() is only used in idetape_queue_pc_head()
so inline it there.

Cc: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-floppy: add ide_floppy_format_ioctl() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:34 +0000 (22:39 +0200)]
ide-floppy: add ide_floppy_format_ioctl() helper

* Factor out IDEFLOPPY_IOCTL_FORMAT_* ioctls handling from
  idefloppy_ioctl() to ide_floppy_format_ioctl().

While at it:

* Pass 'drive' instead of 'floppy' to ide_floppy_format_unit().

* idefloppy_get_format_progress() -> ide_floppy_get_format_progress()

There should be no functional changes caused by this patch.

Cc: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-floppy: remove needless parens
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:34 +0000 (22:39 +0200)]
ide-floppy: remove needless parens

Cc: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add ide_check_atapi_device() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:34 +0000 (22:39 +0200)]
ide: add ide_check_atapi_device() helper

* Add ide_check_atapi_device() to ide-atapi.c and convert
  ide-{floppy,tape}.c to use it instead of ide*_identify_device().

While at it:

* Add DRV_NAME defines to ide-{floppy,tape}.c.

Cc: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: move ioctls handling to ide-ioctls.c
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:33 +0000 (22:39 +0200)]
ide: move ioctls handling to ide-ioctls.c

* Move ioctls handling to ide-ioctls.c
  (except HDIO_DRIVE_TASKFILE for now).

* Make ide_{cmd,task}() static.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: cleanup generic_ide_ioctl()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:33 +0000 (22:39 +0200)]
ide: cleanup generic_ide_ioctl()

* Fix intendation for the main 'switch ()'.

* 'switch ()' -> 'if ()' for HDIO_DRIVE_TASKFILE case.

* Move HDIO_SET_NICE case under HDIO_GET_NICE one.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add ide_setting_ioctl() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:33 +0000 (22:39 +0200)]
ide: add ide_setting_ioctl() helper

* Add struct ide_ioctl_devset representing ioctl device setting.

* Add ide_setting_ioctl() helper for matching given ioctl
  and its parameters against table of ioctl device settings.

* Convert ide_setting_ioctl() and idedisk_ioctl() to use
  ide_setting_ioctl().

* Un-export ide_setting_mtx.

While at it:

* {get,set}_lba_addressing() -> {get,set}_addressing()

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove ->bus_state field from ide_hwif_t
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:33 +0000 (22:39 +0200)]
ide: remove ->bus_state field from ide_hwif_t

It is always set to BUSSTATE_ON.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: add proper PCI PM support (v2)
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:32 +0000 (22:39 +0200)]
ide: add proper PCI PM support (v2)

* Keep pointer to ->init_chipset method also in
  struct ide_host and set it in ide_host_alloc_all().

* Add ide_pci_suspend() and ide_pci_resume() helpers
  (default ->suspend and ->resume implementations).

* ->init_chipset can no longer be marked __devinit.

* Add proper PCI PM support to IDE PCI host drivers
  (rz1000.c and tc86c001.c are skipped for now since
  they need to be converted from using ->init_hwif
  to use ->init_chipset instead).

v2:
* Cleanup CONFIG_PM #ifdef-s per akpm's suggestion.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agohpt366: add hpt3xx_disable_fast_irq() helper
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:32 +0000 (22:39 +0200)]
hpt366: add hpt3xx_disable_fast_irq() helper

* Factor out disabling of "fast interrupt" prediction from
  init_hwif_hpt366() to hpt3xx_disable_fast_irq() helper.

* Use hpt3xx_disable_fast_irq() in ->init_chipset instead of
  ->init_hwif method.

  This is a preparation for adding proper PCI PM support.

While at it:

* Cache chip type in chip_type variable in hpt3xx_disable_fast_irq().

There should be no functional changes caused by this patch.

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: lba_capacity_is_ok() -> ata_id_is_lba_capacity_ok()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:31 +0000 (22:39 +0200)]
ide: lba_capacity_is_ok() -> ata_id_is_lba_capacity_ok()

Rename lba_capacity_is_ok() to ata_id_is_lba_capacity_ok()
and move it to <linux/ata.h> (remove needless parens while at it).

Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: ide_id_to_hd_driveid() -> ata_id_to_hd_driveid()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:31 +0000 (22:39 +0200)]
ide: ide_id_to_hd_driveid() -> ata_id_to_hd_driveid()

Rename ide_id_to_hd_driveid() to ata_id_to_hd_driveid()
and move it to <linux/ata.h>.

Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: use ata_id_is_cfa()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:31 +0000 (22:39 +0200)]
ide: use ata_id_is_cfa()

Use ata_id_is_cfa() in do_identify() instead of open-coding
check for CompactFlash devices (the inline helper also takes
care of detecting CFs advertising themselves as ATA disks).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: ide_id_has_flush_cache_ext() -> ata_id_flush_ext_enabled()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:31 +0000 (22:39 +0200)]
ide: ide_id_has_flush_cache_ext() -> ata_id_flush_ext_enabled()

* Add ata_id_flush_ext_enabled() inline helper to <linux/ata.h>.

* ide_id_has_flush_cache_ext() -> ata_id_flush_ext_enabled()

  The latter one also checks if the command is marked as
  supported in word 83 and validity of words 83 & 86.

Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: ide_id_has_flush_cache() -> ata_id_flush_enabled()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:30 +0000 (22:39 +0200)]
ide: ide_id_has_flush_cache() -> ata_id_flush_enabled()

* Add ata_id_flush_enabled() inline helper to <linux/ata.h>.

* ide_id_has_flush_cache() -> ata_id_flush_enabled()

  The latter one also checks if the command is marked as
  supported in word 83 and validity of words 83 & 86.

Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: check only for CACHE FLUSH command support in ide_id_has_flush_cache()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:30 +0000 (22:39 +0200)]
ide: check only for CACHE FLUSH command support in ide_id_has_flush_cache()

All devices supporting CACHE FLUSH EXT command should also support
CACHE FLUSH command so it is sufficient to check only for CACHE FLUSH
in ide_id_has_flush_cache().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: idedisk_supports_lba48() -> ata_id_lba48_enabled()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:30 +0000 (22:39 +0200)]
ide: idedisk_supports_lba48() -> ata_id_lba48_enabled()

* Add ata_id_lba48_enabled() inline helper to <linux/ata.h>.

* idedisk_supports_lba48() -> ata_id_lba48_enabled()

  The latter one also checks validity of words 83 & 86.

Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: ide_dev_is_sata() -> ata_id_is_sata()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:30 +0000 (22:39 +0200)]
ide: ide_dev_is_sata() -> ata_id_is_sata()

* Use optimized ATA version check from Sergei in ata_id_is_sata().

* ide_dev_is_sata() -> ata_id_is_sata()

Cc: Jeff Garzik <jgarzik@pobox.com>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: ide_dev_has_iordy() -> ata_id_has_iordy()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:29 +0000 (22:39 +0200)]
ide: ide_dev_has_iordy() -> ata_id_has_iordy()

* Remove (id[ATA_ID_FIELD_VALID] & 2) check from ide_dev_has_iordy()
  (it is for validity of words 64-70, IORDY is in word 49).

* ide_dev_has_iordy() -> ata_id_has_iordy()

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: factor out HDIO_*_NICE ioctl handling to ide_*_nice_ioctl()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:29 +0000 (22:39 +0200)]
ide: factor out HDIO_*_NICE ioctl handling to ide_*_nice_ioctl()

Factor out HDIO_{GET,SET}_NICE ioctl handling from
generic_ide_ioctl() to ide_{get,set}_nice_ioctl().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove ->supports_dsc_overlap field from ide_driver_t
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:29 +0000 (22:39 +0200)]
ide: remove ->supports_dsc_overlap field from ide_driver_t

* Use drive->media and drive->scsi to check if ->dsc_overlap
  can be set by HDIO_SET_NICE ioctl in generic_ide_ioctl().

* Remove unused ->supports_dsc_overlap field from ide_driver_t.

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove read-only ->atapi_overlap field from ide_drive_t
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:29 +0000 (22:39 +0200)]
ide: remove read-only ->atapi_overlap field from ide_drive_t

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agocmd640: add __set_prefetch_mode()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:28 +0000 (22:39 +0200)]
cmd640: add __set_prefetch_mode()

Factor out the common code from check_prefetch()
and set_prefetch_mode() to __set_prefetch_mode().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove SECTOR_WORDS define
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:28 +0000 (22:39 +0200)]
ide: remove SECTOR_WORDS define

Just use SECTOR_SIZE instead.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: /proc/ide/hd*/settings rework
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:28 +0000 (22:39 +0200)]
ide: /proc/ide/hd*/settings rework

* Add struct ide_devset, S_* flags, *DEVSET() & ide*_devset_*() macros.

* Add 'const struct ide_devset **settings' to ide_driver_t.

* Use 'const struct ide_devset **settings' in ide_drive_t instead of
  'struct ide_settings_s *settings'.  Then convert core code and device
  drivers to use struct ide_devset and co.:

  - device settings are no longer allocated dynamically for each device
    but instead there is an unique struct ide_devset instance per setting

  - device driver keeps the pointer to the table of pointers to its
    settings in ide_driver_t.settings

  - generic settings are kept in ide_generic_setting[]

  - ide_proc_[un]register_driver(), ide_find_setting_by_name(),
    ide_{read,write}_setting() and proc_ide_{read,write}_settings()
    are updated accordingly

  - ide*_add_settings() are removed

* Remove no longer used __ide_add_setting(), ide_add_setting(),
  __ide_remove_setting() and auto_remove_settings().

* Remove no longer used TYPE_*, SETTING_*, ide_procset_t
  and ide_settings_t.

* ->keep_settings, ->using_dma, ->unmask, ->noflush, ->dsc_overlap,
  ->nice1, ->addressing, ->wcache and ->nowerr ide_drive_t fields
  can now be bitfield flags.

While at it:

* Rename ide_find_setting_by_name() to ide_find_setting().

* Rename write_wcache() to set_wcache().

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: preparations for /proc/ide/hd*/settings rework
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:27 +0000 (22:39 +0200)]
ide: preparations for /proc/ide/hd*/settings rework

After rework settings will be no longer created dynamically
for each device so we need to make some fixups first.

* Use set_[ksettings,unmaskirq]() as a set function for
  ["keepsettings","unmaskirq"] setting.

* Allow writes to ["io_32bit","unmaskirq"] settings also when
  drive->no_[io_32bit,unmask] is set (this is checked later inside
  set_[io_32bit,unmaskirq]() anywyay and keeps consistency with
  the corresponding HDIO_SET_[32BIT,UNMASKINTR] ioctls).

* Use max possible multi sectors value (16) as an allowed max for
  "multcount" setting.  set_multcount() set function checks against
  device's max possbile value anyway and it makes the proc setting
  consistent with the corresponding HDIO_SET_MULTCOUNT ioctl.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: call ide_proc_register_driver() later
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:27 +0000 (22:39 +0200)]
ide: call ide_proc_register_driver() later

Call ide_proc_register_driver() in ide*_setup() (just before
ide*_add_settings() call) instead of in ->probe method.

Despite being basically a preparation for /proc/ide/hd*/settings
rework this is a nice cleanup in itself.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: include <linux/hdreg.h> only when needed
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:27 +0000 (22:39 +0200)]
ide: include <linux/hdreg.h> only when needed

* Include <linux/ata.h> directly in <linux/ide.h>
  instead of through <linux/hdreg.h>.

* Include <linux/hdreg.h> only when needed.

Cc: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove CONFIG_IDEDISK_MULTI_MODE
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:26 +0000 (22:39 +0200)]
ide: remove CONFIG_IDEDISK_MULTI_MODE

Use multi PIO by default when available and remove no longer
needed CONFIG_IDEDISK_MULTI_MODE (it should be safe nowadays,
despite to what help entry has been saying).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: check drive->present in ide_get_paired_drive()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:26 +0000 (22:39 +0200)]
ide: check drive->present in ide_get_paired_drive()

* Change ide_get_paired_drive() to return NULL if peer device
  is not present and update all users accordingly.

While at it:

* ide_get_paired_drive() -> ide_get_pair_dev()

* Use ide_get_pair_dev() in cs5530.c, sc1200.c and via82cxxx.c.

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove needless drive->present checks from device drivers
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:24 +0000 (22:39 +0200)]
ide: remove needless drive->present checks from device drivers

Remove needless drive->present checks from ->probe methods
(device model takes care of that).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove unused _IDE_C and _IDE_DISK defines
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:24 +0000 (22:39 +0200)]
ide: remove unused _IDE_C and _IDE_DISK defines

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove IDE_CHIPSET_* macros
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:24 +0000 (22:39 +0200)]
ide: remove IDE_CHIPSET_* macros

They just obfuscate the code.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove no longer needed BUG_ON()-s from init_irq()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:23 +0000 (22:39 +0200)]
ide: remove no longer needed BUG_ON()-s from init_irq()

init_irq() is now called only during initial host registration
so these BUG_ON()-s are no loner needed (+ the last one was done
too late anyway).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: enhance ide_busy_sleep()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:23 +0000 (22:39 +0200)]
ide: enhance ide_busy_sleep()

* Make ide_busy_sleep() take timeout value as a parameter
  and also allow use of AltStatus Register if requested with
  altstatus parameter.  Update existing users accordingly.

* Convert ide_driveid_update() and actual_try_to_identify()
  to use ide_busy_sleep().

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: fix EXABYTENEST handling in probe_for_drive()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:23 +0000 (22:39 +0200)]
ide: fix EXABYTENEST handling in probe_for_drive()

Fix EXABYTENEST handling in probe_for_drive() (so drive->present
is checked for "nested" device) and cleanup enable_nest().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-cd: use the new object_is_in_stack() helper
FUJITA Tomonori [Fri, 10 Oct 2008 20:39:22 +0000 (22:39 +0200)]
ide-cd: use the new object_is_in_stack() helper

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: Borislav Petkov <petkovbb@gmail.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Tejun Heo <htejun@gmail.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: re-code ide_fixstring() loop to be less evil
Linus Torvalds [Fri, 10 Oct 2008 20:39:22 +0000 (22:39 +0200)]
ide: re-code ide_fixstring() loop to be less evil

On Friday 25 July 2008, Linus Torvalds wrote:
>
> On Fri, 25 Jul 2008, Ben Dooks wrote:
> >
> > personally, i would much prefer to see the loop being less evil
> > like:
> >
> >  for (p = s; p < end; p += 2)
> >  be16_to_cpus((u16 *)p);
>
> Well, in this case, the code actually depends on 'p' being back at the
> start of the buffer by the end of it all, so it would need some more
> changes than that.
>
> But yes, I applied David's patch, but I _also_ suspect that we would be
> better off without code that does horrid things like casts and assignments
> inside the function arguments.
>
> So it would be nice to re-code that loop to be more readable. But due to
> the reliance of 'p' being 's' after the loop, the minimal patch would be
> something like the appended.
>
> Bartlomiej - take this or not, I'm not going to commit it - I haven't
> tested it, nor do I even have any machines that would trigger it. So this
> is more a "maybe something like this" than anything else.

From: Linus Torvalds <torvalds@linux-foundation.org>
CC: Ben Dooks <ben-linux@fluff.org>
Cc: David Miller <davem@davemloft.net>
Cc: harvey.harrison@gmail.com
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove no longer needed ide_drive_t fields
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:22 +0000 (22:39 +0200)]
ide: remove no longer needed ide_drive_t fields

Remove ->remap_0_to_1 and ->sect0 (they are always zero now).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: use ATA_* defines instead of *_STAT and *_ERR ones
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:21 +0000 (22:39 +0200)]
ide: use ATA_* defines instead of *_STAT and *_ERR ones

* ERR_STAT   -> ATA_ERR
* INDEX_STAT -> ATA_IDX
* ECC_STAT   -> ATA_CORR
* DRQ_STAT   -> ATA_DRQ
* SEEK_STAT  -> ATA_DSC
* WRERR_STAT -> ATA_DF
* READY_STAT -> ATA_DRDY
* BUSY_STAT  -> ATA_BUSY

* MARK_ERR   -> ATA_AMNF
* TRK0_ERR   -> ATA_TRK0NF
* ABRT_ERR   -> ATA_ABORTED
* MCR_ERR    -> ATA_MCR
* ID_ERR     -> ATA_IDNF
* MC_ERR     -> ATA_MC
* ECC_ERR    -> ATA_UNC
* ICRC_ERR   -> ATA_ICRC

* BBD_ERR    -> ATA_BBK

Also:

* ILI_ERR    -> ATAPI_ILI
* EOM_ERR    -> ATAPI_EOM
* LFS_ERR    -> ATAPI_LFS

* CD         -> ATAPI_COD
* IO         -> ATAPI_IO

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agohd: WIN_* -> ATA_CMD_*
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:21 +0000 (22:39 +0200)]
hd: WIN_* -> ATA_CMD_*

* Use ATA_CMD_* defines instead of WIN_* ones.

* Include <linux/ata.h> directly instead of through <linux/hdreg.h>.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: WIN_* -> ATA_CMD_*
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:21 +0000 (22:39 +0200)]
ide: WIN_* -> ATA_CMD_*

* Use ATA_CMD_* defines instead of WIN_* ones.

While at it:

* EXABYTE_ENABLE_NEXT -> ATA_EXABYTE_ENABLE_NEST

* SETFEATURES_{EN,DIS}_WCACHE -> SETFEATURES_WC_{ON,OFF}

* SETFEATURES_{EN,DIS}_AAM -> SETFEATURES_AAM_{ON,OFF}

* SMART_* -> ATA_SMART_*

* Remove stale comment from ide-proc.c.

Partially based on earlier work by Chris Wedgwood.

Acked-by: Chris Wedgwood <cw@f00f.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agolibata: WIN_* -> ATA_CMD_*
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:20 +0000 (22:39 +0200)]
libata: WIN_* -> ATA_CMD_*

Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-disk: use ata_id_hpa_enabled()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:20 +0000 (22:39 +0200)]
ide-disk: use ata_id_hpa_enabled()

idedisk_supports_hpa() -> ata_id_hpa_enabled().

The latter one also checks validity of words 82 & 85.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide-disk: use ata_id_wcache_enabled()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:20 +0000 (22:39 +0200)]
ide-disk: use ata_id_wcache_enabled()

Replace open-coded check by ata_id_wcache_enabled()
(which also checks validity of word 85).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: use ata_id_current_chs_valid()
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:19 +0000 (22:39 +0200)]
ide: use ata_id_current_chs_valid()

Replace open-coded checks by ata_id_current_chs_valid().

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: remove drive->driveid
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:19 +0000 (22:39 +0200)]
ide: remove drive->driveid

* Factor out HDIO_[OBSOLETE,GET]_IDENTITY ioctls handling
  to ide_get_identity_ioctl().

* Use temporary buffer in ide_get_identity_ioctl() instead
  of accessing drive->id directly.

* Add ide_id_to_hd_driveid() inline to convert raw id into
  struct hd_driveid format (needed on big-endian).

* Use ide_id_to_hd_driveid() in ide_get_identity_ioctl(),
  cleanup ide_fix_driveid() and switch ide to use use raw id.

* Remove no longer needed drive->driveid.

  This leaves us with 3 users of struct hd_driveid in tree:
  - arch/um/drivers/ubd_kern.c
  - drivers/block/xsysace.c
  - drivers/usb/storage/isd200.c

While at it:

* Use ata_id_u{32,64}() and ata_id_has_{dma,lba,iordy}() macros.

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
17 years agoide: make drive->id an union (take 2)
Bartlomiej Zolnierkiewicz [Fri, 10 Oct 2008 20:39:19 +0000 (22:39 +0200)]
ide: make drive->id an union (take 2)

Make drive->id an unnamed union so id can be accessed either by using
'u16 *id' or 'struct hd_driveid *driveid'.  Then convert all existing
drive->id users accordingly (using 'u16 *id' when possible).

This is an intermediate step to make ide 'struct hd_driveid'-free.

While at it:

- Add missing KERN_CONTs in it821x.c.

- Use ATA_ID_WORDS and ATA_ID_*_LEN defines.

- Remove unnecessary checks for drive->id.

- s/drive_table/table/ in ide_in_drive_list().

- Cleanup ide_config_drive_speed() a bit.

- s/drive1/dev1/ & s/drive0/dev0/ in ide_undecoded_slave().

v2:
Fix typo in drivers/ide/ppc/pmac.c. (From Stephen Rothwell)

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>