An error occurred fetching the project authors.
  1. 04 Jun, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.20 IDE 84 · a73f75e2
      Martin Dalecki authored
       - Simplify ide_cmd_type_parse by removing the handling of commands which we
         never use.
      
       - Realize that pre_task_out_intr and pre_task_mulout_intr are semanticaly
         identical. Use only pre_task_out_intr(). This allowed us to
         eliminate the prehandler altogether.
      
       - Updated fix for misconfigured host chips by Vojtech Pavlik.
      
       - Be more permissive about ioctl handling to allow device type drivers to do
         they own checks.
      
       - ali14xx cleanups by Andrej Panin.
      
       - Unfold usage ide_cmd_type_parser in tcq.c code. This makes this operation
         local to ide-disk.c. Move it as well as the interrupt handlers used only for
         the handling of disk requests there too.
      
       - Guard against calling handler before the drive is ready for it in
         ata_taskfile()! Well this bug was there before, but right now we inform
         about it.
      
       - Unfold ide_cmd_type_praser in ide-disk.c. Merge the remaining bits of it with
         get_command. Well it's no more.
      
       - Move recal_intr to ide.c - the only place where it's used.
      
      This doesn't change the "mechanics" of the code but it makes it a lot more
      "obvious" what's going on.
      a73f75e2
  2. 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
  3. 02 Jun, 2002 2 commits
    • 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
  4. 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
  5. 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
  6. 17 May, 2002 3 commits
    • Martin Dalecki's avatar
      [PATCH] 2.5.15 IDE 63 · d7e09f7e
      Martin Dalecki authored
      - Propagate the queue handling changes to pmac as well.
      
      - Move set_transfer to ide-taskfile.c this is the only place where it's used
         and it can be made static there. Same applies to ide_ata66_check().
      
      - Move ide_auto_reduce_xfer to ide.c.
      
      - Make ide_cmd() local to the only place where it's used. Rename it to
         drive_cmd(). Don't pass drive_cmd_intr() as parameter.
      
      - Remove ide_next command completion type. Nobody is using it.
      
      - Move ide_do_drive_cmd to ide-taskfile. It's used there and in sub-drivers.
         Not in ide.c. The usage inside the device type drivers is entirely bogus
         inconsistent and so on...
      
      - Kill bogus IRQ masking code. The kernel is supposed to handle this properly.
         We should not try to work against possible bugs in the overall irq handling
         code. Wow this is increasing the systems overall responsibility by a
         significant margin.
      
      - Remove disfunctional pdcadma code. It is only misleading to the user.
      d7e09f7e
    • 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
    • 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
  7. 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
  8. 07 May, 2002 1 commit
    • Martin Dalecki's avatar
      [PATCH] 2.5.14 IDE 56 · 470d15bb
      Martin Dalecki authored
       - Push poll_timeout down from the hwgroup to the channel. We are resetting the
         channel and not a whole hwgroup. This way using multiple pdc202xxx cards
         should magically start to work with multiple performance and resets will no
         longer lock the system.
      
       - Updates for PDC4030 by Peter Denison <peterd@marshadder.uklinux.net>.
      
       - Make ide_raw_taskfile don't care about request buffers. They where always
         NULL.
      
       - Port set multi mode count over from the special setting interface to
         ide_raw_taskfile. Fix errors in the corresponding interrupt handler in one go
         as well. It turned out that this is precisely the same code as in
         task_no_data_intr, so we can nuke it altogether. And finally we have found
         some problems with the set_pio_mode() command which can fail with -EBUSY -
         this is in esp. probably *very* common during boot hdparm usage those days!
         (OK it was masked by reportig too early that it finished...  Crap Crap utter
         crap it was!!!) Right now hdparm should just be extendid to properly
         sync and retry on   -EBUSY and everything should be fine.
      
         And now the 1 Milion EUR question for everybody who loves to put driver
         settings in to /proc:
      
         How the hell could echo > /proc/ide/ide0/settings blah blah blah blah handle
         properly cases like -EIO, -EBUSY and so on??? Having the possibility o do it
         does not mean that it is a good idea to use it.
      
         OK. After realizing the simple fact that quite a lot of low level hardware
         manipulating ioctls may require assistance in usage from proper logic which is
         *very* unlikely to be implemented in a bash (for me preferable still ksh) I
         have made my mind up.
      
      	/proc/ide will be nuked.
      
       - Execute the recalibration for error recovery on precisely the same request as
         the one which failed.
      
       - Remove set geometry.  It's crap by means of standard specification. Because:
      
         1. We rely on the existence of the identify command anyway.
      
         2. This command was obsoleted *before* the identify command existed as far
         as I can see.
      
         2. I'm able to have a look at what other ATA/ATAPI drivers in the wild do:
         They don't do it.
      
       - Just call tuneproc in set_pio_mode() directly - we are already behind the rq
         queue there.
      
       - After we have uncovered the broken logics behind the whole ioctl handling we
         now just have made ide_spin_wait_hwgroup() waiting for a proper somehow
         longer timeout before giving up. This was previously just hiding the broken
         concept of setting ioctl values through /proc/ide/ideX/settings - now it just
         really helps hdparm to not to give up too early. (It shouldn't probably play
         wreck havock on the global driver spin lock as well. I will look in to this
         later.)
      
       - Scrap the non necessary, to say the least, disabling of interrupts for 3,
         read it again please, 3 seconds, on the local CPU inside
         ide_spin_wait_hwgroup().  Spin lock handling needs checking there badly as I
         see now as well...
      
      Hey apparently any "special" requests are gone. We now have only
      to deal with REQ_DEVICE_ACB and REQ_DEVICE_CMD. One of them is still too
      much and will be killed.
      470d15bb
  9. 05 May, 2002 2 commits
    • 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
  10. 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