]> err.no Git - linux-2.6/log
linux-2.6
16 years agovirtio: PCI device
Anthony Liguori [Tue, 13 Nov 2007 03:30:26 +0000 (21:30 -0600)]
virtio: PCI device

This is a PCI device that implements a transport for virtio.  It allows virtio
devices to be used by QEMU based VMMs like KVM or Xen.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio_blk: implement naming for vda-vdz,vdaa-vdzz,vdaaa-vdzzz
Christian Borntraeger [Fri, 1 Feb 2008 08:05:00 +0000 (09:05 +0100)]
virtio_blk: implement naming for vda-vdz,vdaa-vdzz,vdaaa-vdzzz

Am Freitag, 1. Februar 2008 schrieb Christian Borntraeger:
> Right. I will fix that with an additional patch.

This patch goes on top of the minor number patch. Please let me know if
you want a merged patch:

Currently virtio_blk creates the disk name combinging "vd"  with 'a'++.
This will give strange names after vdz. I have implemented names up to
vdzzz - inspired by the sd.c code. That should be sufficient for now.

There is one driver in the kernel (driver/s390/block/dasd_genhd.c) that
implements names from dasda-dasdzzzz allowing even more disks. Maybe
a janitor can come up with a common implementation usable for all kind
of block device drivers.

I have tested this patch with 100 disks - seems to work.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio_blk: Dont waste major numbers
Christian Borntraeger [Thu, 31 Jan 2008 14:53:53 +0000 (15:53 +0100)]
virtio_blk: Dont waste major numbers

Rusty,

currently virtio_blk uses one major number per device. While this works
quite well on most systems it is wasteful and will exhaust major numbers
on larger installations.

This patch allocates a major number on init and will use 16 minor numbers
for each disk. That will allow ~64k virtio_blk disks.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio_blk: provide getgeo
Christian Borntraeger [Wed, 23 Jan 2008 16:56:50 +0000 (17:56 +0100)]
virtio_blk: provide getgeo

Rusty,

I currently try to make my guest boot from an virtio root device
without having an external kernel. Some of the tools that I tried
expect HDIO_GETGEO to work. The most interesting value is likely
the geo.start value to get the offset of a partition. This value
is filled by block/ioctl.c if fops->getgeo is set. This patch also
fills in some standard values for heads, sectors and cylinders.

Makes sense?

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio_net: parametrize the napi_weight for virtio receive queue.
Dor Laor [Sun, 16 Dec 2007 13:19:43 +0000 (15:19 +0200)]
virtio_net: parametrize the napi_weight for virtio receive queue.

It is done in order to improve performance.

Signed-off-by: Dor Laor <dor.laor@qumranet.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: free transmit skbs when notified, not on next xmit.
Rusty Russell [Tue, 5 Feb 2008 04:50:07 +0000 (23:50 -0500)]
virtio: free transmit skbs when notified, not on next xmit.

This fixes a potential dangling xmit problem.

We also suppress refill interrupts until we need them.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: flush buffers on open
Rusty Russell [Tue, 5 Feb 2008 04:50:07 +0000 (23:50 -0500)]
virtio: flush buffers on open

Fix bug found by Christian Borntraeger: if the other side fills all
the registered network buffers before we enable NAPI, we will never
get an interrupt.  The simplest fix is to process the input queue once
on open.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtnet: remove double ether_setup
Christian Borntraeger [Thu, 6 Dec 2007 14:21:46 +0000 (15:21 +0100)]
virtnet: remove double ether_setup

Hello Rusty,

virtnet_probe already calls alloc_etherdev, which calls ether_setup.
There is no need to do that again.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: Allow virtio to be modular and used by modules
Rusty Russell [Tue, 5 Feb 2008 04:50:05 +0000 (23:50 -0500)]
virtio: Allow virtio to be modular and used by modules

This is needed for the virtio PCI device to be compiled as a module.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: Use the sg_phys convenience function.
Rusty Russell [Tue, 5 Feb 2008 04:50:05 +0000 (23:50 -0500)]
virtio: Use the sg_phys convenience function.

