Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8bb6030b authored by Jeff Garzik's avatar Jeff Garzik
Browse files

Merge branch 'upstream-fixes'

parents 77ed78e5 7bdd7208
Loading
Loading
Loading
Loading
+16 −14
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@
#include <asm/io.h>

#define DRV_NAME	"ahci"
#define DRV_VERSION	"1.01"
#define DRV_VERSION	"1.2"


enum {
@@ -558,13 +558,15 @@ static void ahci_qc_prep(struct ata_queued_cmd *qc)
	pp->cmd_slot[0].opts |= cpu_to_le32(n_elem << 16);
}

static void ahci_intr_error(struct ata_port *ap, u32 irq_stat)
static void ahci_restart_port(struct ata_port *ap, u32 irq_stat)
{
	void __iomem *mmio = ap->host_set->mmio_base;
	void __iomem *port_mmio = ahci_port_base(mmio, ap->port_no);
	u32 tmp;
	int work;

	if ((ap->device[0].class != ATA_DEV_ATAPI) ||
	    ((irq_stat & PORT_IRQ_TF_ERR) == 0))
		printk(KERN_WARNING "ata%u: port reset, "
		       "p_is %x is %x pis %x cmd %x tf %x ss %x se %x\n",
			ap->id,
@@ -632,7 +634,7 @@ static void ahci_eng_timeout(struct ata_port *ap)
		printk(KERN_ERR "ata%u: BUG: timeout without command\n",
		       ap->id);
	} else {
		ahci_intr_error(ap, readl(port_mmio + PORT_IRQ_STAT));
		ahci_restart_port(ap, readl(port_mmio + PORT_IRQ_STAT));

		/* hack alert!  We cannot use the supplied completion
	 	 * function from inside the ->eh_strategy_handler() thread.
@@ -677,7 +679,7 @@ static inline int ahci_host_intr(struct ata_port *ap, struct ata_queued_cmd *qc)
			err_mask = AC_ERR_HOST_BUS;

		/* command processing has stopped due to error; restart */
		ahci_intr_error(ap, status);
		ahci_restart_port(ap, status);

		if (qc)
			ata_qc_complete(qc, err_mask);
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@
#include <linux/libata.h>

#define DRV_NAME	"ata_piix"
#define DRV_VERSION	"1.04"
#define DRV_VERSION	"1.05"

enum {
	PIIX_IOCFG		= 0x54, /* IDE I/O configuration register */
+4 −2
Original line number Diff line number Diff line
@@ -1575,6 +1575,8 @@ int ata_timing_compute(struct ata_device *adev, unsigned short speed,
	if (!(s = ata_timing_find_mode(speed)))
		return -EINVAL;

	memcpy(t, s, sizeof(*s));

	/*
	 * If the drive is an EIDE drive, it can tell us it needs extended
	 * PIO/MW_DMA cycle timing.
@@ -1595,7 +1597,7 @@ int ata_timing_compute(struct ata_device *adev, unsigned short speed,
	 * Convert the timing to bus clock counts.
	 */

	ata_timing_quantize(s, t, T, UT);
	ata_timing_quantize(t, t, T, UT);

	/*
	 * Even in DMA/UDMA modes we still use PIO access for IDENTIFY, S.M.A.R.T
+1 −1
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@
#define __LIBATA_H__

#define DRV_NAME	"libata"
#define DRV_VERSION	"1.12"	/* must be exactly four chars */
#define DRV_VERSION	"1.20"	/* must be exactly four chars */

struct ata_scsi_args {
	u16			*id;
+1 −1
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@
#include "sata_promise.h"

#define DRV_NAME	"sata_promise"
#define DRV_VERSION	"1.02"
#define DRV_VERSION	"1.03"


enum {
Loading