pandora-kernel.git
16 years agoACPI: thinkpad-acpi: second TP_EC_FAN_FULLSPEED should be TP_EC_FAN_AUTO
Roel Kluin [Mon, 4 Feb 2008 23:24:56 +0000 (00:24 +0100)]
ACPI: thinkpad-acpi: second TP_EC_FAN_FULLSPEED should be TP_EC_FAN_AUTO

fix bug in safety net for TPEC fan control mode
eaa7571b2d1a08873e4bdd8e6db3431df61cd9ad

Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: bump up version to 0.19
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:57 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: bump up version to 0.19

The major code reorganization and cleanups, and new HKEY events, plus
poll()/select() support are good reasons to checkpoint a new version...

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: update copyright dates to 2008
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:56 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: update copyright dates to 2008

Update the copyright headers to include 2008.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: add poll() support to some sysfs attributes
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:55 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: add poll() support to some sysfs attributes

Implement poll()/select() support through sysfs_notify() for some key
attributes which userspace might want to poll() or select() on.

In order to let userspace know poll()/select() support is available for an
attribute, the thinkpad-acpi sysfs interface version is also bumped up.
Further changes that add poll()/select() capabilities to any pre-existing
attributes will also increment the sysfs interface version.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: silence _sta warning
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:54 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: silence _sta warning

When both CONFIG_THINKPAD_ACPI_DOCK and CONFIG_THINKPAD_ACPI_BAY are
undefined, _sta is not used and that causes a gcc warning.  Fix it
(and I think this is a regression, I am pretty sure I fixed this once
before, sorry about that).

Issue reported by: Pritt Laes.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Pritt Laes <plaes@plaes.org>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: add X61t HKEY events
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:53 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: add X61t HKEY events

Tomas Carnecky reports that events 0x5009 and 0x500a are swivel events, and
that 0x500b/0x500c are tablet pen storage bay events.

Document these events, and avoid nasty messages when they happen.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: wakeup on hotunplug reporting
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:52 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: wakeup on hotunplug reporting

Handle some HKEY events that the firmware uses to report the reason for a
wake up, and to also notify that the system could go back to sleep (if it
woke up just to eject something from the bay, or to undock).

The driver will report the reason of the last wake up in the sysfs
attribute "wakeup_reason": 0 for "none, unknown, or standard ACPI wake up
event", 1 for "bay ejection request" and 2 for "undock request".

The firmware will also report if the operation that triggered the wake up
has been completed, by issuing an HKEY 0x3003 or 0x4003 event.  If the
operation fails, no event is sent.  When such a hotunplug sucessfull
notification is issued, the driver sets the attribute
"wakeup_hotunplug_complete" to 1.

While the firmware does tell us whether we are waking from a suspend or
hibernation scenario, the Linux way of hibernating makes this information
not reliable, and therefore it is not reported.

The idea is that if any of these attributes are non-zero, userspace might
want to do something at the end of the "wake up from sleep" procedures,
such as offering to send the machine back into sleep as soon as it is safe
to do so.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: cleanup hotkey_notify and HKEY log messages
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:51 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: cleanup hotkey_notify and HKEY log messages

Use a generic message on hotkey_notify to log unknown and unhandled events,
and cleanup hotkey_notify a little.

Also, document event 0x5010 (brightness changed notification) and do not
log it as an unknown event (even if we do not use it for anything right
now).

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: add suspend handler
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:50 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: add suspend handler

Add a handler for suspend events.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: some checkpatch.pl fluff
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:49 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: some checkpatch.pl fluff

Fix some of the crap reported by checkpatch.pl.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: rename IBM in defines
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:48 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: rename IBM in defines

Rename defines with IBM in their name that are related to the older
driver name (ibm-acpi) to TPACPI, unless they are specific to IBM
ThinkPads.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: module glue cleanups
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:47 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: module glue cleanups

General cleanup of module glue: Do some code reordering, and add
missing parameter help text.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: spring cleanup part 4
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:46 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: spring cleanup part 4

Remove dead code, and anything in the old changelog that is not a thank
you credit, or a key point to track down history.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: spring cleanup part 3
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:45 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: spring cleanup part 3

Reorder code in the file to get rid of more of the forward declarations,
and to make things cleaner and more organized.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: spring cleanup part 2
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:44 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: spring cleanup part 2

Move most subdriver-related stuff imported from the header file closer to
their subdriver code.  Also, delete unneeded forward declarations.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: spring cleanup part 1
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:43 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: spring cleanup part 1

Remove the header file.  Private header files used by a single .c file are
in bad taste, and I know better now.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: bump up version to 0.18
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:42 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: bump up version to 0.18

The NVRAM polling support for hot keys is reason enough to
bump up the version string.  Do it.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: add CMOS NVRAM polling for hot keys (v9)
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:41 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: add CMOS NVRAM polling for hot keys (v9)

Older ThinkPad models do not export some of the hot keys over the
event-based ACPI hot key interface.  For these models, one has to poll
the CMOS NVRAM to check the key state at a rate faster than the expected
rate at which the user might repeatedly press the same hot key.

This patch implements this functionality for many of the hotkeys in a
transparent way: hot keys will now Just Work, and the driver knows the
best approach (events or NVRAM polling) to employ, based on the
HKEY.MHKA ACPI method.

Also, the driver can turn off the polling when there are no users for
the hot keys that need such polling.

The NVRAM-based hot keys of the A3x series that have never been
implemented by later models are not supported, to avoid changes in the
keymap of the input devices that could cause headaches in the future.

There is a Kconfig option to avoid compiling the NVRAM polling code, as
it is not very small, and unlikely to be useful on any ThinkPad newer
than a T40, X31 or R52.

This feature is based on a previous effort by Richard Hughes.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Richard Hughes <hughsient@gmail.com>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: prepare for NVRAM polling support
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:40 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: prepare for NVRAM polling support

Make some small internal thinkpad-acpi changes to the hotkey subdriver code
that will make it easier to add NVRAM polling support.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: refactor hotkey_get and hotkey_set (v2)
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:39 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: refactor hotkey_get and hotkey_set (v2)

Refactor and organize the code a bit for the NVRAM polling support:

1. Split hotkey_get/set into hotkey_status_get/set and hotkey_mask_get/set;
2. Cache the status of hot key mask for later driver use;
3. Make sure the cache of hot key mask is refreshed when needed;
4. log a printk notice when the firmware doesn't set the hot key
   mask to exactly what we asked it to;
5. Add proper locking to the data structures.

Only (4) should be user-noticeable, but there is a chance (5) fixes
some unknown/unreported race conditions.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agoACPI: thinkpad-acpi: document keymap gotcha's (v2)
Henrique de Moraes Holschuh [Tue, 8 Jan 2008 15:02:38 +0000 (13:02 -0200)]
ACPI: thinkpad-acpi: document keymap gotcha's (v2)

Publish the requirements for keymap changes.  This is a documentation
change, only.

Currently, people look at the thinkpad-acpi default keymaps, and think:
"modifying this is a trivial thing, it can't break systems, and there are
keys defined for foo and bar, but the driver has them as KEY_RESERVED.
Must have been an oversight, let me change it."

And since they never get to see the bug reports, because they are not
really a part of the Linux ThinkPad users community (linux-thinkpad
mailinglist, thinkwiki wiki, thinkpad forums) and laptop users are slow
to complain to distros about any breakages...

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Len Brown <len.brown@intel.com>
16 years agox86: fix bootup crash in native_read_tsc()
Ingo Molnar [Fri, 1 Feb 2008 22:45:18 +0000 (23:45 +0100)]
x86: fix bootup crash in native_read_tsc()

fix bootup crash in native_read_tsc() that was reported on an Athlon-XP
and bisected. The correct feature boundary for X86_FEATURE_MFENCE_RDTSC
is not XMM but XMM2.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
Linus Torvalds [Fri, 1 Feb 2008 22:58:02 +0000 (09:58 +1100)]
Merge git://git./linux/kernel/git/bart/ide-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (100 commits)
  ide: move hwif_register() call out of ide_probe_port()
  ide: factor out code for tuning devices from ide_probe_port()
  ide: move handling of I/O resources out of ide_probe_port()
  ide: make probe_hwif() return an error value
  ide: use ide_remove_port_from_hwgroup in init_irq()
  ide: prepare init_irq() for using ide_remove_port_from_hwgroup()
  ide: factor out code removing port from hwgroup from ide_unregister()
  ide: I/O resources are released too early in ide_unregister()
  ide: cleanup ide_system_bus_speed()
  ide: remove needless zeroing of hwgroup fields from init_irq()
  ide: remove unused ide_hwgroup_t fields
  ide_platform: remove struct hwif_prop
  ide: remove hwif->present manipulations from hwif_init()
  ide: move wait_hwif_ready() documentation in the right place
  ide: fix handling of busy I/O resources in probe_hwif()
  <linux/hdsmart.h> is not used by kernel code
  ide: don't include <linux/hdsmart.h>
  ide-floppy: cleanup header
  ide: update/add my Copyrights
  ide: delete filenames/versions from comments
  ...

16 years agoide: move hwif_register() call out of ide_probe_port()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:36 +0000 (23:09 +0100)]
ide: move hwif_register() call out of ide_probe_port()

* Add BUG_ON(hwif->present) at the start of ide_probe_port().

* Move hwif_register() call (along with setting hwif->present) from
  ide_probe_port() to ide_device_add_all().

  As a result the port will be registered with the device tree _after_:
  - probing both devices (if both are present)
  - port reset (if hwif->reset is set)
  - restoring local IRQs state and re-enabling port IRQ

While at it:

* Rename hwif_register() to ide_register_port().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: factor out code for tuning devices from ide_probe_port()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:36 +0000 (23:09 +0100)]
ide: factor out code for tuning devices from ide_probe_port()

