Thread (23 messages) 23 messages, 7 authors, 2015-04-22

Re: ioremap_uc() followed by set_memory_wc() - burrying MTRR

From: Andy Walls <awalls@md.metrocast.net>
Date: 2015-04-15 23:44:14
Also in: linux-media, linux-rdma, lkml

On Wed, 2015-04-15 at 13:42 -0700, Andy Lutomirski wrote:
On Mon, Apr 13, 2015 at 10:49 AM, Luis R. Rodriguez [off-list ref] wrote:
quoted
c) ivtv: the driver does not have the PCI space mapped out separately, and
in fact it actually does not do the math for the framebuffer, instead it lets
the device's own CPU do that and assume where its at, see
ivtvfb_get_framebuffer() and CX2341X_OSD_GET_FRAMEBUFFER, it has a get
but not a setter. Its not clear if the firmware would make a split easy.
We'd need ioremap_ucminus() here too and __arch_phys_wc_add().
IMO this should be conceptually easy to split.  Once we get the
framebuffer address, just unmap it (or don't prematurely map it) and
then ioremap the thing.
Not so easy.  The main ivtv driver has already set up the PCI device and
done the mapping for the MPEG-2 decoder/video output engine.  The video
decoder/output device nodes might already be open by user space calling
into the main driver, before the ivtvfb module is even loaded.

This could be mitigated by integrating all the ivtvfb module code into
the main ivtv module.  But even then not every PVR-350 owner wants to
use the video output OSD as a framebuffer.  Users might just want an
actual OSD overlaying their TV video playback.

Regards,
Andy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help