addr = sg_dma_address(&qc->sg[i]); sg_len = sg_dma_len(&qc->sg[i]);  pp->cmd_tbl_sg[i].addr = cpu_to_le32(addr & 0xffffffff); pp->cmd_tbl_sg[i].addr_hi = cpu_to_le32((addr >> 16) >> 16); pp->cmd_tbl_sg[i].flags_size = cpu_to_le32(sg_len - 1);
ahci_sg->addr = cpu_to_le32(addr & 0xffffffff); ahci_sg->addr_hi = cpu_to_le32((addr >> 16) >> 16); ahci_sg->flags_size = cpu_to_le32(sg_len - 1); ahci_sg++;
static void ahci_fill_sg(struct ata_queued_cmd *qc){	struct ahci_port_priv *pp = qc->ap->private_data;	unsigned int i;	VPRINTK("ENTER\n");	/*	 * Next, the S/G list.	 */	for (i = 0; i < qc->n_elem; i++) {		u32 sg_len;		dma_addr_t addr;		addr = sg_dma_address(&qc->sg[i]);		sg_len = sg_dma_len(&qc->sg[i]);		pp->cmd_tbl_sg[i].addr = cpu_to_le32(addr & 0xffffffff);		pp->cmd_tbl_sg[i].addr_hi = cpu_to_le32((addr >> 16) >> 16);		pp->cmd_tbl_sg[i].flags_size = cpu_to_le32(sg_len - 1);	}}