Re: [PATCH v6 1/2] ARM: EXYNOS: Change System MMU platform device definitions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 15, 2011 at 2:37 PM, Kyungmin Park <kmpark@xxxxxxxxxxxxx> wrote:
>> @@ -988,6 +989,21 @@ static struct platform_device *universal_devices[]
>> __initdata = {
>>       &cam_i_core_fixed_reg_dev,
>>       &cam_s_if_fixed_reg_dev,
>>       &s5p_device_fimc_md,
>> +     &SYSMMU_PLATDEV(sss),
>> +     &SYSMMU_PLATDEV(jpeg),
>> +     &SYSMMU_PLATDEV(fimd1),
>> +     &SYSMMU_PLATDEV(2d),
>> +     &SYSMMU_PLATDEV(rot),
>> +     &SYSMMU_PLATDEV(mdma),
>> +     &SYSMMU_PLATDEV(tv),
>> +     &SYSMMU_PLATDEV(mfc_l),
>> +     &SYSMMU_PLATDEV(mfc_r),
>> +     &SYSMMU_PLATDEV(fimc0),
>> +     &SYSMMU_PLATDEV(fimc1),
>> +     &SYSMMU_PLATDEV(fimc2),
>> +     &SYSMMU_PLATDEV(fimc3),
>> +     &SYSMMU_PLATDEV(fimd0),
>> +     &SYSMMU_PLATDEV(pcie),
> Platform device is optional for each board and pcie doesn't used at
> mobile board. Does it require to register all platform devices at
> board?

Of course we make them selectable in menuconfig according
to the selection of their host devices. But the array definition will
contain lots of #ifdef.

And I defined System MMU dev for PCIe for future use
although it is useless in mobile devices.

>>
>> +static void __init sysmmu_init(void)
>> +{
>> +     ASSIGN_SYSMMU_POWERDOMAIN(fimc0, &exynos4_device_pd[PD_CAM].dev);
>> +     ASSIGN_SYSMMU_POWERDOMAIN(fimc1, &exynos4_device_pd[PD_CAM].dev);
>> +     ASSIGN_SYSMMU_POWERDOMAIN(fimc2, &exynos4_device_pd[PD_CAM].dev);
>> +     ASSIGN_SYSMMU_POWERDOMAIN(fimc3, &exynos4_device_pd[PD_CAM].dev);
>> +     ASSIGN_SYSMMU_POWERDOMAIN(jpeg, &exynos4_device_pd[PD_CAM].dev);
>> +     ASSIGN_SYSMMU_POWERDOMAIN(mfc_l, &exynos4_device_pd[PD_MFC].dev);
>> +     ASSIGN_SYSMMU_POWERDOMAIN(mfc_r, &exynos4_device_pd[PD_MFC].dev);
>> +     ASSIGN_SYSMMU_POWERDOMAIN(fimd0, &exynos4_device_pd[PD_LCD0].dev);
>> +     ASSIGN_SYSMMU_POWERDOMAIN(rot, &exynos4_device_pd[PD_LCD0].dev);
>> +     ASSIGN_SYSMMU_POWERDOMAIN(mdma, &exynos4_device_pd[PD_LCD0].dev);
>> +     ASSIGN_SYSMMU_POWERDOMAIN(tv, &exynos4_device_pd[PD_TV].dev);
>> +
>> +     sysmmu_set_owner(&SYSMMU_PLATDEV(fimc0).dev, &s5p_device_fimc0.dev);
>> +     sysmmu_set_owner(&SYSMMU_PLATDEV(fimc1).dev, &s5p_device_fimc1.dev);
>> +     sysmmu_set_owner(&SYSMMU_PLATDEV(fimc2).dev, &s5p_device_fimc2.dev);
>> +     sysmmu_set_owner(&SYSMMU_PLATDEV(fimc3).dev, &s5p_device_fimc3.dev);
>> +     sysmmu_set_owner(&SYSMMU_PLATDEV(mfc_l).dev, &s5p_device_mfc.dev);
>> +     sysmmu_set_owner(&SYSMMU_PLATDEV(mfc_r).dev, &s5p_device_mfc.dev);
>> +     sysmmu_set_owner(&SYSMMU_PLATDEV(fimd0).dev, &s5p_device_fimd0.dev);
>> +     sysmmu_set_owner(&SYSMMU_PLATDEV(tv).dev, &s5p_device_mixer.dev);
>> +}
>> +
>>  static void __init universal_machine_init(void)
>>  {
>>       universal_sdhci_init();
>> @@ -1040,6 +1080,8 @@ static void __init universal_machine_init(void)
>>
>>       universal_camera_init();
>>
>> +     sysmmu_init();
> I think how do you implement the sysmm_init at cpu or common file? and
> board select it to use iommu or not. no need to implement the almost
> same codes at each board.
>
It is not easy to move sysmmu_init() out from mach_*.c files because System MMU
configuration is vary from boards and APs. It is just machine-specific.

> Otherwise looks good.
>
Thank you :)

KyongHo.
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SoC Development]     [Linux Rockchip Development]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Linux SCSI]     [Yosemite News]

  Powered by Linux