* Factor out code for tuning devices from ide_probe_port()
  to ide_port_tune_devices().

* Move ide_port_tune_devices() call from ide_probe_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: move handling of I/O resources out of ide_probe_port()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:36 +0000 (23:09 +0100)]
ide: move handling of I/O resources out of ide_probe_port()

Reserve/release I/O resources in ide_device_add_all() instead of
ide_probe_port().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: make probe_hwif() return an error value
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:36 +0000 (23:09 +0100)]
ide: make probe_hwif() return an error value

Make probe_hwif() return an error value.

While at it:

* Remove comment about MAX_DRIVES == 2 limitation (it is not special to
  probe_hwif(), it is a general assumption taken by a lot of IDE code).

* Rename probe_hwif() to ide_probe_port().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: use ide_remove_port_from_hwgroup in init_irq()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:36 +0000 (23:09 +0100)]
ide: use ide_remove_port_from_hwgroup in init_irq()

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: prepare init_irq() for using ide_remove_port_from_hwgroup()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:36 +0000 (23:09 +0100)]
ide: prepare init_irq() for using ide_remove_port_from_hwgroup()

* BUG_ON() early if 'hwif->next == hwif' and there is a 'match' hwgroup.

* Remove printk() for impossible condition and add a BUG_ON(hwgroup->drive)
  to match code in ide_unregister().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: factor out code removing port from hwgroup from ide_unregister()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:35 +0000 (23:09 +0100)]
ide: factor out code removing port from hwgroup from ide_unregister()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: I/O resources are released too early in ide_unregister()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:35 +0000 (23:09 +0100)]
ide: I/O resources are released too early in ide_unregister()

Release I/O resources after releasing DMA.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: cleanup ide_system_bus_speed()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:35 +0000 (23:09 +0100)]
ide: cleanup ide_system_bus_speed()

Use the facts that:

* When ide_init() is called 'system_bus_speed' always equals zero.

* system_bus_clock() is never called before ide_init().

and:

* Move printk() from ide_system_bus_speed() to ide_init().

* Don't assign 'system_bus_speed' in ide_system_bus_speed().

* Don't call ide_system_bus_speed() in system_bus_clock().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove needless zeroing of hwgroup fields from init_irq()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:35 +0000 (23:09 +0100)]
ide: remove needless zeroing of hwgroup fields from init_irq()

Since kmalloc_node() is called with __GFP_ZERO flag there is no need to
explicitly zero hwgroup fields.

While at it:

* Use 'hwif' instead of 'hwif->drives[0].hwif' for kmalloc_node() call.

* Fix whitespace damage.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove unused ide_hwgroup_t fields
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:35 +0000 (23:09 +0100)]
ide: remove unused ide_hwgroup_t fields

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide_platform: remove struct hwif_prop
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:35 +0000 (23:09 +0100)]
ide_platform: remove struct hwif_prop

* Remove 'if (hwif != hwif_prop.hwif)' check from plat_ide_remove()
  (pdev->dev.driver_data and hwif_prop.hwif are set at the same time
   in plat_ide_probe() and are identical).

* Use hwif->index for ide_unregister() in plat_ide_remove().

* Use local variables instead of hwif_prop.plat_ide[_alt]_mapbase in
  plat_ide_probe() and remove no longer needed struct hwif_prop.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove hwif->present manipulations from hwif_init()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:34 +0000 (23:09 +0100)]
ide: remove hwif->present manipulations from hwif_init()

* Call hwif_init() only if hwif->present is set.

* If hwif_init() fails clear hwif->present.

* Remove hwif->present manipulations from hwif_init().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move wait_hwif_ready() documentation in the right place
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:34 +0000 (23:09 +0100)]
ide: move wait_hwif_ready() documentation in the right place

* Move wait_hwif_ready() documentation before this function.

* Fix trailing whitespaces.

* s/wait-for-busy/wait-for-non-busy/

* Remove no longer valid comment about the current code behavior.

* Docbook-ize it.

* Rename wait_hwif_ready() to ide_port_wait_ready().

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix handling of busy I/O resources in probe_hwif()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:34 +0000 (23:09 +0100)]
ide: fix handling of busy I/O resources in probe_hwif()

It could be that I/O resources are busy because some other host driver
has already claimed them so don't unregister the devices.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years ago<linux/hdsmart.h> is not used by kernel code
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:34 +0000 (23:09 +0100)]
<linux/hdsmart.h> is not used by kernel code

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: don't include <linux/hdsmart.h>
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:34 +0000 (23:09 +0100)]
ide: don't include <linux/hdsmart.h>

IDE doesn't need it.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: cleanup header
Borislav Petkov [Fri, 1 Feb 2008 22:09:33 +0000 (23:09 +0100)]
ide-floppy: cleanup header

