An error occurred fetching the project authors.
  1. 26 Jul, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] IDE 105 · e7a6bdfd
      Martin Dalecki authored
       - Rename ata-timings.h to timings.h. Same arguments as for agp.
      
       - Always include hdparm.h just before ide.h. Include them last where
         used. This is preparing to split out the IDE register declarations
         out of this file, since many other files in the kernel include it,
         which don't have anything to do with IDE.
      
       - Don't use the "IDE special" data type "byte". Just use the u8 data
         type for consistency with the rest of the kernel where applicable.
      e7a6bdfd
  2. 19 Jul, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.26 IDE 99 · e9356da8
      Martin Dalecki authored
      Most noticable in the patch:
      
      1. we handle IRQ sharing now better then ever
      
      2. survives quite a lot of testing by few people. Forexample
      cat /dev/hdb > /dev/null, where /dev/hdb contains a CD-ROM
      with a big cratch on the surface making sure it's broken :-).
      it's BTW. amanzing how wide the cratch had to be until errors
      ocurred.
      
      3. Doesn't play with rq_rdev and friends
      
      Fri Jul 12 05:04:32 CEST 2002 ide-clean-99
      
      - Push nIEN disabling down at the place where we are finished with a particular
         request.
      
      - First round of command line parser cleanups by Gerald Champagne.
      
      - Unfold the drive eviction functions in do_request(). This allowed us to
         realize that we don't have to re-get the major/minor numbers of the device we
         are action on from the raw device field of the currently running request. One
         significant place less in kernel where major/minor data gets manipulated.
      
      - Move the big IDE_BUSY loop out of do_request to do_ide_request().  This makes
         us realize that we don't have to clear the IDE_BUSY bit just before
         reentering do_request to look for more requests still pending on the queue
         and set it immediately again.
      
         This is fixing a tinny race on the code path from IRQ or timer function,
         where we had a tinny window between the clearing of the IDE_BUSY bit and
         reentering the request queue for completely unrelated requests to come in to
         our way.
      
      - Don't return any value in do_reset1(). It's always ATA_OP_CONTINUES. Split it
         up in to two functions one for disks (well in fact channels) and one for
         ATAPI devices. It turns out that they can be moved to the places where they
         are used to clarify the code flow. The only function remaining is
         do_reset_channel() now.
      
      - Duplicate code from ide_do_drive_code explicitely in ide_raw_taskfile().
         Simplify ide_raw_taskfile() thereafter. Realize that ide_do_drive_cmd()
         is now only used by ATAPI devices. Move it therefore to atapi.c.
      
      - Do busy polling for ATAPI reset operations. This is much safer then the
         previous timer games played there. It simply doesn't make sense to give the
         bus up during such a subtile operation. We don't have to disable IRQs here as
         well, since we are already under the protection of the do_request mechanisms.
         (Well hopefully...)
      
      - Remove no longer used reset_poll() function. poll_timeout and friends are now
         used only in pdc4030 code. Those function where not called from IRQ context
         but they where set as handlers and not as expiry functions.
      
      - Return ATA_OP_CONTINUES instead of ATA_OP_FINISHED in ata_error(), to signal
         that we are willing to retry the operation until the maximal number of retry
         attempts is exceeded. Returning ATA_OP_FINISHED without prior end_request()
         hangs the system.
      
      - Apply trivia from DJ patch set.
      
      - Apply small configuration fix to ide-pci.c from Muli Ben-Yehuda.
      
      - Feed add_blkdev_randomness with information we already have in struct
         ata_channel *ch->major, instead of using the major(macro) on the request in
         question.
      
      - Make ide_raw_taskfile use the same request submission mechanism as
         tcq_invalidate_queue(). Something similar would be ideal for ioctl() code as
         well.
      
      - Implement actual device reset. Realize that the recalibration procedure is
         doomed by the standard. Don't try to recover by recalibrating devices
         therefore -just our retry mechanism should work in those cases. And suddenly
         the error handling code is IRQ safe.
      
      - Reinvent the ATA reset operation, since it is apparently needed. We still
         have to do the whole transfer timing reconfiguration there.
      
      - Move drive_is_ready(), which is in reality an attempt to check for IRQ
         requesters without clearing the IRQ line, over to the place where it belongs:
         device.c, which is the direct device access abstraction place.  Rename it to
         ata_status_irq() to prevent global name space pollution.
      
      - Updates to the pdc202xxx host chip controller setup code by Bart³omiej
         ¯o³nierkiewicz:
      
         Forward port 2.4 patch by Hank Yang from Promise:
      
      	- Add PDC20271 support
      	- Disable LBA48 support on PDC20262
      	- Fix ATAPI UDMA port value
      	- Add new quirk drive
      	- Adjust timings for all drives when using ATA133
      	- Update pdc202xx_reset() waiting time
      
      - Mark TCQ as dangerous and add some bits about it to the help.
      
      - Add some missing exports.
      
      - Some small ide-scsi.c host allocation fixes by sullivan.
      e9356da8
  3. 14 Jul, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] IDE 98 · 2dbd1502
      Martin Dalecki authored
      Synchronize with 2.5.25.
      
      Incorporate IDE-94, as well as 95, 96, 97 and 98-pre as announced by Bartek and
      unfortunately still not included in 2.5.25, which makes admittedly things
      still fall appart:
      
      Missing changelog for 98-pre by Bartlomiej Zolnierkiewicz (BTW.  Handling
      Unicode should be essential at least to make proper crediting of many many
      peoples possible!) follows here:
      
       - add missing channel->lock unlocking/locking and fix some comments
         in ide_timer_expiry()
      
       - allow PCI drivers to disable autodma in ->init_dma()
         (bug introduced in IDE 97, affects sl82c105.c only)
      
         noticed by Russell King
      
       - alim15x3.c, if revision is <= 0x20 disable autodma
      
       - remove unneeded checks (drive.dn > 3) from pdc202xx.c and sis5513.c
      
       - use block layer wrappers
      
      And my additions follow:
      
       - Fix TCQ code. Patch based on work by Alexander Atanasov.
      
       - Use the FreeBSD derived request handler return values:
      
      	ATA_OP_FINISHED
      	ATA_OP_CONTINUES
      	ATA_OP_RELEASED
      	ATA_OP_READY	/* for status ready reporting during poll */
      
       - PMAC compilation fix by Paul Mackerras.
      
       - Simplify the ata_status_poll function significantly.
      
       - Fix logic used to prevent drive IRQ assertion from drive on channels sharing
         our interrupt.
      
      NOTE: We will move it later to the time where a request is really finished
      soon.
      
       - Don't use ata_busy_poll() use ata_status_poll() instead. This increases code
         unification.
      
      NOTE: We should maybe invent some way to prevent the error recovery path to be
      taken at all. In esp to prevent ata_error from trying to reissue commands.
      2dbd1502
  4. 20 Jun, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] IDE 93 · 68c14a04
      Martin Dalecki authored
       - Revert patch number 92. It turned out to be broken behind hope.  Personally I
         attribute this to the recent heat wave over here and apologize for the
         problems this may have caused. Turned out that my note about the change
         beeing dnagerous in the last change log was more then true...
      
       - Locking issues for ioctl handling.
      
       - Remove waiting_for_dma bit field. Use IDE_DMA bit flag instead.
         Apply this bit globally and not in the corresponding implementation
         functions.
      68c14a04
  5. 16 Jun, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.21 ide 92 · 78929a18
      Martin Dalecki authored
       - Finally unify task_in_intr and task_mulin_intr. One crucial code path less to
         watch out, but a quite dangerous step in itself. PIO reading is functional
         again. The next step will be the unification of the write path of course.
      
       - Introduce a small helper for the execution of task file commands which
         basically just send a simple command down to the drive.
      
       - Add a buffer parameter to ide_raw_taskfile allowing to unify the handling of
         ioctl and normal ide_raw_taskfile request.
      
       - Fix some small function pointer type mismatches.
      
      Apply more host chip controller clenups by Bartlomiej:
      
           - move setting drive->current_speed from *_tune_chipset()
             to ide_config_drive_speed()
      
          cmd64x.c:
      	- convert cmd64x_tuneproc() to use ata-timing library
      	- clean cmd64x_tune_chipset() and cmd680_tune_chipset()
      
          hpt366.c:
      	- remove empty timings table
      
          it8172.c:
      	- kill prototypes
      	- update to new udma_setup() scheme
      
          - misc cleanups
      78929a18
  6. 14 Jun, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.21 IDE 91 · 826267d3
      Martin Dalecki authored
       - Realize that the only place where ata_do_taskfile gets used is ide-disk.c
         move it and its "friends' over there.
      
       - Unify the do_request method for disk devices. This saves quite a lot of code.
      
       - Make task_muin_intr and task_in_intr use the same busy status checks on
         entry.
      
       - Unfold get_command at the single only place where it's used.
      
       - Add missing __ata_end_request on kill_rq path.
      
       - Rename udma_tcq_taskfile() to udma_tcq_init to make the code look like to
         normal udma_init. Revert the logics of udma_init and it's
         implementations to mirror that of udma_tcq_init().
      
       - Fix a tiny bug in pmac_udma_init() where it was reporting the wrong value up
         on failure.
      
       - Revert the logics of udma_start(). It's called from udma_init context.
         Realize that it is always returning ide_started. Make it self and the
         implementations of it return void.
      826267d3
  7. 11 Jun, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.21 IDE 87 · d861eb67
      Martin Dalecki authored
       - Sync with 2.5.21
      
       - Don't call put_device inside idedisk_cleanup(). This is apparently triggering
         some bug inside the handling of device trees. Or we don't register the device
         properly within the tree. Check this later.
      
       - Further work on the channel register file access locking.  Push the locking
         out from __ide_end_request to ide_end_request.  Rename those functions to
         respective __ata_end_request() and ata_end_request().
      
       - Move ide_wait_status to device.c rename it to ata_status_poll().
      
       - Further work on locking scope issues.
      
       - devfs showed us once again that it changed the policy from agnostic numbers
         to unpleasant string names.
      d861eb67
  8. 09 Jun, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.20 IDE 86 · 467b45ea
      Martin Dalecki authored
      Most importantly this makes ide-scsi work again, which I broke
      IDE 85. And we are starting to be serious about locking issues.
      However the locking issues will take some patches until they stabilize.
      
       - Add spin locks in ata_special_intr.
      
       - Add Server Works CSB6 handling by Matt Domsch.
      
       - Atari updates by Geert Uytterhoeven:
         * irq_lock is used in more than one file, so make it global and rename it
           to ide_irq_lock
         * `hwgroup' is dead, use `channel' instead
         * ide_irq_lock depends on ATA_ARCH_LOCK, not on m68k or APUS
      
       - Small janitorial tidbits by Angus Sawyer.
      
       - PIIX driver updates by Vojtech Pavlik:
      
         * Removes the CONFIG_BLK_DEV_PIIX_TRY133 option. I've got an official
           statement from Intel saying that the controller definitely isn't intended
           to operate at this speed and doing so may cause severe trouble.
      
         * Fixes a bug in ata-timing.c, where EIDE timing data was discarded by
           accident.
      
         * Fixed a couple bugs in the Artop driver (UDMA clocks, active/recovery
           timing), 8-bit timing merging.
      
         * Removes an unused variable from piix.c
      
       - Move locking out from ide_set_handler(). There are places where it incurred
         too frequent lock grab and release or where we did miss to lock against
         concurrent hardware access.
      
         Generally the locking appears to be too fine grained and inconsistent at many
         places. This is the first cut. We will deal with it step by step.
      
       - Make sure message string is initialized even if FANCY_STATUS_DUMPS is
         disabled.
      
       - Don't lock directly inside udma_init and implementations of this method.
      
       - Guard against REQ_SPECIAL issued by the SCSI layer on us. Use REQ_PC in
         ide-scsi.c instead.
      467b45ea
  9. 05 Jun, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.20 IDE 85 · 856dd13d
      Martin Dalecki authored
       - Work a bit on the automatic CRC error recovery handling. System still hangs.
         But one thing for sure - we don't have to use any specialized irq handler for
         it.
      
       - Since ioctl don't any longer submit requests to the queue without
         rq->special set, we can safely remove args_error handling from
         start_request.
      
       - Make REQ_SPECIAL usage in ide-floppy obvious.
      
       - Use REQ_SPECIAL everywhere instead of REQ_DRIVE_ACB. This is actually a bit
         dangerous but should work as far as I can see.
      
       - Unfold the now not REQ_SPECIAL specific dequeing part of ide_end_drive_cmd().
         Turns out that we can thereafter remove the calls to ide_end_drice_cmd() at
         places where the request type isn't REQ_SPECIAL all any longer. (tcq.c)
      
      
       - After the above operation it turns out that there are just two places where
         ide_end_drive_cmd remains, namely: ata_error, task_no_data_intr
         drive_cmd_intr.
      
         We can avoid it by changing the logics in ata_error a slightly.
      
         So now just to cases remain where ide_end_drive_cmd remains used:
         drive_cmd_intr and task_no_data_intr.
      
       - Now looking  a bit closer we can realize that drive_cmd_intr and
         task_no_data_intr can be easly merged together, since the usage of
         task_no_data_intr implied taskfile.sector_number == 0.
      
       - Use one single ata_special_intr function for the handling of interrupts
         submitted through ide_raw_cmd.
      
       - Move the remaining artefacts of ide_end_drive_cmd directly to
         ata_special_intr. Oh we don't need to check for REQ_SPECIAL any longer there,
         since the context is already known.
      
       - Set the ata_special_intr handler and command type directly inside
         ide_raw_taskfile to save code.
      856dd13d
  10. 03 Jun, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] ]PATCH] 2.5.20 IDE 83 · 7723316a
      Martin Dalecki authored
       - Remove last parameter from ide_dump_status. This information is now
         permanently present in device->staus field, so there is not need to pass it
         around.
      
       - Patch for DVD read through ide-scsi. There is the possibility that we can get
         request structures passed down, which don't have the queue field set.
         At lest on the BIO code path this seems to be something worth further
         investigation. Found by Adam J. Richter. (Jens?)
      
       - Revert my change to the hostdata handling. I did get it wrong about the way
         host structures are allocated by the generic SCSI layer. It plays
         tricks there.
      
       - piix driver updates by Vojtech Pavlik.
      
       - We have a ata_out_regfile, so we should have ata_in_regfile too.
      7723316a
  11. 02 Jun, 2002 3 commits
    • Martin Dalecki's avatar
      [PATCH] 2.5.19 IDE 81 · 08446d85
      Martin Dalecki authored
       - Don't use ata_taskfiles cmd field for drive status reporting,
         we can now simply use drive->status instead.
      
       - Unify command type parser entries which could be unified due to the
         unification of corresponding interrupt handlers.
      
       - Eliminate reading parameter from ata_do_udma(). We have this information
         already in the rq. This allows us to merge several methods.
      
       - Rename XXX_udma to udma_setup, since we have finally settled up on this
         semantics.
      
       - Simplify tons of host chip code by removing wrapper functions.
      08446d85
    • Martin Dalecki's avatar
      [PATCH] 2.5.19 IDE 80 · 76d04538
      Martin Dalecki authored
       - Sanitize the handling of the ioctl's and fix a bug on the way in dealing with
         the WIN_SMART command where arguments where exchanged.
      
       - Finally sanitize ioctl further until it turned out that we could get rid of
         the special request type REQ_DRIVE_CMD entierly. We are now using
         consistently REQ_DRIVE_ACB.
      
         One hidden code path less again!
      
       - Realize the ide_end_drive_cmd can be on the REQ_DRIVE_ACB only for ioctl() to
         a disk. Eliminate it's usage from device type driver modules.
      
       - Remove command member from struct  hd_drive_task_hdr and place it in strcut
         ata_taskfile. It is not common between the normal register file and HOB.
      
         We will have to introduce some helper functions for particular command types.
      76d04538
    • Martin Dalecki's avatar
      [PATCH] 2.5.19 IDE 78 · 8b4e98ea
      Martin Dalecki authored
       - Move ide_fixstring() from ide.c to probe.c, since this is the place, where it's
         most used.
      
       - Remove GET_STAT() - it's not used any longer.
      
       - Remove last parameter of ide_error. Rename it to ata_error().
      
       - Don't use ide_fixstring in qd65xx.c host chip driver. The model name is
         already fixed in probe.c.
      
       - Invent ata_irq_enable() for the handling of the trice nIEN bit of the
         control register.  Consistently use ch->intrproc method every time we toggle
         this bit.  This simply wasn't the case before!
      
       - Disable interrupts on a previous channel only when we share them indeed.
      
       - Eliminate simple drive command handling function drive_cmd.
      
       - Simplify the ioctl handler. Move it to ioctl, since that's the only place
         where it's actually used.
      8b4e98ea
  12. 31 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.19 IDE 77 · 77da0c5c
      Martin Dalecki authored
       - Get rid of SELECT_DRIVE macro. Start to move all direct hardware access
         functions in to one place.
      
       - Get rid of SELECT_MASK macro. Realize that the mask is always equal 0.
         Simplify the maskproc therefore.
      
       - Get rid of GET_STAT and OK_STAT macros as well.
      
       - hpt366 cleanups by Andrej Panin.
      
       - Artop driver update by Franz Sirl.
      77da0c5c
  13. 22 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.17 IDE 69 · 80d461c8
      Martin Dalecki authored
       - Apply small host chip driver cosmetics by Andrej xxx Panin
         and Vojtech Pavlik.
      
       - Remove support for "disc recovery time". It could only supposedly
         help with really simplistic broken devices from the past,
         which didn't have moderately sophisticated controllers.
         And finally Vojtech voted for it as well... so I just trust him.
      
       - Apply icside host chip driver and other ARM related updates by Russell King,
         which finally settle the "portability" work a bit, well hopefully.
      80d461c8
  14. 17 May, 2002 2 commits
    • Martin Dalecki's avatar
      [PATCH] 2.5.15 IDE 64 · acff0d93
      Martin Dalecki authored
      Let's just get over with  this before queue handling will be targeted again...
      
      - Implement suggestions by Russell King for improved portability and separation
         between PCI and non PCI host code.
      
      - pdc202xxx updates from Thierry Vignaud.
      
      - Tiny PIO fix from Tomita.
      acff0d93
    • Martin Dalecki's avatar
      [PATCH] 2.5.15 IDE 61 · 938f5b72
      Martin Dalecki authored
      - Fix typo in pdc202xx driver.
      
      - Fix locking order in ioctl.
      
      - Fix wrong time_after usage introduced in 60. Maybe the fact I always get is
         wrong is related to the fact that I'm using the mouse with the left hand!?
      
      - Apply arch-clean-2 by Bartlomiej Zolnierkiewicz.
      
      - Don't disable interrupts during ide_wait_stat(). I see no reason too.
      
      - Push flags down from hwgroup to the ata_chaannel structure.
      
      - Apply small fixes from Franz Sirl to make AEC6280 working properly again.
      938f5b72
  15. 11 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.15 IDE 60 · bdff23c1
      Martin Dalecki authored
       - Rewrite ioctl handling.
      
       - Apply fix for hpt366 "hang on boot" by Andre.
      
       - Remove stale XXX_tune_req. It was no longer used.
      
       - Propagate rq through ide_error(), ide_end_drive_cmd(), ide_dump_status(),
         ide_wait_stat().
      
       - Push the current drive down to ata_channel from hwgroup.
      
       - Push the timer down to the ata_channel structure. Most probably it will end
         at the drive.
      bdff23c1
  16. 09 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.14 IDE 59 · cbb48783
      Martin Dalecki authored
      Basically PCI driver handling reorganization. This is one step further
      ahead toward the goal of fully modularized host chip drivers.
      
       - Adjust ide-scsi to the new error handling. Just don't try any device
         resets there.
      
       - Add unmasking of IRQ per default to the PMac PCI code.
      
       - Split up the crap table from ide-pci. Let the corresponding drivers do
         registration of the functions they provide. This small change makes
         this patch rather big.
      
       - Hard-code the number of ports requested for DMA engines. They are always
         precisely 8 on PCs. If you hove something different to deal with,
         well then please just provide your own init_dma method.
      
       - Remove the HDIO_GETGEO_BIG ioctl. Patch by Andries Brouwer. Applies
         unmodified.
      
       - Make ON_BOARD be equal 0, so we can spare ourself some typing in structure
         initialization.
      
       - Normalize the terminology in the host chip drivers. It will make spotting
         the tons of common code found there later easier.
      cbb48783
  17. 07 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] IDE 58 · 96a878c0
      Martin Dalecki authored
       - m68k fixes by Roman Zippel.
      
       - CDROM PIO mode fix by Osamu Tamita.
         (You are true "Hawk-eye" hovering over my head! Respect - and many Thanks.)
      
       - Virtualize the udma_enable method as well to help ARM and PPC people.  Please
         please if you would like to have some other methods virtualized in a similar
         way - just tell me or even better do it yourself at the end of ide-dma.c.
         I *don't mind* patches.
      
       - Fix the pmac code to adhere to the new API. It's supposed to work again.
         However this is blind coding... I give myself 80% chances for it to work ;-).
      96a878c0
  18. 06 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.14 IDE 55 · fb0bbfda
      Martin Dalecki authored
       - Update HPT374 driver carried over from 2.4.xx series by Andrew Morton.
         Resync it with the recent host chip driver changes, or better the
         introduction of an API at all.
      
       - Consolidate the handling of device ID byte order in one place.
         This was spotted and patched by Bartomiej onierkiewicz.
      
       - Eliminate CONFIG_BLK_DEV_IDEPCI - it's duplicating the functionality of the
         already present and fine CONFIG_PCI flag and if we are a PCI host, we are
         indeed very likely to need host chip support anyway.
      
       - Remove some redundant info about the model and channel number from
         /proc/ide. Remove the binary entries not helpful to the user, and not used
         by any program and redundant to corresponding ioctls.
      
       - Properly return udma_read and udma_write values in taskfile.
      
       - Only initialize XXX_udma to the default handlers if it has not been
         initialized by the host chip initialization.
      
      I have enabled spin lock debugging and can see that on device
      flush the spin locks get wrong counts... no problems elsewher ethus
      far. I will re check them next time around.
      fb0bbfda
  19. 05 May, 2002 3 commits
    • Martin Dalecki's avatar
      [PATCH] [PATCH 2.5.13 IDE 54 · 5e229c99
      Martin Dalecki authored
       - Finish the changes from patch 53. ide_dma_actaion_t is gone now as well as
         whole hidden code paths associated with it. I hope I didn't mess too many
         things up with this, since the sheer size of the changes make them sensitive.
         (Tested on tree different host chip sets so it shouldn't be too bad...)
      
         Just still some minor cleanup remaining to be done in this area. The tags
         lefts there are intentional.
      
         In esp. the ide_dma_on method in cy82c693 looks suspicious.
      
         Using udma_enable in ide-cd.c, ide-floppy.c and ide-tape.c is suspicious as
         well. We have just uncovered it.
      
         In the next round we will concentrate on the fixes people did send me
         last time.
      5e229c99
    • Martin Dalecki's avatar
      [PATCH] 2.5.13 IDE 53 · 3ddddcf2
      Martin Dalecki authored
       - Start splitting the functions for host chip handling in to separate entities.
         This change is quite sensitive and may cause some trouble but it's for
         certain worth it anyway, because it should for example provide a much better
         infrastructure for th handling of different architectures.
      3ddddcf2
    • Martin Dalecki's avatar
      [PATCH] 2.5.13 IDE 52 · ab08629c
      Martin Dalecki authored
      Adapted from patch Bar³omiej ¯o³nierkiewicz:
      
       - make straight8 a flag in ata_channel instead of byte
      
       - don't store tables as code in drive_is_flashcard()
         and ide_xfer_verbose()
      
       - fix init_gendisk() (due to 2.5.13 blksize_size[] change)
      
       - compress region requesting/releasing
         in channel_probe() and ide_unregister()
      
       - clean a bit ide_setup_ports()
      
      Start of DMA handling tratment.
      
       - Fix the parameters to ide_build_dmatable() to be channel and request.
         Rename it to udma_new_table(). udma will mark arch specific functions
         later.
      
       - Let ide_start_dma() take the request directly as an arguemnt. Rename it to
         ata_start_dma(). After realizing that the usage of the func argument of it
         was bogous and that nobody is using rwproc we where able to remove both of
         them.
      
       - Fix ide_destroy_dmatable() to take the channel as argument and rename it to
         udma_destroy_table(). This function should have possible architecture
         specific implementation as well at some point in time.
      
       - Split up the TCQ UDMA handling stuff in to proper functions. Jens must has
         been dreaming as he introduced them ;-).
      ab08629c
  20. 03 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.13 IDE 51 · f015724e
      Martin Dalecki authored
       - Synchronize with Jens.  Applying tons of janitorian stuff to his TCQ
         code.  Making functions static where appropriate and so on...
         Marking the config entry for it experimental and so on.  His
         changelog:
      
      	2.5.13 now has the generic tag support that I wrote included,
      	here's an IDE TCQ that uses that.  Changes since the version
      	posted for 2.5.12:
      
      	Fix the ide_tcq_invalidate_queue() WIN_NOP usage needed to clear
      	the internal queue on errors.  It was disabled in the last
      	version due to the ata_request changes, it should work now.
      
      	Remove Promise tcq disable check, it works just fine on Promise
      	as long as we handle the two-drives-with-tcq case like we
      	currently do.
      f015724e
  21. 02 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.12 IDE 49 · 8f0e343b
      Martin Dalecki authored
      - Fix compilation of piix.c
      
      - Remove the PADAM_ prefix from sleep hwgroup member.
      
      - Fix Pacific Digital host chip driver API.
      
      - Fix Tekram host chip driver API.
      
      - Fold hwif_unregister() directly in to channel code.
      8f0e343b
  22. 30 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.11 IDE 46 · 4a58bd1a
      Martin Dalecki authored
      - Remove the specific CONFIG_IDEDMA_PCI_WIP in favor of using the generic
         CONFIG_EXPERIMENTAL tag. (Pointed out by Vojtech Pavlik).
      
      - Change the signature of the IRQ handler to take the request directly as a
         parameter. This doesn't blow the code up but makes it much more obvious and
         finally it's reducing the number of side effects of the hwgroup->rq field.
      
      - A second sharp look after the above change allowed us to remove the wrq field
         from the hwgroup struct. It's just not used at all.
      
      - Change the signature of the end_request member of struct ata_operations to
         take the request as a second argument. Similar for __ide_end_request()
         and ide_end_request().
      
      - Remove BUG_ON() items just before ide_set_handler(). The check in
         ide_set_handler is clever enough now.
      
      - Remove the rq subfield from ide-scsi packet structure. We have now the
         request context always in place. Same for floppy.
      
      - Let the timer expiry function take the request as a direct argument.
      
      Yes I know those changes are extensive. But they are a necessary step
      in between for the following purposes:
      
      - Consolidate the whole ATA/ATAPI stuff on passing a single unified request
         handling object. Because after eliminating those side effects it's far easier
         to see what's passed where.
      
      - Minimizing the amount of side effects in the overall code. That's a good
         thing anyway and it *doesn't* cost us neither performance nor space, since
         the stack depths are small anyway here.
      
      - Minimizing the usage of hwgroup - which should go away if possible.
      4a58bd1a
  23. 28 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.10 IDE 44 · 045c90fe
      Martin Dalecki authored
      Reduce the "rain forest" of pointers a bit.
      
      - Use the channel info from the drive instead of from hwgroup where possible.
         Since we have now a direct association between a channel and irq, we can fix
         the handler for unexpected interrupts to don't have to iterate over multiple
         possibilities.
      
      - Finally it was just possible to remove the circular list of channels
         associated with a hwif. The hwif member of struct hwgroup_s as well as
         next member if struct ata_channel are gone.
      
      - Unify ide_build_sglist() and raw_build_sglist() in to one function.  Use the
         queue associated with a request in the case of a CMD request there instead of
         referencing the device minor number. This will be pushed even further later.
      045c90fe
  24. 26 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.10 IDE 42 · 9dbf0015
      Martin Dalecki authored
      - Streamline the usage of sector_t over the strategy routines in question a
         bit. Streamline the do_request code in ide-disk.c.
      
      - Improve the readability of start_request in ide.c.
      
      - Remove obsolete/nowhere used stuff from hdreg.h.
      
      - Splitup special_t into classical flag field.
      
      - Use only a single field to determine the capacity of a drive.  Make this
         field and the code paths it follows as far as possible use the sector_t
         instead of a hard coded integer types.  This increases the chances that at
         some distant point in time we will indeed be able to use 64 bit wide sector_t
         entities. (Disks are getting huge those times now...)
      9dbf0015
  25. 25 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.10 IDE 41 · cf530091
      Martin Dalecki authored
       - Revoke the TCQ stuff. Well having it for some time showed just nicely what
         has to be done before it can be included cleanly. But it's just not ready
         yet.
      
         For more explanations please simply track the usage of the special field of
         struct request - *both* in the generic request handling code and in overall
         driver code.
      cf530091
  26. 22 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.8 IDE 40 · 45fbecb1
      Martin Dalecki authored
      - Make the ide-cd driver usable again in DMA mode by adapting it to the TCQ
         related request handling changes and fixing some other minor stuff related to
         this. This patch is ugly like hell I know. Cleanup will follow separately.
         It was hard enough to make this going agian at all.
      45fbecb1
  27. 18 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.8 IDE 39 · d8bffa93
      Martin Dalecki authored
      Synchronize with Jens Axobe:
      
      - Congruent ATA_AR_POOL fix to the ATA_AR_STATIC memmory corruption fix.
      
      - Multi sector write handling fix.
      
      - Fix drive capability deduction.
      
      - Various other minor fixes.
      d8bffa93
  28. 16 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.8 IDE 37 · 0c0a9d38
      Martin Dalecki authored
      - Don't abuse the sense field for passing failed packet_commands in struct
         packet_command use a new field instead.
      
      - Apply minor bits forwarded by Dave Jones to me.
      
      - Fix ide_raw_taskfile() to flag the ar used there to be no subject of free_req
         list management. This solvs the "hang after /proc/ide read" problem, which
         was in fact a memory corruption problem.
      0c0a9d38
  29. 15 Apr, 2002 1 commit
    • Jens Axboe's avatar
      [PATCH] 2.5.8 IDE 35 · 0c686811
      Jens Axboe authored
      - Expand configure help options a bit
      - Fix xconfig bug
      - Decrease queue depth if a command takes too long to complete
      - Test master/slave stuff. It works, but one device can heavily starve
         another. This is the simple approach right now, means that one device
         will wait until the other is completely idle before starting any
         commands This is not necessary since we can have queued commands on
         both devices at the same time. TODO.
      - Add proc output for oldest command, just for testing.
      - pci_dev compile fixes.
      - Make sure ide-disk doesn't BUG if TCQ is not used, basically this was
         fixed by off-loading the using_tcq setting to ide-tcq.
      - Remove warning about 'queued feature set not supported'
      - Abstract ide_tcq_wait_dataphase() into a function
      0c686811
  30. 14 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.8-pre3 IDE 33 · 3e11aea0
      Martin Dalecki authored
      - Kill unneded parameters to ide_cmd_ioctl() and ide_task_ioctl().
      
      - Apply Petr Vendrovecs fix for 32bit ver 16bit transfers.
      
      - Make CD-ROM usable again by guarding the generic routines against request
         field abuse found there. We will try to convert this driver to the just to be
         finished struct ata_request after the generic changes stabilize a bit.
         The strcut ata_taskfile and struct ata_request merge to be more preciese.
      3e11aea0
  31. 10 Apr, 2002 2 commits
    • Martin Dalecki's avatar
      [PATCH] 2.5.8-pre3 IDE 31 · 17b581c6
      Martin Dalecki authored
      - Integrate the TCQ stuff from Jens Axboe. Deal with the conflicts, apply some
         cosmetic changes. We are still not at a stage where we could immediately
         integrate ata_request and ata_taskfile but we are no longer far away.
      
      - Clean up the data transfer function in ide-disk to use ata_request structures
         directly.
      
      - Kill useless leading version information in ide-disk.c
      
      - Replace the ATA_AR_INIT macro with inline ata_ar_init() function.
      
      - Replace IDE_CLEAR_TAG with ata_clear_tag().
      
      - Replace IDE_SET_TAG with ata_set_tag().
      
      - Kill georgeous ide_dmafunc_verbose().
      
      - Fix typo in ide_enable_queued() (ide-tcq.c!)
      
      Apparently there still problems with a TCQ enabled device and a not enabled
      device on the same channel, but let's first synchronize up with Jens.
      17b581c6
    • Martin Dalecki's avatar
      [PATCH] 2.5.8-pre3 IDE 30 · a87cd868
      Martin Dalecki authored
      - Eliminate ide_task_t and rename struct ide_task_s to struct ata_taskfile.
         This should become the entity which is holding all data for a request in the
         future. If this turns out to be the case, we will just rename it to
         ata_request.
      
      - Reduce the number of arguments for the ata_taskfile() function. This helps to
         wipe quite a lot of code out as well.
      
      This stage is not sensitive, so let's make a patch before we start to integrate
      the last work of Jens Axboe.
      a87cd868
  32. 09 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.8-pre2 IDE 29b · 88da4c77
      Martin Dalecki authored
      - Eliminate the mate member of the ata_channel structure. The information
         provided by it is already present. This patch may have undesirable
         effects on the ns87415.c and trm290.c host chip drivers, but it's worth
         for structural reasons to have it.
      
      - Kill unused code, which was "fixing" interrupt routing from ide-pci.c Don't
         pass any "mate" between the functions there.
      
      - Don't define SUPPORT_VLB_SYNC unconditionally in ide-taskfile.c
      
      - Apply Vojtech Pavliks fix for piix host-chip driver crashes.
      
      - Add linux/types.h to ide-pnp.c.
      
      - Apply latest sis5513 host chip driver patch from by Lionel Bouton by hand.
      
      - Apply patch by Paul Macerras for power-mac.
      
      - Try to make the ns87415 driver a bit more reentrant.
      88da4c77
  33. 08 Apr, 2002 1 commit
  34. 02 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.7 IDE 28a · 5be8243b
      Martin Dalecki authored
      - Apply Pavel Macheks suspend resume double resume fix.
      
      - Finally remove the busy field for ata_operations and replace it with
         MOD_INC_USE_COUNT and MOD_DEC_USE_COUNT.
      
      - Fix ali15xx chipset support by removing initialization differences,
         apparently caused by mislead interpretation of the specs or a mismatch
         between the specification and reality.
      
      - Guard calls to ide_set_handler with checks to see whatever the previously
         installed IRQ handler already served it's purpose.
      
      - Convert timeout checks on poll_timeout to the time_before() interface.
      
      - Consolidate the two different IRQ handlers for multi mode PIO writes into
         one. The problems remain the same but at least now we will only have to
         tangle one single problem.
      5be8243b