Simple cleanup.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: Put the virtio under the virtualization menu
Anthony Liguori [Thu, 8 Nov 2007 02:46:31 +0000 (20:46 -0600)]
virtio: Put the virtio under the virtualization menu

This patch moves virtio under the virtualization menu and changes virtio
devices to not claim to only be for lguest.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: handle interrupts after callbacks turned off
Rusty Russell [Tue, 5 Feb 2008 04:50:04 +0000 (23:50 -0500)]
virtio: handle interrupts after callbacks turned off

Anthony Liguori found double interrupt suppression in the virtio_net
driver, triggered by two skb_recv_done's in a row.  This is because
virtio_ring's interrupt suppression is a best-effort optimization: it
contains no synchronization so the host can miss it and still send
interrupts.

But it's certainly nicer for virtio users if calling disable_cb
actually disables callbacks, so we check for the race in the interrupt
routine.

Note: SMP guests might require syncronization here, but since
disable_cb is actually called from interrupt context, there has to be
some form of synchronization before the next same interrupt handler is
called (Linux guarantees that the same device's irq handler will never
run simultanously on multiple CPUs).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: reset function
Rusty Russell [Tue, 5 Feb 2008 04:50:03 +0000 (23:50 -0500)]
virtio: reset function

A reset function solves three problems:

1) It allows us to renegotiate features, eg. if we want to upgrade a
   guest driver without rebooting the guest.

2) It gives us a clean way of shutting down virtqueues: after a reset,
   we know that the buffers won't be used by the host, and

3) It helps the guest recover from messed-up drivers.

So we remove the ->shutdown hook, and the only way we now remove
feature bits is via reset.

We leave it to the driver to do the reset before it deletes queues:
the balloon driver, for example, needs to chat to the host in its
remove function.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: populate network rings in the probe routine, not open
Rusty Russell [Tue, 5 Feb 2008 04:50:02 +0000 (23:50 -0500)]
virtio: populate network rings in the probe routine, not open

Since we want to reset the device to remove them, this is simpler
(device is reset for us on driver remove).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: Tweak virtio_net defines
Rusty Russell [Tue, 5 Feb 2008 04:50:02 +0000 (23:50 -0500)]
virtio: Tweak virtio_net defines

1) Turn GSO on virtio net into an all-or-nothing (keep checksumming
   separate).  Having multiple bits is a pain: if you can't support something
   you should handle it in software, which is still a performance win.

2) Make VIRTIO_NET_HDR_GSO_ECN a flag in the header, so it can apply to
   IPv6 or v4.

3) Rename VIRTIO_NET_F_NO_CSUM to VIRTIO_NET_F_CSUM (ie. means we do
   checksumming).

4) Add csum and gso params to virtio_net to allow more testing.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: Net header needs hdr_len
Rusty Russell [Tue, 5 Feb 2008 04:50:01 +0000 (23:50 -0500)]
virtio: Net header needs hdr_len

It's far easier to deal with packets if we don't have to parse the
packet to figure out the header length to know how much to pull into
the skb data.  Add the field to the virtio_net_hdr struct (and fix the
spaces that somehow crept in there).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: remove unused id field from struct virtio_blk_outhdr
Rusty Russell [Tue, 5 Feb 2008 04:50:00 +0000 (23:50 -0500)]
virtio: remove unused id field from struct virtio_blk_outhdr

This field has been unused since an older version of virtio.  Remove
it now before we freeze the ABI.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au.
16 years agovirtio: clarify NO_NOTIFY flag usage
Rusty Russell [Tue, 5 Feb 2008 04:49:59 +0000 (23:49 -0500)]
virtio: clarify NO_NOTIFY flag usage

The other side (host) can set the NO_NOTIFY flag as an optimization,
to say "no need to kick me when you add things".  Make it clear that
this is advisory only; especially that we should always notify when
the ring is full.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: Fix vring_init/vring_size to take unsigned long
Anthony Liguori [Fri, 21 Dec 2007 00:17:47 +0000 (02:17 +0200)]
virtio: Fix vring_init/vring_size to take unsigned long

Using unsigned int resulted in silent truncation of the upper 32-bit
on x86_64 resulting in an OOPS since the ring was being initialized
wrong.

Please reconsider my previous patch to just use PAGE_ALIGN().  Open
coding this sort of stuff, no matter how simple it seems, is just
asking for this sort of trouble.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: configuration change callback
Rusty Russell [Tue, 5 Feb 2008 04:49:58 +0000 (23:49 -0500)]
virtio: configuration change callback

Various drivers want to know when their configuration information
changes: the balloon driver is the immediate user, but the network
driver may one day have a "carrier" status as well.

This introduces that callback (lguest doesn't use it yet).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: explicit enable_cb/disable_cb rather than callback return.
Rusty Russell [Tue, 5 Feb 2008 04:49:57 +0000 (23:49 -0500)]
virtio: explicit enable_cb/disable_cb rather than callback return.

It seems that virtio_net wants to disable callbacks (interrupts) before
calling netif_rx_schedule(), so we can't use the return value to do so.

Rename "restart" to "cb_enable" and introduce "cb_disable" hook: callback
now returns void, rather than a boolean.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: simplify config mechanism.
Rusty Russell [Tue, 5 Feb 2008 04:49:56 +0000 (23:49 -0500)]
virtio: simplify config mechanism.

Previously we used a type/len pair within the config space, but this
seems overkill.  We now simply define a structure which represents the
layout in the config space: the config space can now only be extended
at the end.

The main driver-visible changes:
1) We indicate what fields are present with an explicit feature bit.
2) Virtqueues are explicitly numbered, and not in the config space.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
16 years agovirtio: Implement skb_partial_csum_set, for setting partial csums on untrusted packets.
Rusty Russell [Tue, 5 Feb 2008 04:49:54 +0000 (23:49 -0500)]
virtio: Implement skb_partial_csum_set, for setting partial csums on untrusted packets.

Use it in virtio_net (replacing buggy version there), it's also going
to be used by TAP for partial csum support.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: David S. Miller <davem@davemloft.net>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
Linus Torvalds [Sat, 2 Feb 2008 20:58:57 +0000 (07:58 +1100)]
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (95 commits)
  ide-tape: remove idetape_config_t typedef
  ide-tape: remove mtio.h related comments
  ide-tape: make function name more accurate
  ide-tape: remove unused sense packet commands.
  ide-tape: use generic byteorder macros
  ide-tape: remove EXPERIMENTAL driver status
  ide-tape: use generic scsi commands
  ide-tape: remove struct idetape_block_size_page_t
  ide-tape: remove structs os_partition_t, os_dat_entry_t, os_dat_t
  ide-tape: remove struct idetape_parameter_block_descriptor_t
  ide-tape: remove struct idetape_medium_partition_page_t
  ide-tape: remove struct idetape_data_compression_page_t
  ide-tape: remove struct idetape_inquiry_result_t
  ide-tape: remove struct idetape_capabilities_page_t
  ide-tape: remove IDETAPE_DEBUG_BUGS
  ide-tape: remove IDETAPE_DEBUG_INFO
  ide-tape: dump gcw fields on error in idetape_identify_device()
  ide-tape: remove struct idetape_mode_parameter_header_t
  ide-tape: remove struct idetape_request_sense_result_t
  ide-tape: remove dead code
  ...

16 years agofix writev regression: pan hanging unkillable and un-straceable
Nick Piggin [Sat, 2 Feb 2008 14:01:17 +0000 (15:01 +0100)]
fix writev regression: pan hanging unkillable and un-straceable

Frederik Himpe reported an unkillable and un-straceable pan process.

Zero length iovecs can go into an infinite loop in writev, because the
iovec iterator does not always advance over them.

The sequence required to trigger this is not trivial. I think it
requires that a zero-length iovec be followed by a non-zero-length iovec
which causes a pagefault in the atomic usercopy. This causes the writev
code to drop back into single-segment copy mode, which then tries to
copy the 0 bytes of the zero-length iovec; a zero length copy looks like
a failure though, so it loops.

