An error occurred fetching the project authors.
  1. 05 Jul, 2002 1 commit
  2. 04 Jul, 2002 1 commit
    • James Bottomley's avatar
      [PATCH] fix SCSI driverfs for IDE panic on boot. · 6fe152cf
      James Bottomley authored
      This panic was reported to lkml by Anton Altaparmakov.  The code added to
      partitions/check.c to add partitions to driverfs requires preparation by the
      calling entity.  There's a NULL pointer check to see if the calling entity
      actually did the preparation, but IDE forgets to clear the area it kmalloc's
      for struct genhd so the pointer contains junk.
      
      The fix is just to clear the struct genhd before IDE uses it.
      6fe152cf
  3. 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
  4. 14 Jun, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.21 IDE 89 · caede697
      Martin Dalecki authored
       - fix lock initialization  for device tree handling. Well I would be lucky if
         it would be just a device tree like in Solaris.  But after studying the code
         which goes in right now it appears to develop quite fast in to a "just in
         case" and "ad-hoc" inferface mess we have already in /proc. Shit!
      
         Look for example at the initialization of a device struct. First we have a
         name to the directory encompassing the device and the immediately we fill in
         the georgeous name field - which is enterly unnecessary.
      
       - Pull locking out from the device type drivers do_request handlers.  This
         allowed us to remove the draddy unlocking on entry to start_request.
      
         Much more of host controller rigister acces on crutial code paths is
         now covered by the queue access lock.
      caede697
  5. 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
  6. 05 Jun, 2002 1 commit
  7. 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
  8. 02 Jun, 2002 1 commit
    • 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
  9. 31 May, 2002 2 commits
    • 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
    • Martin Dalecki's avatar
      [PATCH] 2.5.19 IDE 76 · d14d5dc1
      Martin Dalecki authored
       - Since Bartek has released finally an entierly user space based setup
         monitoring utility, we can finally remove the nonfunctional PROC code from
         the host chip drivers. We have preserved it thus far only for documentation
         purposes.
      
       - Use generic bus master DMA setup code. There is nothing wrong with it.
      
       - Make the ide-scsi code actually just allow for one device id per scsi host,
         since we are registering a host per device right now.  This prevents the
         repetitive device recognition. Well registering an SCSI host of every single
         disk out there isn't the proper thing to do. I will deal with that later
         after my visual perception recovers again from already looking too long at
         the SCSI code :-).
      
       - Deal properly with host specific data mapping. (Could be that solves some
         problems with the driver, which where in reality kernel data corruptions.)
      
       - Homogenize flag handling for ATAPI drivers.
      d14d5dc1
  10. 29 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.18 IDE 73 · eb796b17
      Martin Dalecki authored
       - Merge ide-probe.c and ide-features.c in to one single file.  They are
         mutually doing basically the same and in esp. in case of the device ID
         retrieval there *is* quite a lot of code duplication between them.
         ide-geometry.c fits there as well.
      
       - Remove ide_xfer_verbose - it wasn't really used.
      
       - Don't allow check_partition to be more clever then the writer of a driver.
         It was interfering with drivers which check partitions as they go and
         finally if we want to spew something about it - we can do it ourself.
      
       - Eliminate ide_geninit(). We scan for partitions now inside the recently
         introduced attach method. register_disk() is broken by the way and 90% of
         places where it's used it is doing literally nothing. Either some one didn't
         finish some code or the code is basically just junk from the past.
      
         Anyway we grok the partitions now one by one as we detect the channels.
      
       - ide_driveid_update is gone. We don't report the drive id through /proc/ide
         and we don't have to update it any longer on the fly. Still someone out there
         complaining that it went away!?
      
       - Use the global driver spin-lock to protect data structure access in the
         ide_register_subdriver() function instead of blatantly disabling all
         interrupts.
      eb796b17
  11. 28 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.18 IDE 72 · 9c4d67fb
      Martin Dalecki authored
       - Replace ide_delay_50m with mdelay(50). There is absolutely no reason we
         should behave different behaviors whatever IDECS support is enabled or not.
      
       - Kill last parameter of ide_register_hw(). It should return a pointer to the
         interface registered later.
      
       - pdc202xx patches by Bartomiej onierkiewicz.
      
       - ServerWorks chi pset support cleanup by Andrej Panin.
      
       - Move temporarily ide_setup_ports to main.c unfold it in ide-pnp.c.
      9c4d67fb
  12. 22 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.17 IDE 65 · 69479390
      Martin Dalecki authored
       - Apply cleanup of host chip drivers by Bartomiej Zonierkiewicz:
      
           affected drivers - aec62xx.c, alim15x3.c, cmd64x.c, hpt34x.c, sis5513.c
      
           new tuning scheme (wip) part 1:
      	- introduce ratemask()
      	- use ata_timing_mode()
      	- use ide_config_drive_speed() return value
      
           forward port from convert.10:
      	- support for AEC6280, AEC6280R
      	- misc cleanups
      
           I had to fix a small typo in sis5513 code...
      
       - Add a new entry for an old VIA cell hiding as something new.
         (Pointed out by Kees Bakker.)
      
       - Make the synchronization token active resident on the same level as the
         spin lock. They interact with each other.
      
       - Synchronize with linux-2.5.17.
      
       - HPT366 driver typo fix by Andries Brouwer.
      
       - Export udma_tcq_enable() symbol right now. The blk_get_request() is undefined
         as well.
      69479390
  13. 17 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.15 IDE 62a · 5ff49f70
      Martin Dalecki authored
      - Streamline device detection reporting to always use ->slot_name.
      
      - Apply 64 bit sector size fixes to the overall code.
      
      - Push ->handler down to the struct ata_channel.
      
      - Introduce channel group based locking instead of a single global lock for all
         operations. There are still some places where we have preserved the ide_lock.
         We can't lock for queues during device probe and we protect global data
         structures during device registration and unregistration in ide.c with it.
      
      - Start replacement of serialized access to the registers of
         channels which share them with proper host chip driver specific locking.
         This affects the following host chip drivers:
      
         cmd640.c, rz1000, ... ?
      
         Seems some are setting the serialize flag just in case. So better let's do it
         gradually over time.
      
         Well, I still have to think whatever we really need to put channels sharing
         an IRQ line in the same locking group.
      
         From now on the sick concept of a hw group is gone now. We have full blown
         per channel request queues! Hopefully I will be able soon to get my hands on
         a dual Athlon machine to check how this all behaves on a multi SMP machine.
      
      - Move the whole SUPPORT_VLB_SYNC stuff to the only place where it is used: the
         pdc4030 host chip driver.  Eliminate it from the global driver part.
      
      - Eliminate pseudo portability macros from pdc4030. This is a host chip firmly
         based on VLB.
      5ff49f70
  14. 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
  15. 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
  16. 05 May, 2002 1 commit
    • 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
  17. 03 May, 2002 2 commits
    • 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
    • Martin Dalecki's avatar
      [PATCH] 2.5.13 IDE 50 · 4cf319d5
      Martin Dalecki authored
       - Fix wrong usage of time_after in ide.c. This should cure the drive seek
         timeout problems some people where expierencing. This was clarified to me by
         Bartek, who apparently checked whatever the actual code is consistent with
         the comments in front of it. Thank you Bartlomiej Zolnierkiewicz.
      
         I think now that we should have time_past(xxx) in <linux/timer.h>.
      
       - Fix hpt34x.c compilation.
      
       - Minor improvements in ide-pci and some cleanups in ide-probe.c
      
       - Nuke some vastly outdated comments.
      4cf319d5
  18. 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
  19. 01 May, 2002 1 commit
    • Alexander Viro's avatar
      [PATCH] (4/6) blksize_size[] removal · a9e3cad6
      Alexander Viro authored
       - put block size in bdev->bd_block_size, make do_open() and
         check_partition() to set it (see above), switch set_blocksize() and
         block_size() to use of ->bd_block_size.  Remove manipulations with
         blksize_size[] from drivers, remove blksize_size[] itself.
      a9e3cad6
  20. 30 Apr, 2002 2 commits
    • Martin Dalecki's avatar
      [PATCH] 2.5.11 IDE 48 · 4507e7c8
      Martin Dalecki authored
      Tue Apr 30 13:23:13 CEST 2002 ide-clean-48
      
      This fixes the "performance" degradation partially, becouse we don't
      miss that many jiffies in choose_urgent_device() anymore.  However
      choose_urgent_device has to be fixed for the off by one error to don't
      loop for a whole 1/100 second before submitting the next request.
      
      - Include small declaration bits for Jens. (WIN_NOP fix in esp.)
      
      - Fix ide-pmac to conform to the recent API changes.
      
      - Prepare and improve the handling of the request queue. It sucks now as many
         request as possible. This is improving the performance.
      4507e7c8
    • Martin Dalecki's avatar
      [PATCH] 2.5.11 IDE 47 · f7520fcf
      Martin Dalecki authored
      - Rewrite choose_drive() to iterate explicitely over the channels and devices
          on them. It is not performance critical to iterate over this typically quite
          small array of disks and allows us to let them act on the natural entity,
          namely the channel as well as to remove the drive->next field from struct
          ata_device.  Make the device eviction code in ide_do_request() more
          intelliglible.  Add some comments explaining the reasoning behind the code
          there.
      
      - Now finally since the code for choosing the drive which will be serviced next
          is intelliglibly it became obvious that the attempt to choose the next drive
          based on the duration of the last request was entierly bogous. (Because for
          example wakeups can take a long time, but this doesn't indicate that the
          drive is slow.) Remove this criterium and the corresponding accounting
          therefore. Threat all drives fairly right now.
      
      Surprise surprise the overall system throughput increased :-).
      f7520fcf
  21. 28 Apr, 2002 2 commits
    • 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
    • Martin Dalecki's avatar
      [PATCH] 2.5.10 IDE 43 · 5ef2759c
      Martin Dalecki authored
      Some of the following is a bit of sensitive... but anyway it has to be done.
      
      - Scarp "portability" macros ide_request_irq() and ide_free_irq().  What a
         great of a surprise in the face of a kernel nowadays ported to nearly any
         major CPU out there, but apparently no platform needs something special here.
         All of them are just using the normal request_irq() and free_irq(). If some
         unusual platform (read obsolete door blocker) I have overlooked intentionally
         needs something special - please just hack the platform specific
         request_irq() and free_irq()-  they are *far off* from being performance
         relevant. (Hint: You could use cooked default irq values to detect there
         whatever the caller was the ATA driver to decide what to do about it.)
      
      - Kill ide_check_region() ide_request_region() and ide_release_region()
         altogether. Add comments explaining the code there.  Same arguments as above
         apply. Additionally we want to be able at some time to do for example mmapped
         PCI address space access on IA32 instead of port IO.
      
      - Rewrite the initialization code to don't use check_region at all. Add some
         comments there, which explain what's actually happening.
      
      - Fix creeping in of a c99 construct.
      
      - Make the main interrupt handler take a channel as data instead of the
         hwgroup. This is the entity an interrupt is physically associated with. PCI
         interrupt sharing is handled in a generically anyway. Analogously the main
         data entity of a device request queue (q->queuedata) is the device and not
         the hwgroup.  However right now we are only able to push it down to the
         channel level. The intention is to advance the choose_drive() function to
         just check for equal interrupt values for serialization of request and
         thus to get rid of the hwgroup altogether.
      5ef2759c
  22. 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
  23. 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
  24. 16 Apr, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.8 IDE 36 · 87689e36
      Martin Dalecki authored
      - Consolidate ide_choose_drive() and choose_drive() in to one function.
      
      - Remove sector data byteswpapping support. Byte-swapping the data is supported
         on the file-system level where applicable.  Byte-swapped interfaces are
         supported on a lower level anyway. And finally it was used inconsistently.
      
      - Eliminate taskfile_input_data() and taskfile_output_data(). This allowed us
         to split up ideproc and eliminate the ugly action switch as well as the
         corresponding defines.
      
      - Remove tons of unnecessary typedefs from ide.h
      
      - Prepate the PIO read write code for soon overhaul.
      
      - Misc small bits here and there :-).
      87689e36
  25. 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
  26. 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
  27. 10 Apr, 2002 1 commit
    • 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
  28. 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
  29. 02 Apr, 2002 2 commits
    • Martin Dalecki's avatar
      [PATCH] 2.5.7 IDE 27 · ff3c2cbb
      Martin Dalecki authored
      - Make for less terse error messages in ide-tape.c.
      
      - Replaced all timecomparisions done by hand with all the proper timer_after()
         commands.
      
      - Remove the drive niec1 mechanisms alltogether. There are several reasons for
         this:
      
         1. The code implementing it is nonintelliglible and therefore propably
         broken.
      
         2. If we have to invent somethig about sceduling drive IO, it should be done
         on the BIO level.
      
         3. We may in fact interleave with the IO sceduling on the upper layers and
         the results of two overlapping signal filters overlapped with each other can
         be disasterous to the overall throughput. (In fact they *are* most of the
         time.)
      
         4. It was not working if you had intermixed modes on different drives
         DMA versus PIO.
      
         5. Our goal is to have a driver which is able to share the badwidth
         properly and shouldn't needing this kind of "tuning".
      
      - Remove unused nice2 from disk struct.
      
      - Rename channel member of ata_channel to unit and device to dev to
         just prevent wrong interpretations. This prevents constructs like
         channel->channel...
      ff3c2cbb
    • Martin Dalecki's avatar
      [PATCH] 2.5.7 IDE 26 · d1372f76
      Martin Dalecki authored
      - Mark all members of structures, which get jiffies assigned or involved in
         ugly timeout calculations with the prefix PADAM_  for easy spotting. This is
         Polish for "I'm falling down" or "This brings me to the knees" or slag
         comment for "What a sh..". Please be assured that it doesn't sound vulgar.
      
         Please grep for it to see immediately why this nomenclature is justified.
      
      - Rename hwifs_s to ata_channel and eliminate ide_hwifs_t as well as the HWIF
         macro. OK this step makes this patch rather big.
      d1372f76
  30. 11 Mar, 2002 2 commits
    • Martin Dalecki's avatar
      [PATCH] 2.5.6 IDE 19 · 9fbca834
      Martin Dalecki authored
       - Fix oversight in replacement of sti() cli() pairs for data structure
         access protection.  This finally resolvs my problems with the 2.5.6
         kernel series.  Now I'm in fact quite puzzled how it was even possible
         for the system to get into the init stage without this fix..
      
       - Fix usage of CONFIG_BLK_DEV_IDE_MODULES instead of
         CONFIG_BLK_DEV_IDE_MODULE.
      
       - Make idescsi_init global for usage in systems without module support
         enabled.
      
       - Apply Pavels Macheks patch for suspend support.  Whatever some persons
         argue that it's not fully implemented, I think that we are in
         development series right now.  I don't buy the mock-up examples for
         problems with either outdated or broken hardware.  Micro Drives are
         for example expected to be drop in replacements for CF cards in
         digital cameras and I would rather expect them to be very tolerant
         about the driver in front of them.  And then the WB caches of IDE
         devices are not caches in the sense of a MESI cache, they are more
         like buffer caches and should therefore flush them self after s short
         period of inactivity without the application of any special flush
         command.  The upcoming explicit flushing commands in the ATA standard
         are about data integrity guarantees in high reliability systems, like
         DB servers for example, and not about simple cache validity.
      
       - Apply Vojtech Pavliks fix to the VIA host chip initialization code.
      
       - Add missing if-defs around PIO timing tables.
      
       - Fix max() min() related compile warnings in IDE-scsi.
      9fbca834
    • Martin Dalecki's avatar
      [PATCH] 2.5.6 IDE 18 · 4dabe948
      Martin Dalecki authored
      No fixes for new problems which occured since today, just syncup.
      
       - Remove help text about suitable compiler versions, which is obsoleted
         by the overall kernel reality.
      
       - Remove traces of not progressing work in progress code for the
         CONFIG_BLK_DEV_ADMA option as well as the empty ide-adma.c file as
         well as CONFIG_BLK_DEV_IDEDMA_TCQ.
      
       - Remove redundant CONFIG_BLK_DEV_IDE != n check in ide/Config.in. Hugh,
         this is a tricky one...
      
       - Add EXPORT_SYMBOL(ide_fops) again, since it's used in ide-cd.c add a
         note there that this is actually possibly adding the same device twice
         to the devfs stuff.
      
       - Finally change the MAINTAINER entry. Just too many persons bogged me
         about it and it doesn't take me too much time apparently.
      
       - Apply sis.patch.20020304_1.
      
       - Don't call ide_release_dma twice in cleanup_ata, since ide_unregister
         is already calling it for us. Change prototype of ide_unregister to
         take a hwif as parameter and disable an ioctl for removing/scanning
         hwif from the list of handled interfaces. I see no reasons for having
         it and doing it is the fastest DOS attack on my home system I know
         about it. Contrary to the comments found here and there, hdparm
         doesn't use it. There are better hot plugging interfaces coming to the
         kernel right now anyway.
      
       - Wrap invalidate_drives in ide_unregister under the ide_lock instead of
         disabling and enabling interrupts during this operation. There are
         plenty of other places where the IDE drivers are enabling and
         disabling interrupts just to protect some data structures.
      
       - Don't call destroy_proc_ide_drives(hwif) for every single drive out
         there.This routine takes a hwif as a parameter.
      
       - Resync with the instable 2.5.6...
      4dabe948
  31. 06 Mar, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] IDE 17 (not just cleanup) · a925c40f
      Martin Dalecki authored
      This is actually an attempt to remove some stall code from
      this driver. However if some *real* users complain (Not just
      the usuall: "Hey - if someone!" but the "Hey I'm using this!")
      I'm all open to reenable it. Since I prepared this patch
      yerstoday it doesn't contain the ide_module.h fixup. This will
      follow later.
      
      - Don't use the convoluted byte type in ide-pci.c. Just use the proper
         u8instead.
      
      - Move ide_get_or_set_dma_base to the only place where it's used and
         reorganize the code there by killing the unnecessary
         CONFIG_BLK_DEV_IDEDMA_FORCED configuration option.
      
      - Remove unfunctional CONFIG_PKT_TASK_IOCTL code.
      
      - Kill unused ALTSTAT_SCREW_UP code.
      
      - Tons of dead code removed from ide-taskfile.c (#if 0 #endif and
         friends)
      
      - Remove unused IDE_DEBUG macro as well as lots of other name space
         pollution from ide.h.
      
      - Start using the ide_lock spin-lock for protecting access to data
         structures instead of the excessive interrupt disabling games.
      
      - Shorten the proc ouput of the piix initialization module.
      
      - Remove special /proc tape "name" output from ide-tape.c. This was
         redundant data which should only show up on syslog anyway.
      
      - Kill the REALLY_FAST_IO undef from the ide.h. This was a mistake
         present since far too many years in this driver. The proper way to
         deal with broken systems is to define REALLY_SLOW_IO in system
         dependent headers or particular driver files.  We can always
         reintroduce it easy if real users will complain, since OUT_BYTE() and
         similar can be used as hooks. But I don't expect anybody reporting
         about this. Even on the most broken IDE chip in the world (cmd640
         at VLB) undefining this *always* worked for me. Nearly all the code
         pieces in the ide driver code *reverted* it's effects explicitly
         anyway.
      
      - Remove the obsolete CONFIG_BLK_DEV_4DRIVES support. This was supposed
         to support 4 drivers attached at one channel on some older chipsets,
         in esp. Tekram 690CD, in the last century. They where all supposed to
         work at a register set starting at the base address 0x1f0.  Before
         complaining that this is removing functionality, please note that this
         must have been broken for already quite a long time, since the ide
         driver didn't contain the special device selection methods implicated
         by this any longer.  It didn't scan   this port too if PCI host chip
         support was enabled (as it is in all those distributions around
         there).  On the other hand this is the most prominent case of
         incoherent use of the mate member in the struct hwif_s. And please
         think about how big the probability is, that there are systems out
         there, where there are actually 4 drivers on such a channel?
      
      - Streamline module initialization code by removing one shoot functions.
      
      - Make the WAIT_READY value used in case of CONFIG_APM or
         CONFIG_APM_MODULE the default, since this is what really reflects the
         behavior of modern drives. It won't hurt any other case and finally
         removing it is reducing the necessary coverage for overall driver code
         testing/analysis.
      
      - Move the IDE_LARGE_SEEK macro to the only place where it's actually
         used. Replace the IDE_MIN() and IDE_MAX() drivers with the obvious.
         Remove unused SPLIT_WORD and MAKE WORD from the local header.
      
      - Remove CMD640_DUMP_REGS from global scope, since there is no
         development done on this any longer. Finally, the way the host chip
         initialization routines are called changed in the time between allows
         this to remain fully local to the host chip driver in question.
      
      - Some spell checking of comments in the code. (Yeep I have extended my
         Vim to do this the "Word" way with nice undercurl lines... mozilla
         remains to be fixed...)
      a925c40f
  32. 05 Mar, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.6-pre2 IDE cleanup 16 · 24ae9cff
      Martin Dalecki authored
      There is no such a thing like a ide-clean-15. Never was.  But here comes
      what has been done in ide-clean-16:
      
      - Apply a patch for the initialization of the second PIIX channel.
         Found by Daniel Quinlan <quinlan@transmeta.com>
      
      - Apply a patch for the DMA initialization of the serverworks chip.
         Ken Brownfield <brownfld@irridia.com>
      
      - Make the ata_operations methods immune against device type drivers,
         which donot provide them by separating the access to them out. Audit
         them all.
      
      - Resynchronize with 2.5.6-pre1.
      
      - Remove unused IDE_DRIVE_CMD, IDE_DRIVE_TASK, IDE_DRIVE_TASK_MASK,
         IDE_DRIVE_TASKFILE macros.
      
      - Disable configuration of the task file stuff. It is going to go away
         and will be replaced by a truly abstract interface based on
         functionality and *not* direct mess-up of hardware.
      
      - Resync with 2.5.6-pre2.
      
      - Add HPT entries to the fall-back list, since otherwise the driver
         won'trecognize the drives. We will have to make this the default
         behavior for allnot recognized host chip types.
      
      - Fix compilation with no PCI host chip support enabled.
      
      - Apply the overflow fixes for HPT366 by Vojtech Pavlik.
      
      - Kill the one-shoot functions ide_wait_cmd_taks() ide_wait_cmd() by
         moving them to the places where they are actually used. Fix a
         potential buffer overflow on the way.
      
      - Fix usage of ide.c as module. Thanks to Adam J. Richter for figuring
         out what was wrong.
      
      - Various cleanups all along as well as removal of TONS of
         unfinished/dead code.
      
      I think it's sometimes better to remove stuff, which isn't there,
      instead of hoping for a "magical day" where it will be finished.
      24ae9cff
  33. 28 Feb, 2002 2 commits
    • Martin Dalecki's avatar
      [PATCH] 2.5.6-pre1 IDE clean 14 · 48ba6e98
      Martin Dalecki authored
      Most importantly this patch is making ide.c use the
      new automagic for module initialization lists and further
      preparing the rest of the code in question here for proper
      module separation. Despite this the CMOS probe has been removed
      as well... *Iff*, which I don't expect, this breaks anything
      it can be reintroduced easely. During this effort an actual bug
      in the initialization of the main module has been uncovered as well.
      a quite serious BUG has been tagged in ide-scsi.c as well, but
      as far as now I just didn't get along to actually fixing it.
      (The patch is big enough as it is).
      
      Details follow:
      
      - Kill *unused* ide_media_verbose() funciton.
      
      - Remove the unnecessary media and supports_dma fields from
          ide_driver_t.
      
      - Remove the global name field from ide_driver_t struct by pushing it
          down to the places where it's actually used.
      
      - Remove the unused hwif_data field from ide_hwif_t.
      
      - Push the supports_dsc_overlap condition up to the level where it
          belongs: disk type as well.
      
      - Make the initialization of ide main ide.c work with the new module
          initialization auto-magic instead of calling it explicitly in
          ll_rw_block.c This prevents the ide_init() from being called twice. We
          have BTW. renamed it to ata_module_init(), since  ata is more adequate
          then ide and xxx_module_init corresponds better to the naming
          conventions used elsewhere throughout the kernel.
      
          This BUG was there before any ide-clean.  It was worked around by a
          magic variable preventing the second call to succeed.  We have removed
          this variable in one of the previous patches and thus uncovered it.
      
      - Kill proc_ide_read_driver() and proc_ide_write_driver(). The drivers
          already report on syslog which drives they have taken care of.  (Or
          at least they should). In esp. the proc_ide_write_driver() was just
          too offending for me.  Beleve it or not the purpose of it was to
          *request a particular* driver for a device, by echoing some magic
          values to a magic file...
          More importantly this "back door" was getting in the way of a properly
          done modularization of the IDE stuff.
      
      - Made some not externally used functions static or not EXPORT-ed.
      
      - Provide the start of a proper modularization between the main module
          and drivers for particular device types. Changing the name-space
          polluting DRIVER() macro to ata_ops() showed how inconsistently the
          busy (read: module  busy!) field from ide_driver_t
          is currently used across the    different device type modules.
          This has to be fixed soon.
      
      - Make the ide code use the similar device type ID numbers as the SCSI
          code :-).  This is just tedious, but it will help in a distant
          feature. It helps reading the code anyway.
      
      - Mark repettitive code with /* ATA-PATTERN */ comments for later
          consolidation at places where we did came across it.
      
      - Various comments and notes added where some explanations was missing.
      48ba6e98
    • Martin Dalecki's avatar
      [PATCH] 2.5.6-pre1 IDE cleanup 11 · ce43a9ec
      Martin Dalecki authored
      1. Start of driver tree usage upon suggestion from Pavel Machek.
           This still will needs a lot of further work in the future, but
           the current code doesn't hurt anything and allowa Pavel to work
           further from the base line. In esp. natively implemented
            suspend to file requires this - which I would love to see comming
           in,since I'm quite frequently using a notebook myself.
      
      2. Kill the _IDE_C macro, which was playing games on entierly
           unnecessary declarations inside of header files in esp ide_modes.h
      
      3. Replace the functionally totally equal system_bus_block() and
           ide_system_bus_speed() functions with one simple global
           variable: system_bus_speed. This saves quite a significatn amount of
           code. Unfortunately this is the part, which is makeing this
           patch to appear bigger then it really is...
      
      4. Use ide_devalidate_drive() directly instead of idedisk_revalidate().
      
      5. Kill conditional CONFIG_KMOD as well as some other minor tweaks.
      
      Well this isn't that much in terms of functionality,  but it took me
      quite q bit of time to catch up on the patch-2.5.5.gz ;-)
      ce43a9ec