Move ide-floppy historical changelog to
Documentation/ide/ChangeLog.ide-floppy.1996-2002

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: update/add my Copyrights
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:33 +0000 (23:09 +0100)]
ide: update/add my Copyrights

The last years stuff and a trip down memory lane...

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: delete filenames/versions from comments
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:33 +0000 (23:09 +0100)]
ide: delete filenames/versions from comments

Delete filenames/versions from comments.

I'm leaving decisions about adding DRV_VERSION defines and MODULE_VERSION()-s
to maintainers of the respective drivers.

While at it:

* Remove unused VERSION define from ide.c.

* Remove unused/stale DRV_VERSION define from au1xxx-ide.c.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoau1xxx-ide/rapide: use hwif->index for ide_unregister()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:33 +0000 (23:09 +0100)]
au1xxx-ide/rapide: use hwif->index for ide_unregister()

Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-pmac: macio resource freeing bugfix
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:32 +0000 (23:09 +0100)]
ide-pmac: macio resource freeing bugfix

Release DMA resource before zeroing pmif.

Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoau1xxx-ide: device tree bugfix
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:32 +0000 (23:09 +0100)]
au1xxx-ide: device tree bugfix

Add missing hw.dev setup (so hwif->gendev.parent will be set by
ide_init_port_hw() to point to the parent device).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: use ide_build_sglist() and ide_destroy_dmatable() in non-PCI host drivers
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:32 +0000 (23:09 +0100)]
ide: use ide_build_sglist() and ide_destroy_dmatable() in non-PCI host drivers

* Make ide_build_sglist() and ide_destroy_dmatable() available also when
  CONFIG_BLK_DEV_IDEDMA_PCI=n.

* Use ide_build_sglist() and ide_destroy_dmatable() in {ics,au1xxx-}ide.c
  and remove no longer needed {ics,au}ide_build_sglist().

There should be no functionality changes caused by this patch.

Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: switch to DMA-mapping API
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:32 +0000 (23:09 +0100)]
ide: switch to DMA-mapping API

* pci_map_sg() -> dma_map_sg() in ide_build_sglist().

* pci_unmap_sg() -> dma_unmap_sg() in ide_destroy_dmatable().

There should be no functionality changes caused by this patch except
for blackfin arch whose dma_[un]map_sg() implementation differs from
pci_[un]map_sg() one (on s390 arch there is no PCI, on avr32 and h8300
archs PCI is currently unsupported, on m32r arch PCI support depends
on BROKEN, on m68k arch PCI support depends on HADES which in turn
depends on BROKEN, on all other archs dma_[un]map_sg() functionality
matches with pci_[un]map_sg() one).

blackfin behavior change was ack-ed by Bryan Wu.

Cc: Bryan Wu <bryan.wu@analog.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoicside: use hwif->dev
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:32 +0000 (23:09 +0100)]
icside: use hwif->dev

* Setup hwif->dev in icside_setup().

* Use hwif->dev instead of state->dev in icside_build_sglist(),
  icside_dma_end(), icside_dma_start() and icside_dma_setup().

* Remove no longer needed 'dev' field from struct icside_state.

Cc: Russell King <rmk@arm.linux.org.uk>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoau1xxx-ide: use hwif->dev
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:31 +0000 (23:09 +0100)]
au1xxx-ide: use hwif->dev

* Setup hwif->dev in au_ide_probe().

* Use hwif->dev instead of ahwif->dev in auide_build_sglist(),
  auide_build_dmatable(), auide_dma_end() and auide_ddma_init().

* Remove no longer needed 'dev' field from _auide_hwif type.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: keep pointer to struct device instead of struct pci_dev in ide_hwif_t
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:31 +0000 (23:09 +0100)]
ide: keep pointer to struct device instead of struct pci_dev in ide_hwif_t

Keep pointer to struct device instead of struct pci_dev in ide_hwif_t.

While on it:
* Use *dev->dma_mask instead of pci_dev->dma_mask in ide_toggle_bounce().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: use ide_destroy_dmatable() instead of pci_unmap_sg() (take 2)
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:31 +0000 (23:09 +0100)]
ide: use ide_destroy_dmatable() instead of pci_unmap_sg() (take 2)

Use ide_destroy_dmatable() in:
* ide-dma.c::ide_build_dmatable()
* sgiioc4.c::sgiioc4_build_dma_table()
* pmac.c::pmac_ide_{build,destroy}_dmatable()

There should be no functionality changes caused by this patch.

v2:
* pmac.c build fix from Andrew Morton.

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove BUG_ON() from ide_build_sglist()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:31 +0000 (23:09 +0100)]
ide: remove BUG_ON() from ide_build_sglist()

do_rw_taskfile() has been fixed to check the return value
of ->dma_setup method so this BUG_ON() is no longer needed.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix ide_intr() for non-PCI devices and CONFIG_BLK_DEV_IDEPCI=y
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:31 +0000 (23:09 +0100)]
ide: fix ide_intr() for non-PCI devices and CONFIG_BLK_DEV_IDEPCI=y

'hwif->pci_dev && !hwif->pci_dev->vendor' condition is never true,
check for 'hwif->chipset != ide_pci' instead.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agopiix: remove stale comments
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:30 +0000 (23:09 +0100)]
piix: remove stale comments

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add IDE_HFLAG_NO_DSC host flag
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:30 +0000 (23:09 +0100)]
ide: add IDE_HFLAG_NO_DSC host flag

* Add IDE_HFLAG_NO_DSC host flag for hosts that doesn't support DSC overlap.

* Set it in aec62xx (for ATP850UF only) and hpt34x host drivers.

* Convert ide-tape device driver to check for IDE_HFLAG_NO_DSC flag.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add IDE_HFLAG_CLEAR_SIMPLEX host flag
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:30 +0000 (23:09 +0100)]
ide: add IDE_HFLAG_CLEAR_SIMPLEX host flag

* Rename 'simplex_stat' variable to 'dma_stat' in ide_get_or_set_dma_base().

* Factor out code for forcing host out of "simplex" mode from
  ide_get_or_set_dma_base() to ide_pci_clear_simplex() helper.

* Add IDE_HFLAG_CLEAR_SIMPLEX host flag and set it in alim15x3 (for M5229),
  amd74xx (for AMD 7409), cmd64x (for CMD643), generic (for Netcell) and
  serverworks (for CSB5) host drivers.

* Make ide_get_or_set_dma_base() test for IDE_HFLAG_CLEAR_SIMPLEX host flag
  instead of checking dev->device (BTW the code was buggy because it didn't
  check for dev->vendor, luckily none of these PCI Device IDs was used by
  some other vendor for PCI IDE controller).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoamd74xx: remove amd_ide_chips table
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:30 +0000 (23:09 +0100)]
amd74xx: remove amd_ide_chips table

* Remove no longer needed assertion from amd74xx_probe().

* Factor out cable detection for AMD7409 to amd7409_cable_detect() and for
  chipsets >= AMD7411 to amd7411_cable_detect().

* Use dev->vendor and dev->device instead of amd_config->udma_mask when
  selecting cable detection method and checking for broken FIFO support in
  init_chipset_amd74xx().

* Remove no longer needed AMD_BAD_FIFO define.

* Add 'swdma' parameter for setting .swdma_mask to DECLARE_AMD_DEV() macro.

* Add 'udma' parameter for setting .udma_mask to DECLARE_{AMD,NV}_DEV() macro.

* Keep a copy of a current amd74xx_chipsets[] entry in amd74xx_probe()
  in order to fix ->swdma_mask on early AMD7409 revisions and ->udma_mask
  on Serenade mainboards.

* Remove no longer needed fixups from init_chipset_amd74xx()
  and AMD_CHECK_{SWDMA,SERENADE} defines.

* Move printing banner message from init_chipset_amd74xx() to amd74xx_probe(),
  also remove incorrect comment while at it.

* Use hwif->ultra_mask instead of amd_config->udma_mask in amd_set_drive().

* Add 'udma_mask' argument to amd_set_speed() and pass UDMA mask from
  amd_set_drive() instead of using amd_config->udma_mask.

* Move amd_config->base from AMD_* defines to users of these defines and add
  0x40 the defined values.  Then add amd_offset() inline helper for selecting
  offset from 0x40 base (needed for nVidia controllers) and finally use it in
  amd_set_speed(), amd7411_cable_detect() and init_chipset_amd74xx() instead
  of amd_config->base.

* Remove no longer needed AMD_BAD_SWDMA define, ->{swdma,ultra}_mask setup
  from init_hwif_amd74xx(), amd_{config,chipset} variables and amd_ide_chips
  table.

* Fix init_chipset_amd74xx() comment.

* Bump driver version.

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: ide_setup_dma() assumes 8 ports
Sergei Shtylyov [Fri, 1 Feb 2008 22:09:30 +0000 (23:09 +0100)]
ide: ide_setup_dma() assumes 8 ports

According to http://marc.info/?l=linux-ide&m=114346138611631, the drivers must
always register 8 DMA ports with ide_setup_dma(), so its last argument is not
needed. While at it, kill some useless parens in that function...

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agotrm290: cannot call ide_setup_dma()
Sergei Shtylyov [Fri, 1 Feb 2008 22:09:29 +0000 (23:09 +0100)]
trm290: cannot call ide_setup_dma()

The TRM-290 chip is *not* SFF-8038i compatible and therefore can *not* call
ide_setup_dma() -- fix this and also cleanup the code a bit...

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: move the remaining cdrom.c ioctl handling code to ide-cd_ioctl.c
Borislav Petkov [Fri, 1 Feb 2008 22:09:29 +0000 (23:09 +0100)]
ide-cd: move the remaining cdrom.c ioctl handling code to ide-cd_ioctl.c

There should be no functional changes from this.

