From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Walls Date: Wed, 15 Apr 2015 22:50:12 +0000 Subject: Re: ioremap_uc() followed by set_memory_wc() - burrying MTRR Message-Id: <1429138212.1899.34.camel@palomino.walls.org> List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Andy Lutomirski Cc: "Luis R. Rodriguez" , linux-rdma@vger.kernel.org, Toshi Kani , "H. Peter Anvin" , Ingo Molnar , "linux-kernel@vger.kernel.org" , Hal Rosenstock , Sean Hefty , Suresh Siddha , Rickard Strandqvist , Mike Marciniszyn , Roland Dreier , Juergen Gross , Mauro Carvalho Chehab , Borislav Petkov , Mel Gorman , Vlastimil Babka , Davidlohr Bueso , Dave Hansen , Jean-Christophe Plagniol-Villard , Thomas Gleixner , Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= , Linux Fbdev development list , linux-media@vger.kernel.org, X86 ML On Wed, 2015-04-15 at 13:42 -0700, Andy Lutomirski wrote: > On Mon, Apr 13, 2015 at 10:49 AM, Luis R. Rodriguez wrote: > > > 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