Re: m68k v3.16 status update

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Finn,

Am 19.12.2017 um 16:35 schrieb Finn Thain:
On Tue, 19 Dec 2017, Michael Schmitz wrote:

Contrary to the Mac driver, esp->command_block and 
esp->command_block_dma are not identical addresses on Amiga.

Why not make them identical, depending on the length of the tranfer? (Then 
choose PIO or DMA by testing for the same threshold.)

esp->command_block_dma is mapped at driver init time so we don't get to
chose at command submission time. I suspect it's due to a different
memory layout on Amiga (no 1:1 correspondence of physical and kernel
virtual addresses). But Geert ought to be able to answer that.

Is there a generic way to map a DMA address (i.e., physical address 
AFAIK) to a kernel virtual one?


I don't know of a good way to do that.

(I can use esp->command_block in the reconnect message special case but 
not otherwise ...)

Maybe something like this...

	struct esp_cmd_entry *ent = esp->active_cmd;
	struct esp_cmd_priv *spriv = ESP_CMD_PRIV(ent->cmd);
	struct scatterlist *sg = spriv->cur_sg;
	unsigned long addr = sg_page(sg) + sg->offset;

but that doesn't work for the esp_autosense() case, which doesn't involve 
esp->ops->map_sg...

HTH

I'll give that a try to see if this works for regular transfers. Will
look at ways to identify autosense as well (do sense data fit into the
ESP FIFO usually?)

Cheers,

	Michael


--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux