[Intel-gfx] [PATCH v4] drm/i915: Reorganize display pipe register accesses
Antti Koskipää
antti.koskipaa at linux.intel.com
Tue Jan 28 14:53:30 CET 2014
On 01/27/14 15:31, Ville Syrjälä wrote:
> On Mon, Jan 27, 2014 at 03:09:34PM +0200, Antti Koskipaa wrote:
>> + .dpll_offsets = { DPLL_A_OFFSET, DPLL_B_OFFSET }, \
>> + .dpll_md_offsets = { DPLL_A_MD_OFFSET, DPLL_B_MD_OFFSET }, \
>> + .palette_offsets = { PALETTE_A_OFFSET, PALETTE_B_OFFSET }, \
>
> Please drop the last comma here ...
>
>> +
>> +
>> static const struct intel_device_info intel_i830_info = {
>> .gen = 2, .is_mobile = 1, .cursor_needs_physical = 1, .num_pipes = 2,
>> .has_overlay = 1, .overlay_needs_physical = 1,
>> .ring_mask = RENDER_RING,
>> + GEN_DEFAULT_PIPEOFFSETS
>
> ... and place it here
>
Done.
>> +/*
>> + * There's actually no pipe EDP. Some pipe registers have
>> + * simply shifted from the pipe to the transcoder, while
>> + * keeping their original offset. Thus we need PIPE_EDP_OFFSET
>> + * to access such registers in transcoder EDP.
>> + */
>> +#define PIPE_EDP_OFFSET 0x7f000
>
> I just realized that you're not using this actually. But I think we need
> to use it to make *future* stuff work.
>
> For the same reason PIPECONF() needs to use _PIPE2() macro, BCLRPAT needs
> to use _TRANSCODER2() macro. Ie. the choice of which we use needs to be
> based strictly on the offset range where the register lives.
> 0x6xxxx -> _TRANSCODER2()
> 0x7xxxx -> _PIPE2()
>
> PIPESRC() seems to be where it needs to be, ie. using _TRANCODER2().
Read it again. The old code has PIPECONF and BCLRPAT using the wrong
macro. This patch fixes it.
> So this also means we need the pipe_offsets[] array to have space for
> PIPE_EDP_OFFSET.
Done.
--
- Antti
More information about the Intel-gfx
mailing list