Put a test into iov_iter_advance to catch zero-length iovecs. We could
just put the test in the fallback path, but I feel it is more robust to
skip over zero-length iovecs throughout the code (iovec iterator may be
used in filesystems too, so it should be robust).

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394...
Linus Torvalds [Sat, 2 Feb 2008 20:51:38 +0000 (07:51 +1100)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
  ieee1394: sbp2: fix bogus s/g access change

16 years agoide-tape: remove idetape_config_t typedef
Borislav Petkov [Sat, 2 Feb 2008 18:56:51 +0000 (19:56 +0100)]
ide-tape: remove idetape_config_t typedef

Since this is used only in idetape_blkdev_ioctl(), remove the typedef and make
the struct function-local.

Bart:
- s/sizeof(struct idetape_config)/sizeof(config)/

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove mtio.h related comments
Borislav Petkov [Sat, 2 Feb 2008 18:56:51 +0000 (19:56 +0100)]
ide-tape: remove mtio.h related comments

Those are already in mtio.h.

Bart:
- undo 'unsigned int/unsigned long' -> 'uint/ulong' conversion

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: make function name more accurate
Borislav Petkov [Sat, 2 Feb 2008 18:56:51 +0000 (19:56 +0100)]
ide-tape: make function name more accurate

idetape_active_next_stage() was rather ambiguous wrt its purpose. Make that
more explicit and remove superfluous comment.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove unused sense packet commands.
Borislav Petkov [Sat, 2 Feb 2008 18:56:51 +0000 (19:56 +0100)]
ide-tape: remove unused sense packet commands.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: use generic byteorder macros
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: use generic byteorder macros

This is not a network driver.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove EXPERIMENTAL driver status
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: remove EXPERIMENTAL driver status

ide-tape has depended on EXPERIMENTAL for ages. Change that since the driver is
being only maintained now.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: use generic scsi commands
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: use generic scsi commands

Also, remove those which weren't used.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_block_size_page_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_block_size_page_t

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove structs os_partition_t, os_dat_entry_t, os_dat_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: remove structs os_partition_t, os_dat_entry_t, os_dat_t

They seem just to sit there completely unused.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_parameter_block_descriptor_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:50 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_parameter_block_descriptor_t

Also, shorten function name idetape_get_blocksize_from_block_descriptor() and
move its definition up thereby getting rid of its forward declaration.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_medium_partition_page_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_medium_partition_page_t

There should be no functional changes resulting from this patch.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_data_compression_page_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_data_compression_page_t

There should be no functional changes resulting from this patch.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_inquiry_result_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_inquiry_result_t

There should be no functional changes resulting from this patch.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_capabilities_page_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_capabilities_page_t

All those 2-byte values denoting the different capabilities are being written to
the local copy of the caps buffer without being converted to big endian for
simplicity of usage and shorter code later.  Also, we add some comments stating
which are the fields of the caps page in question in order to alleviate the
cryptic pointer casting exercises as in e.g. idetape_get_mode_sense_results().

There should be no functional changes resulting from this patch.

Bart:
- remove two needless "!!"

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove IDETAPE_DEBUG_BUGS
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove IDETAPE_DEBUG_BUGS

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove IDETAPE_DEBUG_INFO
Borislav Petkov [Sat, 2 Feb 2008 18:56:49 +0000 (19:56 +0100)]
ide-tape: remove IDETAPE_DEBUG_INFO

The device capabilities are probed for during device initialization so this
info is available through proc/ioctl() und it is redundant here.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: dump gcw fields on error in idetape_identify_device()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:48 +0000 (19:56 +0100)]
ide-tape: dump gcw fields on error in idetape_identify_device()

Cc: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_mode_parameter_header_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:48 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_mode_parameter_header_t

Bart:
- remove 'capabilities->speed' chunk
- re-add brackets to block_descrp assignment

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove struct idetape_request_sense_result_t
Borislav Petkov [Sat, 2 Feb 2008 18:56:48 +0000 (19:56 +0100)]
ide-tape: remove struct idetape_request_sense_result_t

Bart:
- remove unnecessary comment change
- remove two needless "!!"

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: remove dead code
Borislav Petkov [Sat, 2 Feb 2008 18:56:48 +0000 (19:56 +0100)]
ide-tape: remove dead code

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: move historical changelog to Documentation/ide/ChangeLog.ide-tape.1995...
Borislav Petkov [Sat, 2 Feb 2008 18:56:48 +0000 (19:56 +0100)]
ide-tape: move historical changelog to Documentation/ide/ChangeLog.ide-tape.1995-2002

Also, cleanup whitespace and update comments.

Bart:
- remove reference to drivers/block/ide.c
- move driver documentation to Documentation/ide/ide-tape.txt

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cs: use ide_std_init_ports()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:47 +0000 (19:56 +0100)]
ide-cs: use ide_std_init_ports()

No reason to use ide_init_hwif_ports() in ide-cs (as a nice side-effect
this makes ide-cs work on archs that don't define IDE_ARCH_OBSOLETE_INIT).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move check_dma_crc() to ide-dma.c
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:47 +0000 (19:56 +0100)]
ide: move check_dma_crc() to ide-dma.c

* Move check_dma_crc() to ide-dma.c and add inline version for
  CONFIG_BLK_DEV_IDEDMA=n case.

* Rename check_dma_crc() to ide_check_dma_crc().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove ide_auto_reduce_xfer()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:47 +0000 (19:56 +0100)]
ide: remove ide_auto_reduce_xfer()

While at it:

* Remove needless '!drive->crc_count' check.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move drive->crc_count check out from check_dma_crc()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:47 +0000 (19:56 +0100)]
ide: move drive->crc_count check out from check_dma_crc()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove ide_ata66_check()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:46 +0000 (19:56 +0100)]
ide: remove ide_ata66_check()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove set_transfer()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:46 +0000 (19:56 +0100)]
ide: remove set_transfer()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: unexport SELECT_DRIVE()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:46 +0000 (19:56 +0100)]
ide: unexport SELECT_DRIVE()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-scsi: remove needless SELECT_DRIVE() call
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:46 +0000 (19:56 +0100)]
ide-scsi: remove needless SELECT_DRIVE() call

SELECT_DRIVE() is called by IDE core code in start_request() before device
driver's ->do_request method.  In ide-scsi case ->do_request is implemented
by idescsi_do_request() which is also the only user of idescsi_issue_pc().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: use __ide_set_handler() in ide_execute_command()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:46 +0000 (19:56 +0100)]
ide: use __ide_set_handler() in ide_execute_command()

* Use __ide_set_handler() in ide_execute_command().

While at it:

* Fix whitespace damage in ide_execute_command().

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove SATA_*_REG macros
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:45 +0000 (19:56 +0100)]
ide: remove SATA_*_REG macros

* siimage.c: use hwif->sata_scr[SATA_{ERROR,STATUS}_OFFSET] instead of
  SATA_{ERROR,STATUS}_REG macros.

* Remove no longer needed SATA_*_REG macros.

While at it:

* Remove needless SATA Status register read from sil_sata_reset_poll().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove ->nice0 and ->nice2 fields from ide_drive_t
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:45 +0000 (19:56 +0100)]
ide: remove ->nice0 and ->nice2 fields from ide_drive_t

* ->nice0 and ->nice2 ide_drive_t fields are always zero so remove them.

* IDE_NICE_0 and IDE_NICE_2 defines from <linux/hdreg.h> are no longer
  used by any kernel code so cover them with #ifndef/#endif __KERNEL__.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: convert ->straight8 field in ide_hwif_t to bit flag
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:45 +0000 (19:56 +0100)]
ide: convert ->straight8 field in ide_hwif_t to bit flag

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove unused ->auto_poll field from ide_hwif_t
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:45 +0000 (19:56 +0100)]
ide: remove unused ->auto_poll field from ide_hwif_t

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-probe: remove needless Status register reads
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:45 +0000 (19:56 +0100)]
ide-probe: remove needless Status register reads

* Cache value read from the Status register in 'stat' variable in do_probe()
  and enable_nest(), then remove remove needless Status register reads.

While at it:

* Add proper KERN_* levels to printk() calls.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cris: use ide_execute_command()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:44 +0000 (19:56 +0100)]
ide-cris: use ide_execute_command()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agotrm290: use ide_execute_command()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:44 +0000 (19:56 +0100)]
trm290: use ide_execute_command()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-scsi: use ide_execute_command()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:44 +0000 (19:56 +0100)]
ide-scsi: use ide_execute_command()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: use ide_execute_command()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:44 +0000 (19:56 +0100)]
ide-tape: use ide_execute_command()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move create_proc_ide_drives() call to ide_device_add_all()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:43 +0000 (19:56 +0100)]
ide: move create_proc_ide_drives() call to ide_device_add_all()

