)]}'
{
  "commit": "513daadd152ddbf32cb6d0447ddba3427ce5b8e8",
  "tree": "994549525a3830b496af552dee1fd73227f36373",
  "parents": [
    "362ebd83adb4ff2761b6f49a3570f501c3c7e467"
  ],
  "author": {
    "name": "Suleiman Souhlal",
    "email": "suleiman@google.com",
    "time": "Mon Mar 26 23:03:20 2007 +0200"
  },
  "committer": {
    "name": "Bartlomiej Zolnierkiewicz",
    "email": "bzolnier@gmail.com",
    "time": "Mon Mar 26 23:03:20 2007 +0200"
  },
  "message": "ide: use correct IDE error recovery\n\nIDE error recovery is using IDLE IMMEDIATE if the drive is busy or has DRQ set.\nThis violates the ATA spec (can only send IDLEÂ IMMEDIATE when drive is not\nbusy) and really hoses up some drives (modern drives will not be able to\nrecover using this error handling).  The correct thing to do is issue a SRST\nfollowed by a SET FEATURES command.  This is what Western Digital recommends\nfor error recovery and what Western Digital says Windows does. Â ItÂ also does\nnot violate the ATA spec as far as I can tell.\n\nBart:\n* port the patch over the current tree\n* undo the recalibration code removal\n* send SET FEATURES command after checking for good drive status\n* don\u0027t check whether the current request is of REQ_TYPE_ATA_{CMD,TASK}\n  type because we need to send SET FEATURES before handling any requests\n* some pre-ATA4 drives require INITIALIZE DEVICE PARAMETERS command before\n  other commands (except IDENTIFY) so send SET FEATURES only if there are\n  no pending drive-\u003especial requests\n* update comments and patch description\n* any bugs introduced by this patch are mine and not Suleiman\u0027s :-)\n\nSigned-off-by: Suleiman Souhlal \u003csuleiman@google.com\u003e\nAcked-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c193553f6fe749e88724e4a63f812179dde309c5",
      "old_mode": 33188,
      "old_path": "drivers/ide/ide-io.c",
      "new_id": "0e0280076fcde4b1274d5dee331e547509a3f335",
      "new_mode": 33188,
      "new_path": "drivers/ide/ide-io.c"
    },
    {
      "type": "modify",
      "old_id": "5523c52fee7a2ca6debd1a4d81374e6e14d6798d",
      "old_mode": 33188,
      "old_path": "drivers/ide/ide-iops.c",
      "new_id": "1ee53a551c3adf6fe6397aea0945c5f1f4cbff20",
      "new_mode": 33188,
      "new_path": "drivers/ide/ide-iops.c"
    },
    {
      "type": "modify",
      "old_id": "34f2676b3c625a20ac5a93e6251e5be006b39dbf",
      "old_mode": 33188,
      "old_path": "include/linux/ide.h",
      "new_id": "58564a199862fe1011fe9c3f3b0aac755114d07c",
      "new_mode": 33188,
      "new_path": "include/linux/ide.h"
    }
  ]
}
