Hi Arnaud,
On Dec 12 2016 22:46, Arnaud Pouliquen wrote:
> On 12/12/2016 01:03 PM, Takashi Sakamoto wrote:
>> On 2016å¹´12æ12æ¥ 18:38, Arnaud Pouliquen wrote:
>>>>> + */
>>>>> +static struct hdmi_codec_cea_spk_alloc hdmi_codec_channel_alloc[] = {
>>>>> +/* channel: 7 6 5 4 3 2 1
>>>>> 0 */
>>>>> +{ .ca_index = 0x00, .speakers = { 0, 0, 0, 0, 0, 0, FR,
>>>>> FL } },
>>>>> + /* 2.1 */
>>>>> +{ .ca_index = 0x01, .speakers = { 0, 0, 0, 0, 0, LFE, FR,
>>>>> FL } },
>>>>> + /* Dolby Surround */
>>>>> +{ .ca_index = 0x02, .speakers = { 0, 0, 0, 0, FC, 0, FR,
>>>>> FL } },
>>>>> + /* surround51 */
>>>>> +{ .ca_index = 0x0b, .speakers = { 0, 0, RR, RL, FC, LFE, FR,
>>>>> FL } },
>>>>> + /* surround40 */
>>>>> +{ .ca_index = 0x08, .speakers = { 0, 0, RR, RL, 0, 0, FR,
>>>>> FL } },
>>>>> + /* surround41 */
>>>>> +{ .ca_index = 0x09, .speakers = { 0, 0, RR, RL, 0, LFE, FR,
>>>>> FL } },
>>>>> + /* surround50 */
>>>>> +{ .ca_index = 0x0a, .speakers = { 0, 0, RR, RL, FC, 0, FR,
>>>>> FL } },
>>>>> + /* 6.1 */
>>>>> +{ .ca_index = 0x0f, .speakers = { 0, RC, RR, RL, FC, LFE, FR,
>>>>> FL } },
>>>>> + /* surround71 */
>>>>> +{ .ca_index = 0x13, .speakers = { RRC, RLC, RR, RL, FC, LFE, FR,
>>>>> FL } },
>>>>> +
>>>>> +{ .ca_index = 0x03, .speakers = { 0, 0, 0, 0, FC, LFE, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x04, .speakers = { 0, 0, 0, RC, 0, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x05, .speakers = { 0, 0, 0, RC, 0, LFE, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x06, .speakers = { 0, 0, 0, RC, FC, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x07, .speakers = { 0, 0, 0, RC, FC, LFE, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x0c, .speakers = { 0, RC, RR, RL, 0, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x0d, .speakers = { 0, RC, RR, RL, 0, LFE, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x0e, .speakers = { 0, RC, RR, RL, FC, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x10, .speakers = { RRC, RLC, RR, RL, 0, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x11, .speakers = { RRC, RLC, RR, RL, 0, LFE, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x12, .speakers = { RRC, RLC, RR, RL, FC, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x14, .speakers = { FRC, FLC, 0, 0, 0, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x15, .speakers = { FRC, FLC, 0, 0, 0, LFE, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x16, .speakers = { FRC, FLC, 0, 0, FC, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x17, .speakers = { FRC, FLC, 0, 0, FC, LFE, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x18, .speakers = { FRC, FLC, 0, RC, 0, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x19, .speakers = { FRC, FLC, 0, RC, 0, LFE, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x1a, .speakers = { FRC, FLC, 0, RC, FC, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x1b, .speakers = { FRC, FLC, 0, RC, FC, LFE, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x1c, .speakers = { FRC, FLC, RR, RL, 0, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x1d, .speakers = { FRC, FLC, RR, RL, 0, LFE, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x1e, .speakers = { FRC, FLC, RR, RL, FC, 0, FR,
>>>>> FL } },
>>>>> +{ .ca_index = 0x1f, .speakers = { FRC, FLC, RR, RL, FC, LFE, FR,
>>>>> FL } },
>>>>> +};
>>>>
>>>> Ditto.
>>> Sorry not understand this comment vs the previous one, could you please
>>> clarify?
>>
>> This table is invariant in lifetime of the storage object, as well.
>> Let's put into .rodata section, too.
>>
> This table is updated in hdmi_codec_cea_init_channel_alloc so can not be
> constant. In theory i could declare all field instead of computing some.
> But for lisibility, i would prefer to just declare ca_index and
> speakers allocation field in this table (i will declared both as const)
You should pay enough attention to a case that one system has several
GPUs to which relevant GPU drivers register HDMI_CODEC_DRV_NAME platform
device. The 'static' modifier has an effect to keep just one storage
object, thus your code causes bugs in the case.
Regards
Takashi Sakamoto