mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (62 commits) powerpc/85xx: Fix signedness bug in cache-sram powerpc/fsl: 85xx: document cache sram bindings powerpc/fsl: define binding for fsl mpic interrupt controllers powerpc/fsl_msi: Handle msi-available-ranges better drivers/serial/ucc_uart.c: Add of_node_put to avoid memory leak powerpc/85xx: Fix SPE float to integer conversion failure powerpc/85xx: Update sata controller compatible for p1022ds board ATA: Add FSL sata v2 controller support powerpc/mpc8xxx_gpio: simplify searching for 'fsl, qoriq-gpio' compatiable powerpc/8xx: remove obsolete mgsuvd board powerpc/82xx: rename and update mgcoge board support powerpc/83xx: rename and update kmeter1 powerpc/85xx: Workaroudn e500 CPU erratum A005 powerpc/fsl_pci: Add support for FSL PCIe controllers v2.x powerpc/85xx: Fix writing to spin table 'cpu-release-addr' on ppc64e powerpc/pseries: Disable MSI using new interface if possible powerpc: Enable GENERIC_HARDIRQS_NO_DEPRECATED. powerpc: core irq_data conversion. powerpc: sysdev/xilinx_intc irq_data conversion. powerpc: sysdev/uic irq_data conversion. ... Fix up conflicts in arch/powerpc/sysdev/fsl_msi.c (due to getting rid of of_platform_driver in arch/powerpc)
This commit is contained in:
commit
0a95d92c00
101 changed files with 2437 additions and 1394 deletions
|
|
@ -6,7 +6,7 @@
|
|||
* Author: Ashish Kalra <ashish.kalra@freescale.com>
|
||||
* Li Yang <leoli@freescale.com>
|
||||
*
|
||||
* Copyright (c) 2006-2007 Freescale Semiconductor, Inc.
|
||||
* Copyright (c) 2006-2007, 2011 Freescale Semiconductor, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
|
|
@ -157,7 +157,8 @@ enum {
|
|||
IE_ON_SINGL_DEVICE_ERR | IE_ON_CMD_COMPLETE,
|
||||
|
||||
EXT_INDIRECT_SEG_PRD_FLAG = (1 << 31),
|
||||
DATA_SNOOP_ENABLE = (1 << 22),
|
||||
DATA_SNOOP_ENABLE_V1 = (1 << 22),
|
||||
DATA_SNOOP_ENABLE_V2 = (1 << 28),
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
@ -260,6 +261,7 @@ struct sata_fsl_host_priv {
|
|||
void __iomem *ssr_base;
|
||||
void __iomem *csr_base;
|
||||
int irq;
|
||||
int data_snoop;
|
||||
};
|
||||
|
||||
static inline unsigned int sata_fsl_tag(unsigned int tag,
|
||||
|
|
@ -312,7 +314,8 @@ static void sata_fsl_setup_cmd_hdr_entry(struct sata_fsl_port_priv *pp,
|
|||
}
|
||||
|
||||
static unsigned int sata_fsl_fill_sg(struct ata_queued_cmd *qc, void *cmd_desc,
|
||||
u32 *ttl, dma_addr_t cmd_desc_paddr)
|
||||
u32 *ttl, dma_addr_t cmd_desc_paddr,
|
||||
int data_snoop)
|
||||
{
|
||||
struct scatterlist *sg;
|
||||
unsigned int num_prde = 0;
|
||||
|
|
@ -362,8 +365,7 @@ static unsigned int sata_fsl_fill_sg(struct ata_queued_cmd *qc, void *cmd_desc,
|
|||
|
||||
ttl_dwords += sg_len;
|
||||
prd->dba = cpu_to_le32(sg_addr);
|
||||
prd->ddc_and_ext =
|
||||
cpu_to_le32(DATA_SNOOP_ENABLE | (sg_len & ~0x03));
|
||||
prd->ddc_and_ext = cpu_to_le32(data_snoop | (sg_len & ~0x03));
|
||||
|
||||
VPRINTK("sg_fill, ttl=%d, dba=0x%x, ddc=0x%x\n",
|
||||
ttl_dwords, prd->dba, prd->ddc_and_ext);
|
||||
|
|
@ -378,7 +380,7 @@ static unsigned int sata_fsl_fill_sg(struct ata_queued_cmd *qc, void *cmd_desc,
|
|||
/* set indirect extension flag along with indirect ext. size */
|
||||
prd_ptr_to_indirect_ext->ddc_and_ext =
|
||||
cpu_to_le32((EXT_INDIRECT_SEG_PRD_FLAG |
|
||||
DATA_SNOOP_ENABLE |
|
||||
data_snoop |
|
||||
(indirect_ext_segment_sz & ~0x03)));
|
||||
}
|
||||
|
||||
|
|
@ -421,7 +423,8 @@ static void sata_fsl_qc_prep(struct ata_queued_cmd *qc)
|
|||
|
||||
if (qc->flags & ATA_QCFLAG_DMAMAP)
|
||||
num_prde = sata_fsl_fill_sg(qc, (void *)cd,
|
||||
&ttl_dwords, cd_paddr);
|
||||
&ttl_dwords, cd_paddr,
|
||||
host_priv->data_snoop);
|
||||
|
||||
if (qc->tf.protocol == ATA_PROT_NCQ)
|
||||
desc_info |= FPDMA_QUEUED_CMD;
|
||||
|
|
@ -1349,6 +1352,11 @@ static int sata_fsl_probe(struct platform_device *ofdev)
|
|||
}
|
||||
host_priv->irq = irq;
|
||||
|
||||
if (of_device_is_compatible(ofdev->dev.of_node, "fsl,pq-sata-v2"))
|
||||
host_priv->data_snoop = DATA_SNOOP_ENABLE_V2;
|
||||
else
|
||||
host_priv->data_snoop = DATA_SNOOP_ENABLE_V1;
|
||||
|
||||
/* allocate host structure */
|
||||
host = ata_host_alloc_pinfo(&ofdev->dev, ppi, SATA_FSL_MAX_PORTS);
|
||||
|
||||
|
|
@ -1431,6 +1439,9 @@ static struct of_device_id fsl_sata_match[] = {
|
|||
{
|
||||
.compatible = "fsl,pq-sata",
|
||||
},
|
||||
{
|
||||
.compatible = "fsl,pq-sata-v2",
|
||||
},
|
||||
{},
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue