I'm studying information theory right now and I'm reading about channel capacities. 

I know that there are known expressions for computing the capacities for some well known simple channels such as BSC, the Z channel. 

Could you show me or point me to the source showing how to derive the channel capacity for a binary asymmetric channel? Say that  $X$ is input $Y$ is output. $\Pr(x = 0 | y = 1) = p1$, $\Pr(x = 1 | y = 0) = p2$.

Further, I'm wondering is there any known result for computing the capacity of an arbitrary non-symmetric channel? By arbitrary non-symmetric channel, I mean, X and Y are from the alphabet set $\{0, 1, \cdots, q-1\}$, and $\Pr(x = i \mid y = j) = p_{i, j}$ for $i, j \in \{0, 1, ..., q-1\}$.