Hi All ,We need to use around 1500 descptors for transferring data from camera sensor to system memory ( 64 bit OS ) vi MSGDMA (64 bit). since we needed 1500 descs .. i just did kython.sgdma_desc_pool1_phy =pci_map_single(pdev,kython.sgdma_desc_pool1_virt,MSGDMA_NUM_DESCS*(sizeof(alt_msgdma_prefetcher_extended_descriptor)),PCI_DMA_BIDIRECtional); root_node = python.sgdma_desc_pool1_phy /* set next descriptor registers to point to the list root-node */ IOWR_ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_LOW(lower_32_bits(root_node)); IOWR_ALT_MSGDMA_PREFETCHER_NEXT_DESCRIPTOR_PTR_HIGH(upper_32_bits(root_node)); But the MSGDMA is rejecting the desc as invalid desc .We have populated the descriptor correctly . is it because pci_map_single does not support 64 bit addressing , is there equalvaent calls for pci_map_single ???
I don't have experience with the prefetcher of the DMA but in order to use extended descriptions you have to make sure that the hardware has that option enabled.