I am new to linux and would like to have some information on what exactly io_block_mapping function does. I am not sure if doing io_block_mapping is mandatory if i am accessing an I/O device.

I have a probelm in my application, If i do ioremap of an address, I get the virtual address "xxxxxxxx", and if i do virt_to_phys of the virtual address returned from ioremap, the physical address is not the same as the actual address.

now, PhysAddr is not shown as 0x40000000.

Is this any way related to io_block_mapping?
Early response will be helpful, in debugging.

Thanks & regards,