Signed-off-by: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-{floppy,tape}: remove debug code for dumping identify data
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:29 +0000 (23:09 +0100)]
ide-{floppy,tape}: remove debug code for dumping identify data

IDE core supports dumping raw identify data in hdparm friendly format now
so verbose identify dumping in ide-{floppy,tape}.c device drivers (done iff
IDE{FLOPPY,TAPE}_DEBUG_INFO is defined to '1' and it is '0' by default)
is no longer nedeed.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add ide_dump_identify() debug helper
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:28 +0000 (23:09 +0100)]
ide: add ide_dump_identify() debug helper

* Add ide_dump_identify() debug helper for dumping raw identify data in
  the hdparm friendly format (== the identify data can be extracted from
  dmesg output and passed to hdparm --Istdin).

* Dump identify data in ide-probe.c::do_identify() if DEBUG is enabled.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: update driver version, comments and copyrights
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:28 +0000 (23:09 +0100)]
ide-cd: update driver version, comments and copyrights

* Bump driver version.

* Remove filename and stale TODO from comments.

* Add my copyrights.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: unify request end exit path in cdrom_decode_status()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:28 +0000 (23:09 +0100)]
ide-cd: unify request end exit path in cdrom_decode_status()

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: merge cdrom_write_check_ireason() and cdrom_read_check_ireason()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:28 +0000 (23:09 +0100)]
ide-cd: merge cdrom_write_check_ireason() and cdrom_read_check_ireason()

Add 'rw' parameter to cdrom_read_check_ireason(), make it handle
both read and write checking, rename it to ide_cd_check_ireason(),
finally remove no longer needed cdrom_write_check_ireason().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: merge cdrom_rw_intr() and cdrom_newpc_intr()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:28 +0000 (23:09 +0100)]
ide-cd: merge cdrom_rw_intr() and cdrom_newpc_intr()

Add handling of fs read/write requests to cdrom_nepwc_intr()
and remove no longer needed cdrom_rw_intr().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: call blk_dump_rq_flags() on "missing data" in cdrom_rw_intr()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:27 +0000 (23:09 +0100)]
ide-cd: call blk_dump_rq_flags() on "missing data" in cdrom_rw_intr()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: prepare cdrom_rw_intr() and cdrom_newpc_intr() to be merged
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:27 +0000 (23:09 +0100)]
ide-cd: prepare cdrom_rw_intr() and cdrom_newpc_intr() to be merged

In cdrom_newpc_intr():
* cleanup variables in the 'transfer data' loop

In cdrom_rw_intr():
* rename 'sectors_to_transfer' to 'thislen'
* rename 'this_transfer' to 'blen'
* keep number of bytes (instead of sectors) in 'thislen' and 'blen'
* call 'xferfunc' only once for 'blen'
* cache 'rq->buffer' in 'ptr' variable
* check for 'rq->bio' before setting 'ptr' and 'blen'
* check for 'ptr' instead of 'rq->current_nr_sectors'

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: unify moving to the next buffer in cdrom_rw_intr()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:27 +0000 (23:09 +0100)]
ide-cd: unify moving to the next buffer in cdrom_rw_intr()

Use the fact that for the first loop rq->current_nr_sectors is always
set and unify moving to the next buffer for read/write requests.

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: merge cdrom_start_read() and cdrom_start_write()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:27 +0000 (23:09 +0100)]
ide-cd: merge cdrom_start_read() and cdrom_start_write()

Add handling of read requests to cdrom_start_write(), rename it
to cdrom_start_rw() and remove no longer needed cdrom_start_read().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: merge cdrom_start_read_continuation() and cdrom_start_rw_cont()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:27 +0000 (23:09 +0100)]
ide-cd: merge cdrom_start_read_continuation() and cdrom_start_rw_cont()

* Add handling of write requests to cdrom_start_read_continuation(),
  rename it to cdrom_start_rw_cont() and remove no longer needed
  cdrom_start_write_cont().

* Remove redundant '(rq->sector & (sectors_per_frame - 1)' check.

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: merge cdrom_read_intr() and cdrom_write_intr()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:26 +0000 (23:09 +0100)]
ide-cd: merge cdrom_read_intr() and cdrom_write_intr()

Add handling of read requests to cdrom_write_intr(), rename it
to cdrom_rw_intr() and remove no longer needed cdrom_read_intr().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: factor out transfer size checking from cdrom_read_intr()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:26 +0000 (23:09 +0100)]
ide-cd: factor out transfer size checking from cdrom_read_intr()

This is a preparation for cdrom_read_intr() and cdrom_write_intr() merge.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: add ide_cd_drain_data() helper
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:26 +0000 (23:09 +0100)]
ide-cd: add ide_cd_drain_data() helper

Add ide_cd_drain_data() and use it in cdrom_{buffer_sectors,read_intr}()
(as a nice side-effect this cuts 0.5kB of code from ide-cd.o).

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: merge cdrom_do_packet_command() and cdrom_do_block_pc()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:26 +0000 (23:09 +0100)]
ide-cd: merge cdrom_do_packet_command() and cdrom_do_block_pc()

Add REQ_TYPE_{SENSE,ATA_PC} requests handling to cdrom_do_block_pc()
and remove cdrom_do_packet_command().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: remove cdrom_do_pc_continuation()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:26 +0000 (23:09 +0100)]
ide-cd: remove cdrom_do_pc_continuation()

cdrom_do_pc_continuation() is now identical to cdrom_do_newpc_cont()
so just always use the latter function.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: merge cdrom_pc_intr() and cdrom_newpc_intr()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:25 +0000 (23:09 +0100)]
ide-cd: merge cdrom_pc_intr() and cdrom_newpc_intr()

Add handling of REQ_TYPE_{SENSE,ATA_PC} requests to cdrom_newpc_intr()
(please note that these requests never have 'bio' attached to them
and they never use DMA), then remove no longer needed cdrom_pc_intr().

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: unify request end exit path in cdrom_pc_intr()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:25 +0000 (23:09 +0100)]
ide-cd: unify request end exit path in cdrom_pc_intr()

This is a preparation for cdrom_pc_intr() and cdrom_newpc_intr() merge.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: factor out request sense fixup from cdrom_pc_intr()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:25 +0000 (23:09 +0100)]
ide-cd: factor out request sense fixup from cdrom_pc_intr()

This is a preparation for cdrom_pc_intr() and cdrom_newpc_intr() merge.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: call blk_dump_rq_flags() on "missing data" in cdrom_newpc_intr()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:25 +0000 (23:09 +0100)]
ide-cd: call blk_dump_rq_flags() on "missing data" in cdrom_newpc_intr()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: remove BUG_ON() from cdrom_newpc_intr()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:25 +0000 (23:09 +0100)]
ide-cd: remove BUG_ON() from cdrom_newpc_intr()

There is no need for it anylonger and ide_set_handler() complains
if ->handler is not NULL anyway.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: move code handling cdrom.c IOCTLs to ide-cd_ioctl.c
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:25 +0000 (23:09 +0100)]
ide-cd: move code handling cdrom.c IOCTLs to ide-cd_ioctl.c

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: rename cdrom_* functions to ide_cd_*
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:24 +0000 (23:09 +0100)]
ide-cd: rename cdrom_* functions to ide_cd_*

* cdrom_prepare_request() -> ide_cd_init_rq()
* cdrom_queue_packet_command() -> ide_cd_queue_pc()
* cdrom_lockdoor() -> ide_cd_lockdoor()
* cdrom_read_toc() -> ide_cd_read_toc()
* cdrom_get_toc_entry() -> ide_cd_get_toc_entry()

This is a preparation to move code handling cdrom.c IOCTLs out of ide-cd.c.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: coding style fixes for cdrom_get_toc_entry()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:24 +0000 (23:09 +0100)]
ide-cd: coding style fixes for cdrom_get_toc_entry()

This is a preparation to move code handling cdrom.c IOCTLs out of ide-cd.c.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: move lba_to_msf() and msf_to_lba() to <linux/cdrom.h>
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:24 +0000 (23:09 +0100)]
ide-cd: move lba_to_msf() and msf_to_lba() to <linux/cdrom.h>

* Move lba_to_msf() and msf_to_lba() to <linux/cdrom.h>
  (use 'u8' type instead of 'byte' while at it).

* Remove msf_to_lba() copy from drivers/cdrom/cdrom.c.

Acked-by: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: merge cdrom_select_speed() into ide_cdrom_select_speed()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:24 +0000 (23:09 +0100)]
ide-cd: merge cdrom_select_speed() into ide_cdrom_select_speed()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: merge cdrom_read_subchannel() into ide_cdrom_get_mcn()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:24 +0000 (23:09 +0100)]
ide-cd: merge cdrom_read_subchannel() into ide_cdrom_get_mcn()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: merge cdrom_play_audio() into ide_cd_fake_play_trkind()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:23 +0000 (23:09 +0100)]
ide-cd: merge cdrom_play_audio() into ide_cd_fake_play_trkind()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: factor out ioctl handlers from ide_cdrom_audio_ioctl()
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:23 +0000 (23:09 +0100)]
ide-cd: factor out ioctl handlers from ide_cdrom_audio_ioctl()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: move VERBOSE_IDE_CD_ERRORS code to ide-cd_verbose.c
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:23 +0000 (23:09 +0100)]
ide-cd: move VERBOSE_IDE_CD_ERRORS code to ide-cd_verbose.c

* Rename ide-cd kernel module to ide-cd_mod in preparation to moving code out
  from ide-cd.[c,h].   Add MODULE_ALIAS("ide-cd") to preserve compatibility.

* Move VERBOSE_IDE_CD_ERRORS code from ide-cd.[c,h] to ide-cd_verbose.c.

  ide-cd_verbose.c is IDE subsystem independent and may be easily converted
  into generic library usable by other drivers (i.e. libata) if needed.

