linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] i2c: Xilinx IIC: rework driver
@ 2015-07-31 12:00 Robert ABEL
       [not found] ` <CAKfKVtG6rRyb70Mxe46Rd9czkx6kSaf91pTeysRf78vtpypFBA@mail.gmail.com>
       [not found] ` <1438344034-20211-1-git-send-email-rabel-Ejy783gw450hGw5VS8l+XCM2BslAju9D@public.gmane.org>
  0 siblings, 2 replies; 19+ messages in thread
From: Robert ABEL @ 2015-07-31 12:00 UTC (permalink / raw)
  To: wsa-z923LK4zBo2bacvFa/9K2g, linux-i2c-u79uwXL29TY76Z2rM5mHXA
  Cc: michal.simek-gjFFaj9aHVfQT0dZR+AlfA


This patch series completely reworks Xilinx' XIIC driver. Short summary:
Driver didn't work for me and I don't know how it could ever have worked for anybody.
So I rewrote it in big parts and now it works for me™.

Due to how the XIIC IP core is written, certain operations have to be done in short succession
before XIIC is able to send out a single word over I2C. The original code didn't take this into
account. The original code also doesn't expect bus faults, so undefined behavior will happen
on spurious interrupts while using the driver.

There are still two issues in there which I think might preclude proper SMBus operation, see patch 4 notes.
However these issues are also in the original code, so there's no regression here.

The bulk of the work is in patch 4 as are the bulk of patch series comments about driver behavior.

Regards

Robert

This patch series depends on: (https://github.com/Xilinx/linux-xlnx)

36bc779 i2c: xiic: Do not continue in case of errors in Rx
875c2be i2c: xiic: Remove the disabling of interrupts
2abc522 i2c: xiic: move the xiic_process to thread context
ec52523 i2c: xiic: Do not reset controller before every transfer
3d1f868 i2c: xiic: Remove the disabling of interrupts
0b018f2 i2c: xiic: Remove busy loop while waiting for bus busy
5fc498e i2c: xiic: Add a msg in case of timeout
b4272fe i2c: xiic: Remove the Addressed as slave interrupt
3a0fd6c i2c: xiic: Service all interrupts in isr

Patch 6 depends on: (mainline)

37786c7 of: Add helper function to check MMIO register endianness
65a7100 of: Document {little,big,native}-endian bindings

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2015-08-06  9:40 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-31 12:00 [PATCH 0/6] i2c: Xilinx IIC: rework driver Robert ABEL
     [not found] ` <CAKfKVtG6rRyb70Mxe46Rd9czkx6kSaf91pTeysRf78vtpypFBA@mail.gmail.com>
     [not found]   ` <CAMdRc4EmQN7SAxgcuauowuz5vOvNn2QYsv99=yUNQOSFRVVr8Q@mail.gmail.com>
     [not found]     ` <CAMdRc4EmQN7SAxgcuauowuz5vOvNn2QYsv99=yUNQOSFRVVr8Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-07-31 20:53       ` Fwd: " Robert Abel
     [not found] ` <1438344034-20211-1-git-send-email-rabel-Ejy783gw450hGw5VS8l+XCM2BslAju9D@public.gmane.org>
2015-07-31 12:00   ` [PATCH 0/6] i2c: Xilinx IIC: rename register defines Robert ABEL
2015-07-31 12:00   ` [PATCH 1/6] i2c: Xilinx IIC: remove Endianness hack Robert ABEL
2015-07-31 12:00   ` [PATCH 2/6] i2x: Xilinx IIC: remove non-initial tabs Robert ABEL
2015-07-31 12:00   ` [PATCH 3/6] i2c: Xilinx IIC: make all ioread/write calls 32-bit Robert ABEL
2015-07-31 12:00   ` [PATCH 4/6] i2c: Xilinx IIC: completely redo FSM/ISR logic Robert ABEL
2015-07-31 12:00   ` [PATCH 5/6] i2c: Xilinx IIC: make reset after TX error configurable Robert ABEL
     [not found]     ` <1438344034-20211-7-git-send-email-rabel-Ejy783gw450hGw5VS8l+XCM2BslAju9D@public.gmane.org>
2015-08-03  5:34       ` Michal Simek
     [not found]         ` <55BEFD63.6090108-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2015-08-03  7:50           ` Robert Abel
     [not found]             ` <CAMdRc4F__S-dQOOsZv0pUtER5+-kwH=Mt+wfanvJXHWqS=YRMA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-08-06  9:18               ` Michal Simek
     [not found]                 ` <55C32666.6070304-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2015-08-06  9:40                   ` Robert Abel
2015-07-31 12:00   ` [PATCH 6/6] i2c: Xilinx IIC: add DT Endianness support Robert ABEL
     [not found]     ` <1438344034-20211-8-git-send-email-rabel-Ejy783gw450hGw5VS8l+XCM2BslAju9D@public.gmane.org>
2015-08-03  5:32       ` Michal Simek
     [not found]         ` <55BEFCE5.70109-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2015-08-03  7:46           ` Robert Abel
2015-08-03  5:26   ` [PATCH 0/6] i2c: Xilinx IIC: rework driver Michal Simek
     [not found]     ` <55BEFB87.1090909-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2015-08-03  7:30       ` Robert Abel
     [not found]         ` <CAMdRc4EKRQki+Pm-Et29FyaKARkiCeNGsGYMAQFVyYyvxW2EOg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-08-03  7:44           ` Michal Simek
     [not found]             ` <55BF1BF5.4010809-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2015-08-03  7:56               ` Robert Abel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).