* Un-static create_proc_ide_drives() and call it from ide_device_add_all().

While at it:
* Rename create_proc_ide_drives() to ide_proc_port_register_devices().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move hwif->present check out from ide_proc_register_port()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:43 +0000 (19:56 +0100)]
ide: move hwif->present check out from ide_proc_register_port()

Move hwif->present check out from ide_proc_register_port() to
ide_device_add_all().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: factor out devices setup from ide_acpi_init()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:43 +0000 (19:56 +0100)]
ide: factor out devices setup from ide_acpi_init()

* Factor out devices setup from ide_acpi_init() to
  ide_acpi_port_init_devices().

* Call ide_acpi_port_init_devices() in ide_device_add_all().

While at it:
* Remove no longer needed 'drive' field from struct ide_acpi_drive_link.

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-acpi: remove dead code from do_drive_get_GTF()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:43 +0000 (19:56 +0100)]
ide-acpi: remove dead code from do_drive_get_GTF()

These pointers are always setup in ide_acpi_init().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-acpi: remove needless exports
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:42 +0000 (19:56 +0100)]
ide-acpi: remove needless exports

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move ide_acpi_init() call to ide_device_add_all()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:41 +0000 (19:56 +0100)]
ide: move ide_acpi_init() call to ide_device_add_all()

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: factor out devices setup from init_irq()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:41 +0000 (19:56 +0100)]
ide: factor out devices setup from init_irq()

* Factor out devices setup from init_irq() to ide_port_setup_devices().

While at it:
* Do devices setup after printing port information.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: factor out adding drive to hwgroup from init_irq()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:41 +0000 (19:56 +0100)]
ide: factor out adding drive to hwgroup from init_irq()

Factor out adding drive to hwgroup from init_irq() to
ide_add_drive_to_hwgroup().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move hwif->rqsize init from ide_init_queue() to init_irq()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:41 +0000 (19:56 +0100)]
ide: move hwif->rqsize init from ide_init_queue() to init_irq()

Move hwif->rqsize init from ide_init_queue() to init_irq().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: merge init_gendisk() into hwif_register_devices()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:41 +0000 (19:56 +0100)]
ide: merge init_gendisk() into hwif_register_devices()

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: call init_gendisk() after ide_acpi_init()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:40 +0000 (19:56 +0100)]
ide: call init_gendisk() after ide_acpi_init()

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move blk_register_region() call out from init_gendisk()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:40 +0000 (19:56 +0100)]
ide: move blk_register_region() call out from init_gendisk()

Move blk_register_region() call out from init_gendisk() to hwif_init().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: skip not present devices in init_gendisk()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:40 +0000 (19:56 +0100)]
ide: skip not present devices in init_gendisk()

No need to initialize drive->gendev and waste memory on IDE settings
for not present devices.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove incorrect init_gendisk() comment
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:40 +0000 (19:56 +0100)]
ide: remove incorrect init_gendisk() comment

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add ->port_init_devs method to ide_hwif_t
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:40 +0000 (19:56 +0100)]
ide: add ->port_init_devs method to ide_hwif_t

* Add ->port_init_devs method to ide_hwif_t for a host specific
  initialization of devices on a port.  Call the new method from
  ide_port_init_devices().

* Convert ht6560b, qd65xx and opti621 host drivers to use the new
  ->port_init_devs method.

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add IDE_HFLAG_NO_{IO32_BIT,UNMASK_IRQS} host flags
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:40 +0000 (19:56 +0100)]
ide: add IDE_HFLAG_NO_{IO32_BIT,UNMASK_IRQS} host flags

* Use the same bit for IDE_HFLAG_CS5520 and IDE_HFLAG_VDMA host flags
  (both are used only by cs5520 host driver currently).

* Add IDE_HFLAG_NO_IO32_BIT host flag and use it instead of ->no_io_32bit
  ide_hwif_t field.

* Add IDE_HFLAG_NO_UNMASK_IRQS host flag, then convert dtc2278 and rz1000
  host drivers to use it.

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: factor out code initializing devices from ide_init_port()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:39 +0000 (19:56 +0100)]
ide: factor out code initializing devices from ide_init_port()

* Factor out code initializing devices from ide_init_port() to
  ide_port_init_devices().

* Call the new function from ide_device_add_all().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix ide_unregister() usage in host drivers
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:39 +0000 (19:56 +0100)]
ide: fix ide_unregister() usage in host drivers

bast-ide.c/ide-cs.c/delkin_cb.c:

* Don't set 'restore' flag for ide_unregister() when initializing new
  interface.

rapide.c/ide-pnp.c/ide-cs.c/ide_platform.c/au1xxx-ide.c/delkin_cb.c/scc_pata.c:

* Don't set 'init_default' and 'restore' flags for ide_unregister() when
  removing interface.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add ide_deprecated_find_port() helper
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:39 +0000 (19:56 +0100)]
ide: add ide_deprecated_find_port() helper

* Factor out code for finding ide_hwifs[] slot from ide_register_hw()
  to ide_deprecated_find_port().

* Convert bast-ide, ide-cs and delkin_cb host drivers to use ide_device_add()
  instead of ide_register_hw() (while at it drop doing "ide_unregister()" loop
  which tries to unregister _all_ IDE interfaces if useable ide_hwifs[] slot
  cannot be find).

This patch leaves us with only two ide_register_hw() users:
- drivers/macintosh/mediabay.c
- drivers/ide/ide.c

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add 'init_default' and 'restore' arguments to ide_unregister()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:39 +0000 (19:56 +0100)]
ide: add 'init_default' and 'restore' arguments to ide_unregister()

* Add 'init_default' (flag for calling init_hwif_default()) and 'restore'
  (flag for calling ide_hwif_restore()) arguments to ide_unregister().

* Update ide_unregister() users to set 'init_default' and 'restore' flags.

* No need to set 'init_default' flag in ide_register_hw() if the setup done
  by init_hwif_default() is going to be overridden by ide_init_port_hw().

* No need to set 'init_default' and 'restore' flags in cleanup_module().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove redundant init_hwif_default() call from ide_register_hw()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:38 +0000 (19:56 +0100)]
ide: remove redundant init_hwif_default() call from ide_register_hw()

ide_init_port_hw() call overrides setup done by init_hwif_default().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove redundant hwif->present check from ide_register_hw()
Bartlomiej Zolnierkiewicz [Sat, 2 Feb 2008 18:56:38 +0000 (19:56 +0100)]
ide: remove redundant hwif->present check from ide_register_hw()

We check earlier for hwif->present and call ide_unregister() if necessary
(after ide_unregister() hwif->present will be always cleared).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agopdc202xx_old: remove surplus initialiser
Alan Cox [Sat, 2 Feb 2008 18:56:38 +0000 (19:56 +0100)]
pdc202xx_old: remove surplus initialiser

Bart:
- drive-by CodingStyle fixups

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: bump driver version number
Borislav Petkov [Sat, 2 Feb 2008 18:56:38 +0000 (19:56 +0100)]
ide-floppy: bump driver version number

Acknowledge major ide-floppy code refactoring and cleanup by bumping the driver
version number. Also, remove a wrong comment.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: fix most of the remaining checkpatch.pl issues
Borislav Petkov [Sat, 2 Feb 2008 18:56:38 +0000 (19:56 +0100)]
ide-floppy: fix most of the remaining checkpatch.pl issues