* Add CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS config option to drivers/ide/Kconfig
  replacing VERBOSE_IDE_CD_ERRORS define.  Make this config option enabled by
  default and visible only if CONFIG_EMBEDDED is defined.

before the patch:
   text    data     bss     dec     hex filename
  22841     360    1056   24257    5ec1 drivers/ide/ide-cd.o

after the patch w/ CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y:
   text    data     bss     dec     hex filename
  22857     360    1056   24273    5ed1 drivers/ide/ide-cd_mod.o

after the patch w/ CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=n:
   text    data     bss     dec     hex filename
  15091     360    1056   16507    407b drivers/ide/ide-cd_mod.o

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: coding style fixes for VERBOSE_IDE_CD_ERRORS code
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:23 +0000 (23:09 +0100)]
ide-cd: coding style fixes for VERBOSE_IDE_CD_ERRORS code

* Coding style fixes for VERBOSE_IDE_CD_ERRORS code.

* Add KERN_{ERR,CONT} printk() levels where needed.

This is a preparation for moving this code out of ide-cd.[c,h].

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: remove duplicate sense keys definitions from ide-cd.h
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:23 +0000 (23:09 +0100)]
ide-cd: remove duplicate sense keys definitions from ide-cd.h

ide-cd.c already uses sense keys definitions from <scsi/scsi.h>.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: re-organize handling of quirky devices
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:22 +0000 (23:09 +0100)]
ide-cd: re-organize handling of quirky devices

Re-organize handling of quirky devices:

* Add struct cd_list_entry, ide_cd_quirks_list[] and ide_cd_flags() helper.

* Set flags returned by ide_cd_flags() in ide_cdrom_setup().

* Add IDE_CD_FLAG_VERTOS_{300_SDD,600_ESD} and IDE_CD_FLAG_SANYO_3CD flags.

* Move device quirks from ide_cdrom_setup() to ide_cd_quirks_list[].

* Rename IDE_CD_FLAG_NEC260 to IDE_CD_FLAG_PRE_ATAPI12 and handle
  quirky Stingray 8X CD-ROM using ide_cd_quirks_list[].

* Add IDE_CD_FLAG_FULL_CAPS_PAGE flag and handle quirky ACER 50X CD-ROM
  / WPI 32X CD-ROM using ide_cd_quirk_list[].

* Add IDE_CD_FLAG_PLAY_AUDIO_OK flag and handle quirky MATSHITA DVD-ROMs
  using ide_cd_quirks_list[].

* Add IDE_CD_FLAG_LE_SPEED_FIELDS flag and handle quirky ACER/AOpen 24X
  CD-ROM using ide_cd_quirk_list[].

* Fix some comments about quirky devices while at it.

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: use BCD2BIN()/BIN2BCD() macros from <linux/bcd.h>
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:22 +0000 (23:09 +0100)]
ide-cd: use BCD2BIN()/BIN2BCD() macros from <linux/bcd.h>

Use BCD2BIN()/BIN2BCD() macros from <linux/bcd.h>
and remove the local bcd2bin()/bin2bcd() inlines.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: remove STANDARD_ATAPI define
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:22 +0000 (23:09 +0100)]
ide-cd: remove STANDARD_ATAPI define

Remove STANDARD_ATAPI define + drive-by coding style fixes.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: remove NO_DOOR_LOCKING define
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:22 +0000 (23:09 +0100)]
ide-cd: remove NO_DOOR_LOCKING define

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: remove struct ide_cd_{config,state}_flags
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:22 +0000 (23:09 +0100)]
ide-cd: remove struct ide_cd_{config,state}_flags

* Remove unused ->{writing,reserved} fields from struct ide_cd_config_flags.

* Move ->max_speed from struct ide_cd_config_flags to struct cdrom_info.

* Move ->current_speed from struct ide_cd_state_flags to struct cdrom_info.

* Add defines for config and state flags.

* Add 'unsigned int cd_flags' to struct cdrom_info and use ->cd_flags
  instead of ->{config,state}_flags.

* Remove no longer needed struct ide_cd_{config,state}_flags.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: remove struct atapi_capabilities_page (take 2)
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:21 +0000 (23:09 +0100)]
ide-cd: remove struct atapi_capabilities_page (take 2)

* Remove struct atapi_capabilities_page.

* Add ATAPI_CAPABILITIES_PAGE[_PAD]_SIZE define.

v2:
* The buf[] array access indexes were swapped between 'curspeed'/'maxspeed'.
  (Noticed by Borislav Petkov).

Cc: Borislav Petkov <bbpetkov@yahoo.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: kill CDROM_STATE_FLAGS() macro
Bartlomiej Zolnierkiewicz [Fri, 1 Feb 2008 22:09:21 +0000 (23:09 +0100)]
ide-cd: kill CDROM_STATE_FLAGS() macro

While at it rename 'info' variable to 'cd' in cdrom_saw_media_change().

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