एसपीआई लेनदेन टाइमआउट लिनक्स डिवाइस ड्राइवर


11

मैं एक बिंदु पर पिछले 3 दिनों से अटका हुआ हूं।

मैं msm8960 क्वालकॉम चिपसेट के साथ eink डिवाइस ड्राइवर पर काम कर रहा हूं।

Scenario: फ़ाइल में: कर्नेल / आर्क / आर्म / मच-एमएसएम / डिवाइस -8960.c

मैं use of spidm_channels" and "spidm_crci"और संबंधित प्रविष्टियों को सत्यापित नहीं कर सकता । (msm8960 समर्थक) (कुछ संदर्भ कोड से कॉपी) कैसे सत्यापित करने के लिए कि संबंधित के मान start and endसही हैं ?? मेरे पास msm के लिए डेटशीट है, लेकिन कोई संदर्भ नहीं मिल रहा है।

मैंने फ़ाइल में एक नया gsbi संसाधन बनाने के लिए निम्न कोड जोड़ा है:

static struct resource resources_qup_spi_gsbi9[] = {
    {
            .name   = "spi_base",
            .start  = MSM_GSBI9_QUP_PHYS,
            .end    = MSM_GSBI9_QUP_PHYS + SZ_4K - 1,
            .flags  = IORESOURCE_MEM,
    },
    {
            .name   = "gsbi_base",
            .start  = MSM_GSBI9_PHYS,
            .end    = MSM_GSBI9_PHYS + 4 - 1,
            .flags  = IORESOURCE_MEM,
    },
    {
            .name   = "spi_irq_in",
            .start  = GSBI9_QUP_IRQ,
            .end    = GSBI9_QUP_IRQ,
            .flags  = IORESOURCE_IRQ,
    },
    {
             .name   = "spidm_channels",
            .start  = 3,
            .end    = 4,
            .flags  = IORESOURCE_DMA,
    },
    {
            .name   = "spidm_crci",
            .start  = 12,
            .end    = 13,
            .flags  = IORESOURCE_DMA,
    }, 
};

इस संदेह के होने का कारण यह है कि हमारा डीएमए ऑपरेशन त्रुटि के साथ विफल हो रहा है: लॉग से:

<6>[    0.764932] wait_for_ready: I/F Ready.^M
<7>[    0.765176] s1d13522_ spi9.0: setup mode 0, 16 bits/w, 51200000 Hz max --> 0^M
<3>[    1.756630] spi_qsd spi_qsd.9: msm_spi_process_transfer: SPI transaction timeout^M

और फिर अगर हम एक और डीएमए ऑपरेशन करने की कोशिश करते हैं तो यह निम्नलिखित त्रुटि देता है:

<3>[    6.773355] s1d13522if_cmd: wait_for_ready: I/F busy bit stuck^M
<7>[    6.775400] s1d13522_ spi9.0: setup mode 0, 16 bits/w, 51200000 Hz max --> 0^M
<4>[    6.775583] ------------[ cut here ]------------^M
<4>[    6.775614] WARNING: at /home/anshul_10605816/hip_mirror_2330_code/kernel        /lib/list_debug.c:32 __list_add+0x58/0x78()^M
<4>[    6.775644] list_add corruption. prev->next should be next (c0d5124c), but was 00100100. (prev=edf643b8).^M
<4>[    6.775675] Modules linked in:^M
<4>[    6.775766] [<c00149b8>] (unwind_backtrace+0x0/0x11c) from [<c007c818>] (warn_slowpath_common+0x4c/0x64)^M
<4>[    6.775827] [<c007c818>] (warn_slowpath_common+0x4c/0x64) from [<c007c8b0>] (warn_slowpath_fmt+0x2c/0x3c)^M
<4>[    6.775888] [<c007c8b0>] (warn_slowpath_fmt+0x2c/0x3c) from [<c02a9538>] (__list_add+0x58/0x78)^M
<4>[    6.775919] [<c02a9538>] (__list_add+0x58/0x78) from [<c001e3d4>] (start_ready_cmd+0x84/0x13c)^M
<4>[    6.775980] [<c001e3d4>] (start_ready_cmd+0x84/0x13c) from [<c001e704>] (msm_dmov_enqueue_cmd_ext_work+0x148/0x284)^M
<4>[    6.776041] [<c001e704>] (msm_dmov_enqueue_cmd_ext_work+0x148/0x284) from [<c0094e0c>] (process_one_work+0x27c/0x484)^M
<4>[    6.776072] [<c0094e0c>] (process_one_work+0x27c/0x484) from [<c0095224>] (worker_thread+0x210/0x3b0)^M
<4>[    6.776133] [<c0095224>] (worker_thread+0x210/0x3b0) from [<c00990c0>] (kthread+0x80/0x8c)^M
<4>[    6.776194] [<c00990c0>] (kthread+0x80/0x8c) from [<c000f108>] (kernel_thread_exit+0x0/0x8)^M
<4>[    6.776224] ---[ end trace da227214a82491b8 ]---^M
<3>[   11.766732] spi_qsd spi_qsd.9: msm_spi_process_transfer: SPI transaction timeout^M

किसी भी मदद को बहुत सराहा जाएगा।

यदि किसी भी अधिक कोड की जानकारी की आवश्यकता है तो कृपया मुझे बताएं।

जवाबों:


1

संसाधन सेटअप आपके प्लेटफॉर्म पर निर्भर करता है, न केवल ड्राइवर पर।

लक्ष्य चिपसेट के साथ सीधे उपयोग करने से पहले अपने एसपीआई बस को मान्य करने का एक विचार हो सकता है। मेरा सुझाव है कि बस में कुछ भेजने और तार्किक विश्लेषक या आस्टसीलस्कप पर परिणाम देखने के लिए spidev इंटरफ़ेस और एक यूजर स्पेस कोड का उपयोग करें। मैं आमतौर पर नए बोर्डों को मान्य करने के लिए ऐसा करता हूं।

List_add भ्रष्टाचार संदिग्ध है, लेकिन उस बिंदु पर अधिक कहना मुश्किल है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.