[PATCH v10 3/3] iommu/exynos: Add iommu driver for Exynos Platforms
KyongHo Cho
pullip.cho at samsung.com
Wed Mar 7 01:22:33 EST 2012
On Wed, Mar 7, 2012 at 2:28 PM, InKi Dae <daeinki at gmail.com> wrote:
>> +static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
>> +{
>> + /* SYSMMU is in blocked when interrupt occurred. */
>> + struct sysmmu_drvdata *data = dev_id;
>> + struct resource *irqres;
>> + struct platform_device *pdev;
>> + enum EXYNOS_SYSMMU_INTERRUPT_TYPE itype;
>
> how about to change EXYNOS_SYSMMU_INTERRUPT_TYPE to small letter? just
> for code clean.
>
I will. please refer to the my reply to Kyungmin Park.
>> + unsigned long addr = -1;
>> +
>> + int i, ret = -ENOSYS;
>> +
>> + read_lock(&data->lock);
>> +
>> + WARN_ON(!is_sysmmu_active(data));
>> +
>> + pdev = to_platform_device(data->sysmmu);
>> + for (i = 0; i < pdev->num_resources; i++) {
>> + irqres = platform_get_resource(pdev, IORESOURCE_IRQ, i);
>> + if (irqres && ((int)irqres->start == irq))
>> + break;
>> + }
>
> is there any reason that it should get irq resources in interrupt
> handler? if not so then how about to move it into probe()?
>
The platform device of ISP has a lot of IRQ sources.
The above for clause determines which IRQ source (System MMU)
generated the interrupt.
>> +
>> + if (i == pdev->num_resources) {
>> + itype = SYSMMU_FAULT_UNKNOWN;
>> + } else {
>> + i /= 2;
>> +
>> + itype = (enum EXYNOS_SYSMMU_INTERRUPT_TYPE)
>
> ditto.
>
Thank you.
Cho KyongHo.
More information about the linux-arm-kernel
mailing list