such as
ERROR: switch and case should be at the same indent
ERROR: need spaces around that '=' (ctx:VxV)
ERROR: trailing statements should be on next line
WARNING: no space between function name and open parenthesis '('
WARNING: printk() should include KERN_ facility level
ERROR: That open brace { should be on the previous line
ERROR: use tabs not spaces
ERROR: do not use assignment in if condition
WARNING: braces {} are not necessary for single statement blocks
ERROR: need space after that ',' (ctx:VxV)
WARNING: line over 80 characters
ERROR: do not use assignment in if condition
...
and so on.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: remove atomic test_*bit macros
Borislav Petkov [Sat, 2 Feb 2008 18:56:37 +0000 (19:56 +0100)]
ide-floppy: remove atomic test_*bit macros

..and replace them with flag enums.

Bart:
- fix idefloppy_media_changed() return value

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: remove unused flag PC_ABORT
Borislav Petkov [Sat, 2 Feb 2008 18:56:37 +0000 (19:56 +0100)]
ide-floppy: remove unused flag PC_ABORT

This flag was never being set in the code so remove it. By the way, the
code in the second patch was being executed unconditionally, i.e. in case
pc->retries > IDEFLOPPY_MAX_PC_RETRIES is true (actually that is the only case
when the outer if-test passed), !test_bit(PC_ABORT, &pc->flags)
was always true so the comment is now incorrect and has to go.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: remove IDEFLOPPY_DEBUG_INFO
Borislav Petkov [Sat, 2 Feb 2008 18:56:36 +0000 (19:56 +0100)]
ide-floppy: remove IDEFLOPPY_DEBUG_INFO

This info is already available through ioctl() and /proc

Bart:
- dump 'gcw.packet_size' for unsupported packet sizes

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: remove unused IDEFLOPPY_USE_READ12
Borislav Petkov [Sat, 2 Feb 2008 18:56:36 +0000 (19:56 +0100)]
ide-floppy: remove unused IDEFLOPPY_USE_READ12

This flag is not being set anywhere in the driver so it can go.

Bart:
- minor CodingStyle fixup

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: merge idefloppy_{input,output}_buffers
Borislav Petkov [Sat, 2 Feb 2008 18:56:36 +0000 (19:56 +0100)]
ide-floppy: merge idefloppy_{input,output}_buffers

We merge idefloppy_{input,output}_buffers() into idefloppy_io_buffers() by
introducing a 4th arg. called direction. According to its value
we atapi_input_bytes() or atapi_output_bytes(). Also, this simplifies the
interrupt handler logic a bit. Finally, rename idefloppy_io_buffers() to
ide_floppy_io_buffers().

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: use an xfer_func_t and io_buf_t typedefs in order to unify rw
Borislav Petkov [Sat, 2 Feb 2008 18:56:36 +0000 (19:56 +0100)]
ide-floppy: use an xfer_func_t and io_buf_t typedefs in order to unify rw

Also, move xfer_func_t typedef to the ide.h since it is used by two drivers
now (more coming).

Bart:
- use __func__ while at it

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: remove IDEFLOPPY_DEBUG_BUGS macro
Borislav Petkov [Sat, 2 Feb 2008 18:56:36 +0000 (19:56 +0100)]
ide-floppy: remove IDEFLOPPY_DEBUG_BUGS macro

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: mv idefloppy_{should_,}report_error
Borislav Petkov [Sat, 2 Feb 2008 18:56:35 +0000 (19:56 +0100)]
ide-floppy: mv idefloppy_{should_,}report_error

In addition to shortening the function name, move the printk-call into the
function thereby saving some code lines. Also, make the function out_of_line
since it is not on a performance critical path. Finally, rename the reworked
function to ide_floppy..().

Bart:
- minor CodingStyle fixup

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: report DMA handling in idefloppy_pc_intr() properly
Borislav Petkov [Sat, 2 Feb 2008 18:56:35 +0000 (19:56 +0100)]
ide-floppy: report DMA handling in idefloppy_pc_intr() properly

Bart:
- use 'hwif' instead of 'HWIF(drive)'
- minor CodingStyle fixup

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: factor out ioctl handlers from idefloppy_ioctl()
Borislav Petkov [Sat, 2 Feb 2008 18:56:35 +0000 (19:56 +0100)]
ide-floppy: factor out ioctl handlers from idefloppy_ioctl()

By passing idefloppy_floppy_t *floppy to the factored out functions, we get
rid of (almost) all local vars so stack usage should be at minimum here. Also,
we merge idefloppy_begin_format() into idefloppy_format_start() since it is its
only user. Also, rename idefloppy_format_start() to idefloppy_format_unit().
Finally, rename the reworked functions to ide_floppy..().

Bart
- minor CodingStyle fixup

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>