Re: Revisiting ITE8708 on ASUS PN50 uses a 16 byte io region

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

 



Hi Nikolaos,

On Wed, Mar 17, 2021 at 04:41:15PM +0200, Nikolaos Beredimas wrote:
> Hi,
> There was a thread on this list last September
> https://www.spinics.net/lists/linux-media/msg177724.html
> about the IR module on the ASUS PN50.
> 
> Even though that discussion never fully resolved,
> it did contain the solution to get the IR working on the PN50.
> I have documented this at
> https://forum.libreelec.tv/thread/23145-asus-pn50-challenge/?postID=152207#post152207
> 
> So, what I had to do is edit a single line of drivers/media/rc/ite-cir.h
> and change IT8708_IOREG_LENGTH 0x08 to IT8708_IOREG_LENGTH 0x10
> and the IR module is now recognized and working
> 
> How do I go about submitting this as a patch?
> I am a little overwhelmed honestly.
> Do I follow https://www.linuxtv.org/wiki/index.php/Development:_How_to_submit_patches
> ?
> And which git tree?

Thanks for fixing this. The patch should be a diff against
https://git.linuxtv.org/media_tree.git/

This is the guide for submitting patches:
https://www.kernel.org/doc/html/latest/process/submitting-patches.html


> 
> --- a/drivers/media/rc/ite-cir.h
> +++ b/drivers/media/rc/ite-cir.h
> @@ -406,7 +406,7 @@
>  #define IT8708_C0WCR 0x06 /* wakeup code read/write register */
>  #define IT8708_C0WPS 0x07 /* wakeup power control/status register */
> 
> -#define IT8708_IOREG_LENGTH 0x08 /* length of register file */
> +#define IT8708_IOREG_LENGTH 0x10 /* length of register file */

I don't think this is correct though. There are other devices that have
length of 8; I think the correct solution.

I think:

        if (!pnp_port_valid(pdev, io_rsrc_no) ||
            pnp_port_len(pdev, io_rsrc_no) != dev_desc->io_region_size) {
                dev_err(&pdev->dev, "IR PNP Port not valid!\n");
                goto exit_free_dev_rdev;
        }


should be changed to:

        if (!pnp_port_valid(pdev, io_rsrc_no) ||
            pnp_port_len(pdev, io_rsrc_no) < dev_desc->io_region_size) {
                dev_err(&pdev->dev, "IR PNP Port not valid!\n");
                goto exit_free_dev_rdev;
        }

Thanks

> 
>  /* two more registers that are defined in the hacked driver, but can't be
>   * found in the data sheets; no idea what they are or how they are accessed,



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux