On Mon, Apr 13, 2015 at 10:49 AM, Luis R. Rodriguez <mcgrof@xxxxxxxx> 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. > From the beginning it seems only framebuffer devices used MTRR/WC, lately it > seems infiniband drivers also find good use for for it for PIO TX buffers to > blast some sort of data, in the future I would not be surprised if other > devices found use for it. IMO the Infiniband maintainers should fix their code. Especially in the server space, there aren't that many MTRRs to go around. I wrote arch_phys_wc_add in the first place because my server *ran out of MTRRs*. Hey, IB people: can you fix your drivers to use arch_phys_wc_add (which is permitted to be a no-op) along with ioremap_wc? Your users will thank you. > It may be true that the existing drivers that > requires the above type of work are corner cases -- but I wouldn't hold my > breath for that. The ivtv device is a good example of the worst type of > situations and these days. So perhap __arch_phys_wc_add() and a > ioremap_ucminus() might be something more than transient unless hardware folks > get a good memo or already know how to just Do The Right Thing (TM). I disagree. We should try to NACK any new code that can't function without MTRRs. (Plus, ARM is growing in popularity in the server space, and ARM quite sensibly doesn't have MTRRs.) --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html